此文章为学习了张磊《深入刨析Kubernetes》的总结
阅读此文章需要有一定的docker和linux基础
一.什么是kubernetes
官方中文文档:
https://www.kubernetes.org.cn/docs
kubernetes能做什么?
- 编排
- 调度
- 容器云
- 集群管理
- 提供运维能力:网关、水平扩展、监控、备份、灾备等
(初学简化概念,实操后再精细补充)
二.Kubernetes组成
master:控制节点
- kube-apiserver:负责API服务
- kube-scheduler:负责调度
- kube-controller-manager:负责容器编排
- etcd:负责集群的持久化数据存储
node:计算节点
- Networking
- kubelet
- container runtime
- volume plugin
- device plugin
- linux os
kubelet:是计算节点的核心部分,主要负责同容器运行时(比如Docker项目)打交道。交互依赖CRI(container runtime interface)的远程调用接口,这个接口定义了容器运行时的各项核心操作,比如一个容器所需要的所有参数。所以只要这个镜像是标准的容器镜像,就可以通过CRI接入到Kubernetes项目中。
OCI:容器运行时,一般通过OCI这个容器运行时规范同底层的linux操作系统进行交互,即把CRI的请求转换成对linux系统的调用(Namespace Cgroups)。
gRPC:kubelet通过该协议于Device Plugin的插件进行交互,是kubernetes管理GPU等宿主机物理设备的主要组件。