跳到主要内容

4.1-kubernetes

Create by fall on 16 Aug 2022 Recently revised in 26 Jul 2023

Kubernetes

而 k8s 实际上是一个使用 Docker 容器进行编排的系统。

又称 k8s 容器编排系统,以下场景时,你就需要考虑使用 k8s:

  • 大量的容器和用户需要进行处理
  • 根据 CPU 动态调整容器的数量
  • 对大量容器中出现问题时的紧急处理和自我修复

服务发现与负载均衡

无需修改你的应用程序去使用陌生的服务发现机制。Kubernetes 为容器提供了自己的 IP 地址和一个 DNS 名称,并且可以在它们之间实现负载均衡。

自动化上线和回滚

Kubernetes 会分步骤地将针对应用或其配置的更改上线,同时监视应用程序运行状况以确保你不会同时终止所有实例。如果出现问题,Kubernetes 会为你回滚所作更改。你应该充分利用不断成长的部署方案生态系统。

重新启动失败的容器,在节点死亡时替换并重新调度容器, 杀死不响应用户定义的健康检查的容器, 并且在它们准备好服务之前不会将它们公布给客户端。

除了服务之外,Kubernetes 还可以管理你的批处理和 CI 工作负载,在期望时替换掉失效的容器。

根据资源需求和其他限制自动放置容器,同时避免影响可用性。 将关键性的和尽力而为性质的工作负载进行混合放置,以提高资源利用率并节省更多资源。

存储编排

自动挂载所选存储系统,包括本地存储、诸如 AWSGCP 之类公有云提供商所提供的存储或者诸如 NFS、iSCSI、Ceph、Cinder 这类网络存储系统。

Secret 和配置管理

部署和更新 Secret 和应用程序的配置而不必重新构建容器镜像,且不必将软件堆栈配置中的秘密信息暴露出来。

  • IPv4/IPv6 双协议栈

为 Pod 和 Service 分配 IPv4 和 IPv6 地址

  • 水平扩缩、扩展

K8S

k8s 主要围绕 pods 进行工作。Pods 是 k8s 生态中最小的调度单位,可以包含一个或多个容器。由众多组件组成,组件间通过三个部分 API 互相通信:

  • controller manager:即控制平面,用于调度程序以及节点状态检测。
  • nodes:构成了 Kubernetes 集群的集体计算能力,实际部署容器运行的地方。
  • pods:Kubernetes 集群中资源的最小单位。

k8s集群架构图

参考文章

作者文章名称
爱笑的架构师5分钟带你快速了解Docker和k8s