Kubernetes master核心组件介绍
Master组件提供集群的管理控制中心。通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。
kube-apiserver 用于暴露Kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行;
ETCD 是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划;
kube-controller-manager 运行管理控制器,它们是集群中处理常规任务的后台线程;一个资源对应一个控制器。这些控制器包括:
节点 (Node)控制器
副本(Replication)控制器:负责维护系统中每个副本中的pod。
端点(Endpoints)控制器:填充Endpoints对象(即连接Services&Pods)。
Service Account和Token控制器:为新的Namespaces创建默认帐户访问API Token。
kube-scheduler 节点调度,监视新创建没有分配到Node的Pod,为Pod选择一个Node;
Kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
kube-proxy 通过在主机上维护网络规则并执行连接转发来实现service(Iptables/ipvs);
Container Runtime 负责镜像管理以及Pod和容器的真正运行(Docker/Rkt/Pouch/Kata)
Kubernetes node 核心组件介绍
节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。
kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
kube-proxy通过在主机上维护网络规则并执行连接转发来实现service(Iptables/ipvs);
Container Runtime负责镜像管理以及Pod和容器的真正运行(Docker/Rkt/Pouch/Kata)
除了核心组件,还有一些推荐的Add-ons:
coredns/kube-dns负责为整个集群提供DNS服务,kube-dns最新版本被弃用了。
Ingress对外提供七层服务的访问
Heapster/metries-server提供资源监控,Heapster最新版本被弃用了。
Dashboard提供GUI
Federation提供跨可用区的集群
Fluentd-elasticsearch提供集群日志采集、存储与查询