k8s-kubectl命令-三种资源管理方式:声明式对象配置(kubectl apply)

介绍

声明式对象配置跟命令式对象配置很相似,但是只有一个命令 apply

  • 如果资源不存在,就创建,相当于 kubectl create
  • 如果资源已存在,就更新,相当于 kubectl patch

创建配置文件

创建 nginxpod2.yaml:

vim nginxpod2.yaml

按 i 键

复制粘贴下面内容:

apiVersion: v1
kind: Namespace # 说明是 namespace 的配置
metadata:
  name: test # namespace 的名字


---

apiVersion: v1
kind: Pod # 说明是 pod 的配置
metadata:
  name: nginxpod # pod 的名字
  namespace: test # 所在的 namespace
spec:
  containers:
  - name: nginx-containers # pod 中 容器 的名字
    image: nginx:latest # 指定 nginx镜像,而且是最新版本

按 esc 键,:wq 保存退出

解释:一个yaml文件写两段配置,中间有 --- 分开

第一次执行命令

第一次执行命令是创建资源

kubectl apply -f nginxpod2.yaml

执行结果如下:

namespace/dev created
pod/nginxpod created

查看资源

kubectl get -f nginxpod2.yaml

执行结果如下:

NAME             STATUS   AGE
namespace/test   Active   2m39s

NAME           READY   STATUS    RESTARTS   AGE
pod/nginxpod   1/1     Running   0          2m38s

再次执行命令

kubectl apply -f nginxpod2.yaml

执行结果如下:

namespace/dev unchanged
pod/nginxpod unchanged

原文出处:/show_1IX6KBagVlZx.html