1.k8s整体架构图
一个k8s集群由Control Plane 和 node节点组成。
2.Control Plane
2.1 控制平面组件说明
Control Plane节点主要有以下几个组件:kube-apiserver、etcd、kube-scheduler、kube-controller-manager、cloud-controller-manager
- kube-apiserver:为k8s提供api接口服务。kube-apiserver支持支持水平扩展。
- kube-scheduler:绑定Pod到Node上,主要做资源调度。
- kube-Controller-Manager:控制管理器。资源对象的自动化控制中心,Kubernetes集群有很多控制器。
常用控制器类型:
- 节点控制器:负责节点故障时的通知和响应。
- 作业控制器:监视表示一次性任务的作业对象,然后创建Pods来运行这些任务直至完成。
- 端点控制器:填充端点对象(即连接Services & Pods)。
- 服务帐户和令牌控制器:为新名称空间创建默认帐户和API访问令牌
- cloud-controller-manager:云控制管理器。用于管理运行于公有云上的k8s集群。如果不使用云商部署k8s集群,则集群没有此控制管理器。
- Etcd:所有持久化的状态信息存储在Etcd中,这个是Kubernetes集群的数据库。
3.Node
Node节点是Kubernetes集群的工作节点,在Node节点上主要运行了kubelet、kube-proxy、Container runtime、
- Kubelet:安装在Node上的代理服务,用来管理Pods以及容器、镜像、Volume等,实现对集群对节点的管理。
- Kube-proxy:安装在Node上的网络代理服务,提供网络代理以及负载均衡,实现与Service通讯。
4.Addons
- DNS:k8s集群应该有一个dns服务,用于为k8s集群提供服务。
- Web UI(Dashboard)
- Container Resource Monitoring: 容器监控插件
- Cluster-level Logging:日志处理插件,将群集级别的日志保存到日志存储中心。
5.客户端工具
- kubectl