Kuberbetes(十三)--简化yaml文件创建

557 阅读1分钟

简化 Kubernetes Yaml 文件创建 Kubernetes 提供了丰富的 kubectl 命令,可以较为方便地处理常见任务。如果需要自动化处理复杂的Kubernetes任务,常常需要编写Yaml配置文件。由于Yaml文件格式比较复杂,即使是老司机有时也不免会犯错或需要查询文档,也有人开玩笑这是使用 Yaml 编程。

方式1:模拟命令执行

kubectl中很多命令支持 --dry-run 和 -o yaml 参数,可以方便地模拟命令执行,并输出yaml格式的命令请求,这样我们就可以将执行结果 Copy & Paste到自己的编辑器中,修改完成自己的配置文件。

# kubectl run myapp --image=nginx --dry-run -o yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: myapp
  name: myapp
spec:
  replicas: 1
  selector:
    matchLabels:
      run: myapp
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: myapp
    spec:
      containers:
      - image: nginx
        name: myapp
        resources: {}
status: {}

# kubectl create secret generic mysecret --from-literal=quiet-phrase="Shh! Dont' tell" -o yaml --dry-run
apiVersion: v1
data:
  quiet-phrase: U2hoISBEb250JyB0ZWxs
kind: Secret
metadata:
  creationTimestamp: null
  name: mysecret

方式2:导出资源描述

#kubectl get <resource-type> <resource> --export -o yaml 
上面命令会以Yaml格式导出系统中已有资源描述

比如,可以将系统中 nginx 部署的描述导成 Yaml 文件:

先查看:

[root@k8s-master ~]# kubectl get deployment
NAME        DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
my-nginx    2         2         2            1           42m
my-nginx1   2         2         2            2           35m

再导出:

# kubectl get deployment my-nginx1 --export -o yaml > nginx.yaml