Kubernetes 上云总结
Kubernetes 作为上云时不可或缺的应用,能够便捷地实现应用的容器化部署。它提供了一套有效的机制,用于应用的部署、规划、更新和维护。
本文主要介绍 Kubernetes 的基本概念。
为什么需要 Kubernetes?
应用部署的三大阶段
-
传统部署:
- 手动操作部署应用,直接将应用部署在目标机器上
- 由于资源不隔离,容易出现资源争抢、依赖冲突等问题

-
虚拟化部署:
- 利用 VMware 等虚拟化技术,将一个物理机虚拟化为多个机器
- 提升服务器资源利用率
- 提供一个完全隔离的环境(OS 级别)

-
容器化部署
- 可以理解为轻量级的虚拟化(进程级别),弥补了虚拟化技术过重的问题
- 由于直接共享主机硬件资源,只是通过系统提供的命名空间等技术实现资源隔离,损耗更小,且效率更高

Kubernetes 的特点
- 自我修复
- 弹性伸缩
- 自动部署和回滚
- 服务发现和负载均衡
- 机密和配置管理
- 存储编排
- 批处理
Kubernetes 介绍
Kubernetes 各种组件
-
Master
- Kube Api Server:处理来自用户和其它组件的 API 请求,验证请求并将配置数据持久化
- Kube Scheduler:将新创建的 Pod 分配到合适的节点上,考虑节点资源和约束等因素来进行调度决策
- Kube Controller Manager:包含多个控制器,用于监控集群状态的变化,并根据所需的状态进行调整
- Cloud Controller Manager:负责运行特定于云平台的控制器
- Etcd:分布式键值存储系统,用于保存集群的配置数据、状态和元数据

-
Node
- Kubelet:运行在每个节点上的代理,负责与 Master 节点通信,确保节点上运行的容器处于预期状态
- Kube Proxy:负责维护节点上的网络规则,为服务提供负载均衡和代理功能,确保服务间的网络通信
- Container Runtime:负责镜像管理以及 Pod 和容器的真正运行

-
一个 Command 的调用链

Kubernetes 各种资源
Pod 的控制器
技术 · #Kubernetes · #容器化 · #云部署