kubectl apply 用于使用声明式配置文件管理 Kubernetes 资源。无需手动创建和更新资源,只需在 YAML 文件中定义所需的状态,然后 kubectl apply 就能确保集群与该状态相匹配。
下面是一个简单的 YAML 部署配置文件示例,以及如何使用 kubectl apply 在 Kubernetes 集群中创建和管理该部署。
【代码清单】
# deployment.apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx:1.19.10
ports:
- containerPort: 80
kubectl apply -f deployment.
【执行结果】
deployment.apps/my-deployment created
当你使用 kubectl apply 时,你是在声明模式下操作的。这意味着你在 YAML 文件中定义了应用程序的理想状态,Kubernetes 会持续确保集群反映出这种状态: 指定 Kubernetes 资源的 API 版本.kind:表示资源类型(本例中为部署).metadata: 包含部署名称: 用 kubectl apply -f deployment.yaml 应用该文件后,Kubernetes 会创建一个包含指定容器的三个副本的部署,确保应用程序按预期运行。
【小知识】
使用 kubectl apply 进行声明式配置的一个关键优势是它的惰性。这意味着你可以多次应用同一个配置文件,而不会改变结果。Kubernetes只会进行必要的更改,以使集群的当前状态与YAML文件中定义的理想状态保持一致。此外,kubectl apply还能让版本控制和协作变得更容易,因为配置文件可以存储在Git等版本控制系统中,使团队能够系统地管理和审查对集群配置的更改。