Kubernetes主要由以下几个核心组件组成:
1. etcd:提供数据库服务保存了整个集群的状态
2. kube-apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
3. kube-controller-manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
4. cloud-controller-manager:是与底层云计算服务商交互的控制器
5. kub-scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
6. kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
7. kube-proxy:负责为Service提供内部的服务发现和负载均衡,并维护网络规则
8. container-runtime:是负责管理运行容器的软件,比如docker
除了核心组件,还有一些推荐的Add-ons:
1. kube-dns负责为整个集群提供DNS服务
2. Ingress Controller为服务提供外网入口
3. Heapster提供资源监控
4. Dashboard提供GUI
5. Federation提供跨可用区的集群
6. Fluentd-elasticsearch提供集群日志采集、存储与查询