美文网首页
yaml中多资源对象共存写法

yaml中多资源对象共存写法

作者: 一个技术 | 来源:发表于2018-11-20 14:16 被阅读0次

    更多内容查看我的gitbook
    https://misa.gitbook.io/k8s-ocp-yaml/

    单yaml 文件多资源共存

    同一个 yaml 文件中包含多资源的写法,比如deployment, service ,pv 等

    以deployment 和service 并存为例

    deployment 和 service 文件

    deployment 文件

    kubectl run tomcat11 --image=registry.cn-hangzhou.aliyuncs.com/misa/tomcat:9.0 --replicas=2 --port=8080 --dry-run -o yaml > deploy.yaml
    
    [root@master1 feng]# cat deploy.yaml
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      creationTimestamp: null
      labels:
        run: tomcat11
      name: tomcat11
    spec:
      replicas: 2
      selector:
        matchLabels:
          run: tomcat11
      strategy: {}
      template:
        metadata:
          creationTimestamp: null
          labels:
            run: tomcat11
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/misa/tomcat:9.0
            name: tomcat11
            ports:
            - containerPort: 8080
            resources: {}
    status: {}
    
    

    service 文件

    kubectl expose deployment tomcat11 --port=8080 --type=NodePort --dry-run -o yaml > svc.yaml
    
    [root@master1 feng]# cat svc.yaml
    apiVersion: v1
    kind: Service
    metadata:
      creationTimestamp: null
      labels:
        run: tomcat11
      name: tomcat11
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
      selector:
        run: tomcat11
      type: NodePort
    status:
      loadBalancer: {}
    
    

    合并方式1

    两个对象中间用 --- 隔开,不然会只能识别到一个

    [root@master1 feng]# cat svc.yaml >> add.yaml
    [root@master1 feng]# echo "---" >> add.yaml
    [root@master1 feng]# cat deploy.yaml >> add.yaml
    
    [root@master1 feng]# kubectl create -f add.yaml
    service "tomcat11" created
    deployment.extensions "tomcat11" created
    

    合并方式2

    用 kind: List 来定义集合,将其他对象,deployment, service,pvc 等作为子项。

    注意 deployment service 等子项每行前面再加2给空格。

    
    [root@master1 feng]# cat deploy.yaml >> add2.yaml
    [root@master1 feng]# cat svc.yaml >> add2.yaml
    
    # 每行前面插入2个空格
    [root@master1 feng]# sed -i 's/^/  /g' add2.yaml
    
    vim add2.yaml
    
    增加前三行内容
    子项的 apiVersion 行首的第一个空格换成 -
    
    [root@master1 feng]# kubectl create -f add2.yaml
    deployment.extensions "tomcat11" created
    service "tomcat11" created
    
    
    [root@master1 feng]# cat add2.yaml
    apiVersion: v1
    kind: List
    items:
    - apiVersion: extensions/v1beta1
      kind: Deployment
      metadata:
        creationTimestamp: null
        labels:
          run: tomcat11
        name: tomcat11
      spec:
        replicas: 2
        selector:
          matchLabels:
            run: tomcat11
        strategy: {}
        template:
          metadata:
            creationTimestamp: null
            labels:
              run: tomcat11
          spec:
            containers:
            - image: registry.cn-hangzhou.aliyuncs.com/misa/tomcat:9.0
              name: tomcat11
              ports:
              - containerPort: 8080
              resources: {}
      status: {}
    - apiVersion: v1
      kind: Service
      metadata:
        creationTimestamp: null
        labels:
          run: tomcat11
        name: tomcat11
      spec:
        ports:
        - port: 8080
          protocol: TCP
          targetPort: 8080
        selector:
          run: tomcat11
        type: NodePort
      status:
        loadBalancer: {}
    
    

    相关文章

      网友评论

          本文标题:yaml中多资源对象共存写法

          本文链接:https://www.haomeiwen.com/subject/ijtxqqtx.html