Kubernetes介绍
Kubernetes介绍
官网网址:
https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/
1.Kubernetes架构
从系统架构来看,k8s分为2个节点
Master 控制节点 指挥官
Node 工作节点 干活的
Master节点组件
kube-API Server
作用:提供k8s API接口
主要处理Rest操作以及更新Etcd中的对象
是所有资源增删改查的唯一入口。
Scheduler
作用:资源调度器
根据etcd里的节点资源状态决定将Pod绑定到哪个Node上(负载均衡)
Controller Manager
作用:负责保障pod的健康存在
资源对象的自动化控制中心,Kubernetes集群有很多控制器。
Etcd
作用:Kubernetes集群的数据库
所有持久化的状态信息存储在Etcd中
kubectl
作用:管理k8s集群的客户端工具,管理员通过kubectl命令对API Server进行操作。
API Server 响应并返回对应的命令结果,从而达到对 Kubernetes 集群的管理。
Node节点的组成
Docker Engine
负责节点容器的管理工作,最终创建出来的是一个Docker容器。
kubelet
安装在Node上的代理服务,用来管理Pods以及容器/镜像/Volume等,实现对集群对节点的管理。
kube-proxy
安装在Node上的网络代理服务,提供网络代理以及负载均衡,实现与Service通讯。
图解:

2.k8s核心资源
1.POD
POD是k8s的最小单位
POD的IP地址是随机的,删除POD会改变IP
POD都有一个根容器
一个POD内可以由一个或多个容器组成
一个POD内的容器共享根容器的网络命名空间和文件系统卷
一个POD的内的网络地址由根容器提供
创建Pod流程图:

说明:
创建Pod的清单 --> API Server
API Server --> etcd
etcd --> API Server
kube-scheduler --> API Server --> etcd
etcd --> API server --> kubelet --> Docker
kubelet --> API Server --> etcd
管理员清单提交给了 APIServer
API Server 接收到请求后把资源清单信息存入到 etcd 数据库中
etcd 存好后更新状态给 API Server
API Server通过相应的接口更新事件
kube-scheduler 组件发现这个时候有一个 Pod 还没有绑定到节点上,就会对这个 Pod 进行一系列的调度,把它调度到一个最合适的节点上,然后把这个节点和 Pod 绑定到一起的信息告诉 API Server
API Server将调度消息更新到etcd里,etcd更新好后返回状态给API Server
节点上的 kubelet 组件这个时候 watch 到有一个 Pod 被分配过来了,就去把这个 Pod 的信息拉取下来,然后根据描述通过容器运行时把容器创建出来,最后当然同样把 Pod 状态汇报给API
Server 再写回到 etcd 中去,这样就完成了一整个的创建流程。

浙公网安备 33010602011771号