Kubernetes中的概念

218 阅读1分钟

当我对Docker有些了解,并开始学习Kubernetes时,我被告知的Kubernetes的本质,是在容器之上的编排,Kubernetes想要的是容器生态,Kubernetes仅仅将Docker作为最底层的一个容器运行时实现。

Kubernetes中的概念

开始学习Kubernetes,要厘清的并不要太多,比如,先从Kubernetes的核心组件:Pod、Deployment、Service。

  • Pod 豆荚,就是能包装容器,用Pod作为调度的单位,Kubernetes进行容器的调度。
  • Deployment,可以理解为Pod的部署,部署嘛,支持多副本等。
  • Service是集群的核心。Service代理Pod,声明的IP地址是不变的。顾名思义,对外提供服务,外部也是通过Service来获取容器中运行的应用提供的服务。

Kubernetes核心功能全景图

release的二进制文件

以及了解Kubernetes运行的二进制文件,比如kubelet。

  • 在Kubernetes项目中,kublet主要负责通容器运行时打交道。
  • 此外,kublet还通过GRPC协议同Device Plugin进行交换。
  • kublet的另一个重要功能,是调用网络插件和存储插件为容器配置网络和持久化存储。

理解设计思想

Kubernetes推崇的使用方法是“声明式”API。这种API对应的“编排对象”和“服务对象”,都是Kubernetes项目中的API对象(API Object)。

Master

  • API Server: 提供REST接口的关键服务进程
  • Controller Manager: 所有资源的自动化控制中心
  • Scheduler: 负责Pod资源调度
  • Etcd: 所有应用资源存储在Etcd中

Node

Minion

  • kubelet: Pod的启停和与master节点协作
  • kube-proxy: 负责Server的负载均衡
  • 容器运行时: 容器的创建和运行