「CONTAINERIZATION-TECHNOLOGY」- Kubernetes | 容器编排 | KUBERNETES

认识

Kubernetes,容器编排平台,用于容器集群的自动化部署、扩容、运维的开源平台;

解决大规模容器编排的问题。在微服务场景下,容器数量会非常多,怎么管理和关联相关的容器就是巨大的问题。从而引出多种运维、持续集成、编排等需求;

针对业务问题的解决方案。它是在软件开发过程中,针对容器管理、调度、监控的平台,是软件开发的一部分;

Kubernetes 是一个开源的容器编排平台,用于自动化容器的部署、扩展和管理。它提供了一个强大的容器编排系统,可以帮助开发人员和运维团队更好地管理容器化应用程序;

Kubernetes 可以在多个主机上运行和管理容器,它可以自动化容器的部署、伸缩和故障恢复,并提供了一些高级功能,如负载均衡、服务发现和存储编排等。Kubernetes 采用了声明式的配置方式,通过使用标准化的 API 进行管理,使得应用程序的部署和管理变得简单和可靠;

Kubernetes 具有高度可扩展性和灵活性,可以运行在各种云平台、物理服务器和虚拟机上。它还提供了丰富的插件和工具生态系统,可以与其他开源项目和服务进行集成,如 Prometheus、Elasticsearch 等;

总之,Kubernetes 是一个功能强大的容器编排平台,可以帮助开发人员和运维团队更好地管理容器化应用程序,提高应用程序的可靠性和可扩展性。

官网:https://kubernetes.io/
文档:https://kubernetes.io/docs/home/
仓库:https://github.com/kubernetes/kubernetes

组成

在 Kubernetes 中,的各个组件及其作用;

下图源自官方文档:

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 交互;

Scheduler(kube-scheduler)

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

Static Pods

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

Kubernetes Worker Node

kubelet

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

kube-proxy

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

CRI (Container Runtime Interface)

Container Runtime

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

构建

WIP

性质

Run Anywhere
Service Topology
Storage orchestration
Automated rollouts and rollbacks
IPv4/IPv6 dual-stack
Service discovery and load balancing
Automatic bin packing
Self-healing
Secret and configuration management
Batch execution
Horizontal scaling

应用

服务运管

kubeadm // 服务简单部署;服务简单使用;运行服务并验证能够访问;
Backup, Recover, Migrate
Observability of Service // 服务观测
Performance Tuning, Trace // 性能优化:基准测试;压力测试;
Security and Permission

参考

Kubernetes Components
Kubernetes in three diagrams
Kubernetes Reference/kube-proxy
Kubernetes Reference/kubelet
Kubernetes – Cluster Architecture
Wikipedia/Kubernetes
Kubernetes 是什么,简介,相关资料
K8S 解决了哪些问题?
Kubernetes 解决了 Docker 使用中的哪些问题?
选择什么样的 K8S?这不是一个问题!
kubernetes/Production-Grade Container Orchestration