️k8s描述
K8s是kubernetes的简称,是容器编排系统,负责创建应用、部署应用、应用提供服务、更新应用、应用扩容、健康检测、异常重启
应用k8s的优点
- 简化应用程序部署
- 简化应用程序开发
- 硬件资源充分利用
- 程序自我检测和修复
- 便于应用扩容
k8s组件图
- master节点
- kube-api-server组件:集群管理入口,鉴权功能,提供Restful Api接口;数据交换和通信的枢纽,与其他组建通信,操作etcd做数据持久化存储
- kube-contronller-manager组件:控制器管理者,replication controller、node controller、deployment controller、endpoint controller
- kube-scheduler组件:集群资源调度
- etcd组件:键值对存储数据库,持久化存储
- node节点
- kunbelet组件:是master节点和node节点的连接桥梁,节点管理,pod管理,容器健康检查,资源监控
- kube-proxy组件:网络代理,负载均衡,service对外服务访问的代理入口
- container-runtime:容器运行环境
kubectl run命令创建的pod
sequenceDiagram
participant kubectl as kubectl/其他客户端
participant apiServer
kubectl->>apiServer: pod信息
apiServer->>apiServer: 客户端权限验证、生成pod对象信息
apiServer->>etcd:存储pod对象信息
etcd-->>apiServer:apiServer反馈etcd中pod对象变化
apiServer->>schedule:scheduler组件watch监听信息
schedule-->>apiServer:内部算法分配最佳主机,apiServer
apiServer->>kunbelet:(node节点)kunbelet组件watch监听信息
kunbelet-->>apiServer:发现有pod调度到本节点,启动docker容器,并反馈给apiServer
apiServer->>etcd:将收到的pod信息存储到etcd
etcd-->>apiServer:success
apiServer-->>kubectl:success