介绍
声明式对象配置跟命令式对象配置很相似,但是只有一个命令 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