真正运行容器container的物理机。Kubernets中需要很多minion集群,来提供运算
6、container:容器,可以运行服务和程序
7、Pod:Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小部署单元。pod中可以包括一个或一组容器。
pod:豆荚的意思,如下图示理解pod及容器实例:
8、Kube_prox 代理:做端口转发,相当于LVS-NAT模式中的复制调度器
Proxy解决了同一宿主机,相同服务端口冲突的问题,还提供了对外服务的能力,Proxy后端使用了随机、轮询负载均衡算法。
9、etcd:
存储Kubernetes的配置信息,可以理解为K8s数据库,存储这K8s容器平台所有节点、pods、网络等信息
10、services:services是Kunbernetes最外围的单元,通过虚拟一个访问IP及服务端口,可以访问我们定义好的Pod资源。目前的版本是通过iptables的nat转发来实现,钻发的目标端口为Kube_proxy生成的随机端口。
11、Lables标签:Lables是用于区分Pod、Service、Replication Controller的key/value键值对,仅使用在Pod、Service、Replication Controller之间的关系识别,但对这些单元本身进行操作时得使用name标签。
12、Deployment部署Kubernetes Deployment用于更新Pod和Replica Set(下一代的Replication Controller)的方法,可以在Deployment对象中只描述你所期望的理想专题(预期运行状态),Deployment控制器会将现在的实际状态转换成期望的状态。例如,将所有的webapp:v1.0.9升级成webapp:v1.1.0,只需要创建Deployment,Kubernetes会按照Deployment自动进行升级,通过Deployment可以用来创建新的资源
Deployment可以帮我们实现无人值守的上学,大大降低我们上线的复杂和风险
13、Kubelet命令Kubelet和Kube-proxy都运行在minion节点上
Kube-proxy实现Kubernetes网络相关内容
Kubelet命令管理pod、pod中容器机让其的镜像和卷等信息
14、总结:各组件之间的关系
1)、kubernetes由一个master和多个minion组成,master通过api提供服务接收kubectl的请求来调度管理集群,kubectl是k8s平台的一个管理命令
2)、Replication controller定义了多个pod或者容器需要运行,如果当前集群中运行的pod或容器达不到配置的数量,replication controller会调度容器在多个minion上运行,保证集群中的pod数量
3)、service则定义真实对外提供的服务,一个service会对应后端运行的多个container。
4)、Kubernetes是一个管理平台,minion上的kube-proxy拥有提供真实服务公网IP,客户端访问K8S中提供的服务,是直接访问到kube-proxy上的。
5)、在kubernetes中pod是一个基本单元,一个pod可以是提供相同功能的多个container,这些容器会被部署在同一个minion上,minion是运行Kubelet中容器的物理机,minion介绍master的指令创建pod或者容器。
参考:互联网内容