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 工作负载,在期望时替换掉失效的容器。
根据资源需求和其他限制自动放置容器,同时避免影响可用性。 将关键性的和尽力而为性质的工作负载进行混合放置,以提高资源利用率并节省更多资源。
存储编排
自动挂载所选存储系统,包括本地存储、诸如 AWS 或 GCP 之类公有云提供商所提供的存储或者诸如 NFS、iSCSI、Ceph、Cinder 这类网络存储系统。
Secret 和配置管理
部署和更新 Secret 和应用程序的配置而不必重新构建容器镜像,且不必将软件堆栈配置中的秘密信息暴露出来。
- IPv4/IPv6 双协议栈
为 Pod 和 Service 分配 IPv4 和 IPv6 地址
- 水平扩缩、扩展
K8S
k8s 主要围绕 pods 进行工作。Pods 是 k8s 生态中最小的调度单位,可以包含一个或多个容器。由众多组件组成,组件间通过三个部分 API 互相通信:
- controller manager:即控制平面,用于调度程序以及节点状态检测。
- nodes:构成了 Kubernetes 集群的集体计算能力,实际部署容器运行的地方。
- pods:Kubernetes 集群中资源的最小单位。
参考文章
作者 | 文章名称 |
---|---|
爱笑的架构师 | 5分钟带你快速了解Docker和k8s |