Kubernetes系统架构与组件功能
共享存储主要保存集群状态
Etcd分布式键值存储
Master组件:
1. Kube-apiserver
Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务。所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。
2. Kube-controller-manager
处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。
3. Kube-scheduler
根据调度算法为新创建的Pod选择一个Node节点。
Node组件:
1. Kubelet
Kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。Kubelet将每个Pod转换成一组容器。
2. Kube-proxy
在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。
3. docker或rocket/rkt
运行容器。
第三方服务:
Etcd
分布式键值存储系统。用于保持集群状态,比如Pod、Service等对象信息。
集群部署
- 环境规划
- 安装Docker
- 自签TLS证书
- 部署Etcd集群
- 部署Flannel网络
- 创建Node节点kubeconfig文件
- 获取K8S二进制包
- 运行Master组件
- 运行Node组件
- 查询集群状态
- 启动一个测试示例
- 部署Web UI(Dashboard)