【️k8s学习记录1】k8s理解和使用kubectl run命令创建的pod流程说明

74 阅读1分钟

️k8s描述

K8s是kubernetes的简称,是容器编排系统,负责创建应用、部署应用、应用提供服务、更新应用、应用扩容、健康检测、异常重启

应用k8s的优点

  • 简化应用程序部署
  • 简化应用程序开发
  • 硬件资源充分利用
  • 程序自我检测和修复
  • 便于应用扩容

k8s组件图

image

  • master节点
    • kube-api-server组件:集群管理入口,鉴权功能,提供Restful Api接口;数据交换和通信的枢纽,与其他组建通信,操作etcd做数据持久化存储
    • kube-contronller-manager组件:控制器管理者,replication controller、node controller、deployment controller、endpoint controller image
    • 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