K8s:自动化部署、扩缩容和管理容器化应用
K8s是Kubernetes的简称,是一个用于自动化部署、扩缩容和管理容器化应用的开源平台。
它主要解决的问题是:当你的应用被打包成很多容器后,如何高效、稳定地把它们运行在一组机器上。
简单理解:
- 容器:像一个个打包好的应用运行环境,比如 Docker 容器。
- Kubernetes / K8s:负责管理这些容器,让它们在服务器集群里运行、重启、扩容、滚动发布等。
K8s 常见能力包括:
自动调度
- 决定容器应该运行在哪台机器上。
自动恢复
- 如果某个容器挂了,K8s 可以自动重启。
- 如果某台机器故障,可以把服务迁移到其他机器。
弹性伸缩
- 根据流量或资源使用情况增加/减少实例数量。
服务发现和负载均衡
- 自动把请求分发到健康的应用实例。
滚动发布和回滚
- 发布新版本时逐步替换旧版本。
- 如果新版本有问题,可以回滚。
配置和密钥管理
- 用 ConfigMap 管理配置。
- 用 Secret 管理敏感信息。
常见核心概念:
- Pod:K8s 中最小的部署单位,通常包含一个或多个容器。
- Node:集群中的一台机器,可以是物理机或虚拟机。
- Cluster:一组 Node 组成的集群。
- Deployment:声明应用应该如何部署、运行几个副本、如何升级。
- Service:为一组 Pod 提供稳定访问入口。
- Namespace:用于隔离不同环境或团队资源。
名字里的K8s是缩写:
Kubernetes中间有 8 个字母,所以写作K + 8 + s。
