k8s组件
-
apiserver
API服务器是k8s控制平台的组件,该组件负责公开了k8s API,赋值处理接受请求的工作。API服务器是k8s控制平面的前端
kube-apiserver是整个k8s集群的交通枢纽,对外监听6443端口。apiserver 是 Kubernetes API 的入口,负责接收和处理所有的 API 请求。
-
etcd
数据库,一致且高可用的键值存储,用作k8s所有集群数据的后台数据库
端口:2379、2380、2381 -
scheduler
负责坚实新创建的、未指定运行节点(node)的pods,并选择节点来让pod在上面运行
调度器,pod的调度,安排pod去哪台node节点服务器去运行
-
controller-manager
控制器管理器,负责运行控制器进程
k8s有的控制器:副本控制器、部署控制器、计划任务等 -
node上的组件
- kubelet 保证容器都运行在pod中,是单独的程序,在宿主机里运行。调用docker启动需要的容器,指挥docker工作、启动容器
- kube-proxy 是集群中每个节点(node)上所运行的网络代理,是单独的程序,在宿主机里运行。他维护节点上的一些网络规则,这些网络规则会允许从集群内部或外部的网络会话与pod进行网络通信。如果操作系统提供了可用的数据包过滤层,那么kube-proxy会通过他来实现网络规则,否则kube-proxy仅做网络转发
-
DNS
coredns是进行集群内部域名解析的组件
-
calico
适合大规模的集群
-
flannel
适合小规模的集群
重启Docker服务,控制器会自动重启容器,关闭集群中的某个机器,会在其他机器重新启动相关容器
挂起然后开机恢复:经常会导致docker容器之间网络不互通