kubectl apply -f <file> 命令根据提供的 YAML 文件应用或更新 Kubernetes 资源的配置,管理它们在集群中的理想状态。


下面举例说明如何使用 kubectl apply 在 Kubernetes 集群中使用 YAML 配置文件创建部署。

【代码清单】

# deployment.apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-deployment
spec:
 replicas: 2
 selector:
  matchLabels:
   app: nginx
 template:
  metadata:
   labels:
     app: nginx
  spec:
   containers:
   \- name: nginx
     image: nginx:1.21.0
     ports:
     \- containerPort: 80
# Apply the deployment using kubectl
kubectl apply -f deployment.

【执行结果】

deployment.apps/nginx-deployment created

kubectl apply -f <file> 命令会读取 YAML 文件,确保指定的配置应用到集群。在本例中,YAML 文件定义了一个名为 nginx-deployment 的部署,其中包含两个 nginx 容器副本。运行该命令后,Kubernetes 将创建或更新部署,以匹配 YAML 中定义的所需状态。部署可确保两个运行 nginx 容器的 pod 启动并运行。Kubernetes 会自动管理 pod,重启任何失效的 pod,或按照指定的方式向上/向下扩展。

【小知识】

kubectl apply 命令是声明式的,这意味着它能确保集群的状态与 YAML 文件中定义的配置相匹配。这与命令式命令不同,后者直接指示 Kubernetes 执行特定操作。声明式方法功能强大,因为它允许将基础架构作为代码进行版本管理和持续管理,从而更容易跟踪变化并随着时间的推移保持所需的状态。