前言
近年来 Kubernetes(k8s)的热度越来越高,反映了k8s 已经成为一个领先的自动化容器操作的开源平台。也许,再过两年大部分的服务都会运行在 k8s 集群上面,掌握 k8s 就如同程序员需要掌握基本的 Llinux 操作命令一样基础。
在现在这个信息发达的社会下,谁能比别人领先一步掌握新技术,谁就在竞争中赢得了先机。 然而,在了解一个大的系统时,应该尽量先了解其基本概念、术语及核心原理。本文将和大家一起学习 Kubernetes 的基本概念、术语及核心原理。
基本概念和术语
k8s 中的大部分概念如 Node、Pod、Volume、Replication Controller、 Service 等都可以理解为资源对象,几乎所有的资源对象都可以通过 kubectl 工具(或者 API 调用)执行 CRUD 等操作。所以也可以把 k8s 理解为一个自动化容器资源的管理和调度平台。
下图展示了一个典型的 Kubernetes 架构图,现在来一起学习:
![v2-d58ea9cc4b5ff49ac95859e2cb112a85_b.png](https://i-blog.csdnimg.cn/blog_migrate/163ba2d4830397dc7abb3b46e11d614b.png)
1. Master
Master 指的是集群的控制节点,每个 k8s 集群里至少需要一个 Master 节点来负责整个集群的管理和控制,所有控制命令都是发给它,它来负责具体的调度和执行。
Master 上面一般运行着下面这些关键进程:
- Kubernetes API Server(kube-apiserver): 为集群提供了 HTTP Rest 接口,是 k8s 集群集群操作和资源操作的唯一入口。
- Kubernetes Controller Manager(kube-controller-manager): k8s 里资源对象的自动化控制中心。
- Kubernetes Scheduler(kube-scheduler): 资源的调度进程。
2. Node
Node 是 k8s 集群中用于运行 Pod 的机器,Node 为整个集群提供可用的集群资源,比如用于保持数据、运行作业、创建网络路由等。如果某个 Node节点宕机,其上的工作负载会被 Master 自动转移到其它节点上去。
Node 节点上面会运行以下关键进程: