在 Kubernetes 中,部署是一种管理 Pod 理想状态的资源。它确保指定数量的 Pod 始终在运行,便于扩展和更新。


下面的代码片段展示了如何为一个简单的网络应用程序创建一个管理 Pod 的部署。

[代码清单]

apiVersion: apps/v1
kind: Deployment
metadata:
 name: webapp-deployment
spec:
 replicas: 2
 selector:
  matchLabels:
   app: webapp
 template:
  metadata:
   labels:
​    app: webapp
  spec:
   containers:
   - name: webapp
​    image: my-webapp:1.0
​    ports:
​    - containerPort: 8080

[执行结果]

使用 `kubectl apply -f webapp-deployment.yaml` 应用此配置后,Kubernetes 将创建一个名为 `webapp-deployment` 的部署,其中包含运行在 8080 端口的 my-webapp 容器的 2 个副本。

Kubernetes 中的部署资源有几个主要优势:

扩展: 您可以通过修改部署配置中的副本字段,轻松增减副本数量。

滚动更新: 部署支持滚动更新,允许您在不停机的情况下更新应用程序。你可以更改映像版本,Kubernetes 会逐步用新的 Pod 替换旧的 Pod。

自愈: 如果 Pod 出现故障,部署控制器会自动替换它,以保持所需的状态。

在提供的示例中:

选择器字段至关重要,因为它定义了部署如何找到要管理的 Pod。它匹配带有标签 app: webapp 的 Pod。

模板部分描述了将要创建的 Pod,包括它们的规格。

[小知识]

Kubernetes 部署是 Kubernetes 中的一个基本概念,经常与服务和配置地图等其他资源结合使用。要在 Kubernetes 环境中有效管理应用程序,了解部署如何工作至关重要。此外,kubectl rollout 命令可用于管理对部署的更新,从而进一步控制应用程序的部署流程。