一条yaml中有不少字段,若是去背这些字段,其实也能背过,可是去写一条yaml,也每每浪费不少的时间,也会出错,其实咱们能够用一条命令就能快速来写一段自定义的yaml,工做中去修改相应的yaml也驾轻就熟,效率也会很高,接下来咱们来看一下nginx
[root@k8s-master ~]# kubectl create deployment nginx --image=nginx -o yaml --dry-run > my-deployment.yaml
-o yaml指定咱们的yaml文件vim
--dry-run 不在k8s中执行api
重定向到咱们的文件中app
[root@k8s-master ~]# vim my-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: nginx name: nginx spec: replicas: 1 selector: matchLabels: app: nginx strategy: {} template: metadata: creationTimestamp: null labels: app: nginx spec: containers: - image: nginx name: nginx resources: {} status: {}
这是新建立一条yaml文件,咱们也能够根据咱们的原有的pod来生成yaml,或者修改ide
[root@k8s-master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx-7bb7cd8db5-jrzgg 1/1 Running 0 93m [root@k8s-master ~]# kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE nginx 1/1 1 1 93m [root@k8s-master ~]# kubectl get deploy nginx -o yaml --export > my-deploy2.yaml
-o yaml:指定yaml文件spa
--export:输出rest
Flag --export has been deprecated, This flag is deprecated and will be removed in future.code
[root@k8s-master ~]# vim my-deploy2.yaml [root@k8s-master ~]# cat my-deploy2.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: null generation: 1 labels: run: nginx name: nginx selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/nginx spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: run: nginx strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: creationTimestamp: null labels: run: nginx spec: containers: - image: nginx imagePullPolicy: Always name: nginx resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 status: {}
这样的yaml效率很高,也不易出错,但愿能够帮到你dns