kubernetes实践之十四:Service Account与Secret
一:Service Account与Secret数据结构二:Service Account与Secret运行机制1.kubernetes的master节点由三部分组成kube-apiserver,kube-scheduler和kube-controller-manager。其中controller manager会apiserver的配置信息,生成ServiceAccount controller 和token controller.2.ServiceAccount controller一直监听Se...
kubernetes实践之十三: 负载均衡机制Ingress
一:前言Kubernetes在设计之初就充分考虑了针对容器的服务发现与负载均衡机制,提供了Service资源,并通过kube-proxy配合cloud provider来适应不同的应用场景。随着kubernetes用户户的激增,用户场景的不断丰富,又产生了一些新的负载均衡机制。目前,kubernetes中的负载均衡?致可以分为以下几种机制:1.Service(NodePo...
kubernetes实践之十二:部署Traefik Ingress
一:前言1.LoadBlancer Service:NodePort Service: Ingress: traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持;同 nginx 等相比,traefik 能够自动感知后端容器变化,从而实现自动服务发现二:yaml文件可以通过https://github.com/containous/traefik/tre...
kubernetes实践之十一:EFK
一:前言1.在安装Kubernetes集群的时候我们有下载过压缩包https://dl.k8s.io/v1.8.5/kubernetes-client-linux-amd64.tar.gz解压缩后 在目录cluster\addons 下有各插件的yaml文件,大部分情况仅需少量改动即可使用。2.在搭建Kubernetes的集群过程中,涉及到很多镜像的下载,建议可以在阿里云购买一个香港所在地的ECS服...
kubernetes实践之十:Kubernetes-dashboard+Heapster+InfluxDB+Grafana
一:前言1.kubernetes-dashboard 官方提供的用户管理Kubernets集群可视化工具2.是用于监控容器运行状态的利器之一。cAdvisor主页显示了主机的实时运行状态,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况等信息。Heapster InfluxDBZabbix是一个基于WEB界面的提供分布式系统监视以及网络监视...
kubernetes实践之九:kube-dns
一:前言https://github.com/kubernetes/dns。Kubernetes DNS pod 中包括 3 个容器:官方网址下载需要的yaml部署文件:
kubernetes实践之八:TLS bootstrapping
一: 前言当集群开启了 TLS 认证后,每个节点的 kubelet 组件都要使用由 apiserver 使用的 CA 签发的有效证书才能与 apiserver 通讯;此时如果节点多起来,为每个节点单独签署证书将是一件非常繁琐的事情;TLS bootstrapping 功能就是让 kubelet 先使用一个预定的低权限用户连接到 apiserver,然后向 apiserver 申请证书...
kubernetes实践之七:安全机制API Server认证之Service Account Token
一:前言Kubernetes有User Account和Service Account两套独立的账号系统。1.User Account是给人用的,Service Account 是给Pod 里的进程使用的,面向的对象不同。2.User Account是全局性的,Service Account 是属于某个具体的Namespace3.User Account是与后端的用户数据库同步的。二:Kubernetes API Server简介K...
kubernetes实践之六:CFSSL构建本地CA
一:前言SSL:SecureSockets Layer,标准化后叫"TLS",http协议默认情况下是不加密内容的,这样就很可能在内容传播的时候被别人监听到,对于安全性要求较高的场合,必须要加密,https就是带加密的http协议。消息-->[公钥]-->加密后的信息-->[私钥]-->消息CA:certificate authority 认证证书的第三方机构。X.509:证...
kubernetes实践之五:网络模型
一:前言Kubernetes从Docker默认的网络模型中独立出来形成一套自己的网络模型。模型的基础原则是:每个Pod都拥有一个独立的IP地址,而且假定所有Pod都在一个可以直接连通的,扁平的网络空间中。同一个Pod内的容器可以通过localhost来连接对方的端口。 二:Docker网络模型Docker使用Linux桥接,在宿...
kubernetes实践之五:Node节点安装
一:前言1.Kubernetes版本1.8.5;node ip 10.116.82.28; 对于kuberentes1.8集群,必须关闭swap,否则kubelet启动将失败;修改 /etc/fstab 将,swap系统注释掉。2.kubelet 启动时向 kube-apiserver 发送 TLS bootstrapping 请求,需要先将 bootstrap token ?件中的 kubelet-bootstrap ?户赋予 system:nodebootstrap...
kubernetes实践之四:Flannel网络插件安装
一:Flannel介绍Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。在Kubernetes的网络模型中,假设了每个物理节点应该具备一段“属于同一个内网IP段内”的“专用的子网IP”。例如:节点1:10.1.46.0-24...
kubernetes实践之三:ETCD TLS证书集群安装
一:前言kuberntes 系统使? etcd 存储所有数据,部署?个三节点?可? etcd 集群,需要为 etcd 集群创建加密通信的 TLS 证书,这?复?以前创建的kubernetes 证书。cp ca.pem kubernetes-key.pem kubernetes.pem /etc/kubernetes/ssl。iZwz95trb3stk6afg8oozuZ :10.116.137.196iZwz96e1vc35er68nlrcauZ :10.116.82....
kubernetes实践之二:创建TLS证书和密钥
一:前言每个Kubernetes集群都有?个集群根证书颁发机构(CA)。 集群中的组件通常使?CA来验证API SERVER的证书,由API服务器验证kubelet客户端证书等。为了?持这?点,CA证书包被分发到集群中的每个节点,并作为?个sercret附加分发到默认service account上。?成的 CA 证书和秘钥?件如下:ca-key.pemca.pemkuber...
Kubernetes架构简述
kubernetes实践之一:Etcd3集群搭建
一:Etcd简介ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。类似于Zookeeper.ETCD的使用场景:配置管理,服务注册于发现,选主,应用调度,分布式队列,分布式锁.ETCD使用Raft协议来维护集群内各个节点状态的一致性。简单说,ETCD集群是一个分布式系统,由多个节点相互通信构成整体对外服务,每个节点都存储了完...
kubernetes概念之六:Volume&Persistent Volume&Namespace&Annotation
一:VolumeVolume是Pod中能够被多个容器访问的共享目录。Kubernetes的Volume概念,用途和目的与Docker的Volume比较类似,但两者不能等价。Kubernetes中的Volume与Pod的生命周期相同,但与容器的生命周期不相关。当容器终止或者重启时,Volume中的数据也不会丢失。二:Persistent VolumeVolume是定义在Pod上的,属于“...
kubernetes概念之五:Service
一:Service概念Kubernetes里的每个Service其实就是微服务架构中的一个微服务。 它产生的背景在于:一是Pod的IP地址不是固定的,需要一个代理来确保需要使用Pod的应用不需要知道pod的真实IP地址;另一个是RC创建多个Pod副本时,需要一个代理来为这些pod做负载均衡。Service 主要由一个IP地址和一个label selector组成...
kubernetes概念之四:Replication Controller&Replica Sets&Deployments
一:Replication ControllerRC是kubernetes的核心概念之一。它定义了一个期望的场景即声明某种Pod的副本数量在任意时候都要符合某个预期值。 它由以下几个部分组成:1.Pod期待的副本数(replicas)2.用于筛选目标Pod的Label Selector3.当Pod的副本数量小于预期数量的时候,用于创建新Pod的Pod模板。当我们定义了一个...
kubernetes概念之三:Label和Label Selector
一:什么是LabelLabel是Kubernetes系列中另外一个核心概念。是一组绑定到K8s资源对象上的key/value对。同一个对象的labels属性的key必须唯一。label可以附加到各种资源对象上,如Node,Pod,Service,RC等。通过给指定的资源对象捆绑一个或多个不用的label来实现多维度的资源分组管理功能,以便于灵活,方便地进行资源分配...