k8s的yaml相关指令以及操作案例

1.required属性指令,必须存在的属性【创建资源清单的时候没有这些属性的存在它是不允许被执行的】

2.optional,主要属性【这些属性比较重要,如果不指定的话系统会自动补充默认值】






3.other,额外的的一些属性。

4.查看资源有那些资源清单属性,使用以下命令

# 查询所有的资源清单资源
kubectl explain pod

# 查看属性说明
kubectl explain pod.apiVersion

5.下面我们定义一个deployment基于上传到harbor上的镜像

  1. 我们在/opt目录下定义一个myapp-deployment.yml,内容如下
    #这个是我们的版本信息
    apiVersion: apps/v1 
    #这个表示资源类型我们创建的是deployment
    kind: Deployment
    metadata: #这个里面定义的是deployment中我们创建的对象信息
      #对象名称
      name: myapp-deploy
      #元数据名称空间
      namespace: default
     # 第一段: 用来描述Deployment对象。
    spec: #这个是对详细对象的定义
      # 告知副本控制器ReplicaSet维护3个副本
      replicas: 3  
      #通过标签选择器去维护pod
      selector:    
        matchLabels:
          #用来匹配pod名称为myapp  
          app: myapp
          #匹配版本类型是stable的pod
          release: stabel 
      # 第二段:给ReplicaSet来使用的。
      template: #template下面是用来描述pod的
        #定义pod元数据信息
        metadata: 
          labels: #为我们的pod打个标签和上面的selector匹配的标签保持一致 
            app: myapp
            release: stabel
            env: test
        spec: #对pod进行详细的定义
          containers: #在这里定义容器信息
          #容器的名称
          - name: myapp
            #定义我们要用到的镜像名称 
            image: hub.harbor.com/library/myapp:v1
            #定义镜像的拉取策略
            imagePullPolicy: IfNotPresent
            ports: #指定容器需要用到的端口列表
            #指定端口名称
            - name: http
              #指定容器需要监听的端口号
              containerPort: 80
    # 第三段:描述pod
  2. 使用命令执行我们的yaml文件
    命令:kubectl create -f myapp-deployment.yaml
  3. 我们使用curl测试一下
  4. 上面的案例现在是不能对外网提供服务的,因为我们现在没有创建service,那么下面我们用yaml文件再创建一个service
    在/opt目录下创建一个myapp-svc.yaml文件

    内容如下:
    #service版本
    apiVersion: v1
    #这个表示资源类型我们创建的是Service
    kind: Service
    metadata: #这个里面定义的是Service中我们创建的对象信息
      #对象名称
      name: myweb
      #元数据名称空间
      namespace: default
    spec: #下面定义service的详细信息
      #类型为NodePort
      type: NodePort
      selector: #通过标签选择器去查询对应版本的pod,最后组成一个service
        app: myapp
        release: stabel
      ports: #指定容器需要用到的端口列表
      #指定端口名称 
      - name: http
        #服务对外的端口
        port: 80
        #容器的端口
        targetPort: 80

     

  5. 下面通过命令运行yaml脚本
    命令:kubectl apply -f myapp-svc.yaml
  6. 下面我们通过外网访问一下
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
生成Kubernetes(K8S)的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\] 通过这些方法,您可以方便地生成Kubernetes的YAML文件,并根据需要进行修改和使用。 #### 引用[.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 ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值