Kubernates 原理:
来源于https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/user-guide/README.md
(图片来源于网络)
1) 概述: 所有的containers都运行在pods中.一个pod可以主持一个或多个Containers(必须同一台机器且共享相同的资源).如果container运行失败,会有node的agent,即kubelet,来自动重启. 但如果pod运行失败,则只能通过replication controller(简称rc)来自动控制. 所以关系可以理解为: kubelet---->container , rc----->pod.
kubernetes为每一个pod分配一个ip. kubernetes后台利用Round-Robin算法策略来均衡pod负载,当一个pod被另一个pod替换时,kube proxy保持ip稳定.
每一个kubernetes的资源,如pod,都带有一个URI和UID来标示,URI记录资源类型,名称,命名空间等. 名称在命名空间中时唯一的. UID在任何时候,任何地点都是唯一的.
2)Cluster 组成
Master : Master组件用于提供cluster的控制.例如相应cluster的全局决定. Master理论上可以运行在任何节点,但通常将所有的Master(目前都只有一个)运行在相同的独立的VM上,与其他的user containers分开.
Node : 维持pods的运行并为pods提供运行环境.
3)Node
Node是Kubernetes的工作者,之前也叫Minion. Node可以是一个VM或者物理主机.每个节点有运行PODs所必须的服务,通过Master组件来管理. 这些服务包括docker, ku