kubernetes 组件理解
master : 控制站点
apiserver:提供接口服务
scheduler: kubernetes 调度服务
etcd :etcd 存储 kubernetes的配置信息,可以理解为是k8s的数据库,存储着k8s容器云平台中所有节点、pods、网络等信息。
Kube_proxy : 代理做端囗转发,相当于LVS-NAT模式中的负载调度器器
apiserver内部:
service概述:service是 pod的路由代理抽象,用于解决pod之间的服务发现问题。
replicationController:是 pod 的复制抽象,用于解决 pod 的扩容缩容问题,保证 pod的高可用 。
总结:service和replicationController 只是建立在pod之上的抽象,最终是要作用于pod的,那么它们如何跟 pod 联系起来呢?这就要引入label的概念:label 其实很好理解,就是为pod加上可用于搜索或关联的一组 key/value标签,而 service 和replicationController 正是通过 label来与pod 关联的。如上图所示,有三个pod都有label为“app=backend",创建 service和replicationController 时可以指定同样的label:"app=backend",再通过label selector机制,就将它们与这三个pod关联起来了。例如,当有其他 frontend pod 访问该 service时,自动会转发到其中的一个backend pod。
kubernetes之间的通信:
apiserver跟node之间的通信靠flannel
node1:容器实例→docker0→flannel0→真机eth0→flannel隧道
node2:容器实例→docker0→flannel0→真机eth0→flannel隧道
各个节点中的实例靠flannel隧道进行互通。