「Kubernetes」- 概念、术语

  CREATED BY JENKINSBOT

问题描述

该笔记将记录:在 Kubernetes 中,的各个组件及其作用;

解决方案

在官方主页中,主要由以下几个部分:
HOME – 基本介绍,文档分类,快速入口
GETTING STARTED – 快速开始,集群部署,最佳实践
CONCEPTS – 在集群中的一些基本概念。比如,API 对象,网络,集群组件等等。;
TASKS – 执行某些特定任务示例,相当于使用教程;
TUTORIALS – 与 TASK 类似,该部分包含使用讲解,更加偏向一些示例;
REFERENCE – 对象使用方法,调用 API 的方法。这一部分更加偏向于开发人员;
CONTRIBUTE – 文档的共享方法;

集群架构

下图源自官方文档:

Kubernetes Control Plane

etcd

分布式高可用键值存储,集群持久化组件。存储每个节点会用到的配置信息,包含敏感信息;

该组件只能被 API Server 访问;

Q:为什么 Kubernetes 选择 etcd 作为存储:?
A:Kubernetes Book/How Does Kubernetes Use etcd?TechTarget/How does Kubernetes use etcd?

API Server(kube-apiserver)

使用 API 提供集群中所有操作,即集群所有操作通过 API 接口实现,所有组件均与 API Server 交互;

Controller Manager(kube-controller-manager)

该组件负责收集集群状态并执行任务;控制器管理器负责为副本集、命名空间等本地资源以及数量众多的部署(由副本集管理)提供控制器。控制器管理器与 API 服务器同步其状态的速度是有限的。

核心控制器有 Replication controller、Endpoint controller、Namespace controller、Service account controller,不同控制器负责集群不同方面;

有多个调节器用于调整这一行为:
kube-api-qps — 控制器管理器在一秒钟内可以向 API 服务器进行查询的次数。
kube-api-burst — 控制器管理器突发流量峰值,是 kube-api-qps 之上另一个并发调用数。
concurrent-deployment-syncs — 部署、复制集等对象同步调用的并发性。

Scheduler(kube-scheduler)

在主节点中关键组件,负责分发工作负载。换句话说,它负责将 POD 分配到可用节点;

Kubernetes Worker Node

kubelet

主要的节点代理,运行在每个节点中。它负责接收 PodSpec 定义(主要来自于 API Server 服务),然后确保节点中的 POD 运行及健康;

kube-proxy

网络代理,运行在各节点中,负责进行流量转发、轮寻等等;

Container Runtime

容器运行环境,通常为 Docker 等等容器运行环境;

Addons

DNS

Web UI (Dashboard)

Container Resource Monitoring

Cluster-level Logging

Static Pods

所谓静态 Pod,是指由 kubelet 直接管理的 Pod 实例;

参考文献

Kubernetes Components
Kubernetes in three diagrams
Kubernetes Reference/kube-proxy
Kubernetes Reference/kubelet
Kubernetes – Cluster Architecture
Wikipedia/Kubernetes