zoukankan      html  css  js  c++  java
  • Deployment.yaml文件

    yaml文件相关字段的记录,临时记录,有些乱,请谅解

    apiVersion: extensions/v1beta1    #接口版本
    kind: Deployment                 #接口类型
    metadata:
      name: cango-demo               #Deployment名称
      namespace: cango-prd           #命名空间
      labels:
        app: cango-demo              #标签
    spec:
      replicas: 3
       strategy:  #更新策略
        rollingUpdate:  ##由于replicas为3,则整个升级,pod个数在2-4个之间
          maxSurge: 1      #滚动升级时会先启动1个pod
          maxUnavailable: 1 #滚动升级时允许的最大Unavailable的pod个数
      selector:  #选择器
        matchLabels:
          app: cango-demo  #匹配pod标签
      template:   #pod模板       
        metadata:  #pod元数据
          labels:
            app: cango-demo  #pod模板名称标签,必填
        spec: #定义容器模板,该模板可以包含多个容器
          containers:                                                                   
            - name: cango-demo    #随意                                                         #镜像名称
              image: swr.cn-east-2.myhuaweicloud.com/cango-prd/cango-demo:0.0.1-SNAPSHOT #镜像地址
              command: [ "/bin/sh","-c","cat /etc/config/path/to/special-key" ]      #启动命令
              args: 
                #- '"-f","-h /data/web/html"'  #-f 放前台 -h 定义家目录                                                            #启动参数
                - '-storage.local.retention=$(STORAGE_RETENTION)'
                - '-storage.local.memory-chunks=$(STORAGE_MEMORY_CHUNKS)'
                - '-config.file=/etc/prometheus/prometheus.yml'
                - '-alertmanager.url=http://alertmanager:9093/alertmanager'
                - '-web.external-url=$(EXTERNAL_URL)'
                #如果command和args均没有写,那么用Docker默认的配置。
                #如果command写了,但args没有写,那么Docker默认的配置会被忽略而且仅仅执行.yaml文件的command(不带任何参数的)。
                #如果command没写,但args写了,那么Docker默认配置的ENTRYPOINT的命令行会被执行,但是调用的参数是.yaml中的args。
                #如果如果command和args都写了,那么Docker默认的配置被忽略,使用.yaml的配置。
              imagePullPolicy: IfNotPresent  #如果不存在则拉取
              livenessProbe:       #表示container是否处于live状态。如果LivenessProbe失败,LivenessProbe将会通知kubelet对应的container不健康了。随后kubelet将kill掉container,并根据RestarPolicy进行进一步的操作。默认情况下LivenessProbe在第一次检测之前初始化值为Success,如果container没有提供LivenessProbe,则也认为是Success;
                httpGet:
                  path: /health #如果没有心跳检测接口就为/
                  port: 8080  #或者http,由于定义了容器端口名称,可以通过名称应用
                  scheme: HTTP
                initialDelaySeconds: 60 ##启动后延时多久开始运行检测
                timeoutSeconds: 5    #超时次数
                successThreshold: 1   #成功次数
                failureThreshold: 5   #失败次数
                readinessProbe:
              readinessProbe:   #表示是否就绪。如果没有就绪,就不会放在service后端,客户的请求就不会因找不到资源而报错了
                httpGet:
                  path: /health #如果没有心跳检测接口就为/
                  port: 8080
                  scheme: HTTP
                initialDelaySeconds: 30    ##启动后延时多久开始运行检测
                timeoutSeconds: 5
                successThreshold: 1
                failureThreshold: 5
              resources:              ##CPU内存限制
                requests:
                  cpu: 2
                  memory: 2048Mi
                limits:
                  cpu: 2
                  memory: 2048Mi
              env:                    ##通过环境变量的方式,直接传递pod=自定义Linux OS环境变量
                - name: LOCAL_KEY       #本地Key
                  value: value
                - name: CONFIG_MAP_KEY    #局策略可使用configMap的配置Key, 
                - name: REDIS_HOST
                  value: redis.default.svc.cluster.local
                  valueFrom:
                    configMapKeyRef:
                      name: special-config     #configmap中找到name为special-config
                      key: special.type        #找到name为special-config里data下的key
              ports:
                - name: http  #定义了容器端口名称
                  containerPort: 8080 #对service暴露端口
              volumeMounts:     #挂载volumes中定义的磁盘
              - name: log-cache
                mount: /tmp/log
              - name: sdb        #普通用法,该卷跟随容器销毁,挂载一个目录
                mountPath: /data/media    
              - name: nfs-client-root     #直接挂载硬盘方法,如挂载下面的nfs目录到/mnt/nfs
                mountPath: /mnt/nfs
              - name: example-volume-config    #高级用法第1种,将ConfigMap的log-script,backup-script分别挂载到/etc/config目录下的一个相对路径path/to/...下,如果存在同名文件,直接覆盖。
                mountPath: /etc/config       
              - name: rbd-pvc                #高级用法第2中,挂载PVC(PresistentVolumeClaim)
    
    #使用volume将ConfigMap作为文件或目录直接挂载,其中每一个key-value键值对都会生成一个文件,key为文件名,value为内容,
      volumes:  # 定义磁盘给上面volumeMounts挂载
      - name: log-cache
        emptyDir: {}
      - name: sdb  #挂载宿主机上面的目录
        hostPath:
          path: /any/path/it/will/be/replaced
      - name: example-volume-config  # 供ConfigMap文件内容到指定路径使用
        configMap:
          name: example-volume-config  #ConfigMap中名称
          items:
          - key: log-script             #ConfigMap中的Key
            path: path/to/log-script  #指定目录下的一个相对路径path/to/log-script
          - key: backup-script          #ConfigMap中的Key
            path: path/to/backup-script  #指定目录下的一个相对路径path/to/backup-script
      - name: nfs-client-root           #供挂载NFS存储类型
        nfs:
          server: 10.42.0.55            #NFS服务器地址
          path: /opt/public             #showmount -e 看一下路径
      - name: rbd-pvc                   #挂载PVC磁盘
        persistentVolumeClaim:
          claimName: rbd-pvc1           #挂载已经申请的pvc磁盘
    
    少年不识愁滋味,爱上层楼。爱上层楼。为赋新词强说愁。 而今识尽愁滋味,欲说还休。欲说还休。却道天凉好个秋。
     
    分类: kubenetes
    0
    0
     
     
     
    « 上一篇: jenkins.yaml部署
    » 下一篇: zabbix-4.2.1安装
  • 相关阅读:
    编写有效用例_阅读笔记05
    编写有效用例_阅读笔记04
    编写有效用例_阅读笔记03
    编写有效用例_阅读笔记02
    软件需求与分析课堂讨论一
    编写有效用例_阅读笔记01
    问题账户需求分析
    【知识总结】动态 DP
    【知识总结】数论全家桶
    【知识总结】多项式全家桶(三点五)(拆系数解决任意模数多项式卷积)
  • 原文地址:https://www.cnblogs.com/gaidy/p/13038239.html
Copyright © 2011-2022 走看看