• k8s deployment通用模板


    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: {APP_NAME}-deployment
      labels:
        app: {APP_NAME}
        #version: v{IMAGE_TAG}
      namespace: depoly
    spec:
      replicas: 1
      minReadySeconds: 30
      strategy:
        rollingUpdate:
          maxSurge: 3
          maxUnavailable: 0
      selector:
        matchLabels:
          app: {APP_NAME}
         # version: v{IMAGE_TAG}
      template:
        metadata:
          labels:
            app: {APP_NAME}
           # version: v{IMAGE_TAG}
          annotations:
            k8s.aliyun.com/eci-use-specs : {ECI_SPECS}   #指定ECI实例的vCPU和内存
            proxy.istio.io/config: '{ "terminationDrainDuration": 60s }'

    #istio 提供了 terminationDrainDuration 这个连接优雅终止时长的自定义配置,表示 sleep 多长时间之后才强制杀死 envoy,默认是 5s,结合下面的terminationGracePeriodSeconds使用
        spec:
          terminationGracePeriodSeconds: 70 

    #调整优雅终止时间,terminationGracePeriodSeconds 默认是30s。自己视情况而定(terminationGracePeriodSeconds 一定大于sleep的时间)


          containers:
          - name: {APP_NAME}
            image: registry.aliyuncs.com/{APP_NAME}:{IMAGE_TAG}
            lifecycle:
    #          postStart:
    #            exec: 
    #              command:  ["/bin/sh", "-c", "echo nacos-update.sh > /usr/local/depoly/start.sh"]
              preStop:
                exec:
    #              command:  ["/bin/sh", "-c", "/bin/sh /usr/local/depoly/offline.sh ; sleep 30; kill -15 1"]
                  command:  ["/bin/sh", "-c", "/bin/sh /usr/local/depoly/offline.sh ; sleep 60 ; kill -15 1; while [ ! -f 'kill.conf' ]; do sleep 10 && echo 1 >>1.txt; done"]
            readinessProbe:
              timeoutSeconds: 5 
              failureThreshold: 5
              initialDelaySeconds: 50   #延迟检测时间
              periodSeconds: 10 
              exec:
                command:  ["/bin/sh", "-c", "/bin/sh /usr/local/depoly/nacos-update.sh "]
          
            ports:
            - containerPort: {APP_PORT}
            env:
              - name: SPRING_PROFILES_ACTIVE
                value: {SPRING_PROFILE}
              - name: TZ
                value: "Asia/Shanghai"
              - name: POD_IP
                valueFrom:
                  fieldRef:
                    fieldPath: status.podIP
         #   volumeMounts:
         #     - name: tz
         #       mountPath: /etc/localtime
         #       subPath: Shanghai
            resources:
              limits:
                cpu: {LIMITS_CPU}
                memory: {LIMITS_MEM}
              requests:
                cpu: {REQ_CPU}
                memory: {REQ_MEM}
            volumeMounts:
              - mountPath: /home/jvm
                name: pvc-jvm
          volumes:
            - name: tz
              configMap:
                name: tz
            - name: pvc-jvm
              persistentVolumeClaim:
                claimName: pvc-jvm
          imagePullSecrets:
          - name: registry-pull-secret

  • 相关阅读:
    [ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)
    MODIS数据产品预处理方法
    Primavera Unifier 21.12.4~21.12.7.0疑似漏洞
    ResponseBodyAdvice 获取参数
    钉钉打卡作弊软件非法获利近 500 万元,CEO 被判刑 5 年 6 个月
    民安智库(第三方市场调研公司)保障性住房满意度调查流程
    使用pyQt5和matplotlib绘制图表
    【unity3D】Scroll Rect组件—制作下滑列表
    阿里P8架构大神分享纯手写“kafka文档”看完直呼太牛!
    3D 文件格式 - 对应厂商
  • 原文地址:https://blog.csdn.net/ice_bird/article/details/127985090