k8s快速生成yaml的两种方式

第一. kubectl create命令

[root@k8s-master ~]# kubectl create deployment nginx --image=nginx -o yaml --dry-run #不创建pod,打印出来
W0106 16:21:43.891679   17615 helpers.go:663] --dry-run is deprecated and can be replaced with --dry-run=client.
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: {}
[root@k8s-master ~]# 
ot@k8s-master ~]# kubectl create deployment nginx --image=nginx -o yaml --dry-run=client  > nginx.yaml #不创建pod,导出到文件中
[root@k8s-master ~]# ls
nginx.yaml
[root@k8s-master ~]# cat nginx.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: {}
[root@k8s-master ~]# 

第二. kubectl get(导出)

[root@k8s-master ~]# kubectl get deploy nginx -o yaml  > nginx.yaml #直接导出到文档中,没有创建pod
[root@k8s-master ~]# ls
nginx.yaml
[root@k8s-master ~]# cat nginx.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2023-01-06T08:25:22Z"
  generation: 1
  labels:
    app: nginx
  name: nginx
  namespace: default
  resourceVersion: "342363"
  uid: 680d72b2-9904-43ad-9833-62b05fad8300
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: nginx
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: 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:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2023-01-06T08:25:24Z"
    lastUpdateTime: "2023-01-06T08:25:24Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2023-01-06T08:25:22Z"
    lastUpdateTime: "2023-01-06T08:25:24Z"
    message: ReplicaSet "nginx-748c667d99" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1
[root@k8s-master ~]# 

第三. 用命令创建pod

[root@k8s-master ~]# kubectl create deployment nginx --image=nginx  #直接创建pod
deployment.apps/nginx created
[root@k8s-master ~]# kubectl get pods,deployments.apps 
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-748c667d99-nnnpz   1/1     Running   0          19s
pod/web-7b6955f56f-t8cb9     1/1     Running   0          2d7h

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   1/1     1            1           19s
deployment.apps/web     1/1     1            1           2d7h
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed  #直接nginx的service服务
[root@k8s-master ~]# kubectl get pods,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-748c667d99-nnnpz   1/1     Running   0          15m
pod/web-7b6955f56f-t8cb9     1/1     Running   0          2d7h

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        2d23h
service/nginx        NodePort    10.109.239.113   <none>        80:21397/TCP   10s
service/web          NodePort    10.103.63.38     <none>        80:31960/TCP   2d7h
[root@k8s-master ~]# 

第四. 验证nginx的pod是否正常
在这里插入图片描述

可以正常访问,就是OK

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
生成KubernetesK8S)的YAML文件有多种方法。一种方法是使用kubectl命令行工具。您可以使用kubectl命令行工具来创建、查看和导出资源的YAML文件。 首先,您可以使用kubectl命令行工具创建一个资源对象,并使用`--dry-run=client -o yaml`选项来试运行生成YAML模板。例如,要创建一个名为dryrun-test的部署对象并生成YAML模板,可以运行以下命令: ``` kubectl create deployment dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml > dryrun-test.yaml ``` 这将创建一个名为dryrun-test.yaml的文件,其中包含生成YAML模板。\[3\] 另一种方法是使用kubectl命令行工具获取现有资源的YAML模板。您可以使用`kubectl get`命令来获取资源的YAML模板,并将其导出到文件中。例如,要获取名为dryrun-test的部署对象的YAML模板并将其导出到export-test.yaml文件中,可以运行以下命令: ``` kubectl get deploy/dryrun-test -o yaml > export-test.yaml ``` 这将创建一个名为export-test.yaml的文件,其中包含dryrun-test部署对象的YAML模板。\[2\] 通过这些方法,您可以方便地生成KubernetesYAML文件,并根据需要进行修改和使用。 #### 引用[.reference_title] - *1* *2* *3* [【云原生之k8sYaml文件详解](https://blog.csdn.net/qq_45088125/article/details/126087470)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_14910065

你的支持是我最大的努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值