<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      k8s~helm的charts里的模版介紹deploymeny_service_ingress

      在k8s里對應用進行部署,主要也就是無狀態應用deployment,服務發現service和反向代理ingress了,所以這次主要來介紹它們,如果對yaml語法不清楚的同學還需要看我的上一篇文章。<k8s~helm里的yaml的介紹>

      無狀態應用Deployment模版

      apiVersion: apps/v1beta2
      kind: Deployment                                                   -無狀態應用
      metadata:
        name: {{ include "admin.appname" . }}-api-app                    -應用名稱
        labels:
          app: {{ include "admin.appname" . }}-api-app                   -應用標簽
      spec:
        replicas: {{ .Values.apiAppReplicaCount }}                       -副本集數,就是要開多少個應用
        selector:
          matchLabels:
            app: {{ include "admin.appname" . }}-api-app                 -映射
        template:
          metadata:
            labels:
              app: {{ include "admin.appname" . }}-api-app               -映射標簽
              release: {{ .Release.Revision | quote }}                   -版本號
          spec:
            volumes:
              - configMap:
                  defaultMode: 420
                  name: {{ .Values.configItemName }}                     -配置項名稱,這個是在上面配置項配置的時候的名稱
                name: volume-{{ include "admin.appname" . }}-api-app     -配置項名稱,這個是引入之后的別名
              {{ if .Values.isDev -}}                                    -開發環境多引入一個數據卷
              - hostPath:
                  path: {{ .Values.volumes.devWwwPath }}          -數據卷位置
                  type: ''
                name: {{ .Values.volumes.devWwwName }}           -數據卷名稱
              {{- end }}
            imagePullSecrets:                                            -鏡像密碼
              - name: {{ .Values.image.imagePullSecrets }}
            dnsPolicy: ClusterFirst
            schedulerName: default-scheduler
            containers:
              - name: {{ include "admin.appname" . }}-api-app                        -容器名稱
                image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"      -鏡像地址跟標簽
                command:
                  - /scripts/start.sh                                                -啟動腳本
                volumeMounts:
                  - mountPath: /alidata/config                                       -配置項路徑
                    name: volume-{{ include "admin.appname" . }}-api-app             -配置項名稱,跟上面的對應
                  {{ if .Values.isDev -}}                                            -開發環境額外配置數據卷
                  - mountPath: {{ .Values.volumes.devWwwRealPath }}                  -引入的數據卷配置到容器哪個位置
                    name: {{ .Values.volumes.devWwwName }}                           -數據卷名稱
                  {{- end }}
                env:                                                                 -配置環境變量
                  - name: ADMIN_CONSOLE_URL
                    value: {{ .Values.consoleHost }}
                imagePullPolicy: Always                                              -總是拉去鏡像
                ports:
                  - containerPort: 80                                                -暴露的端口
                    name: http                                                       -名字隨便取,不同端口的別一樣就行
                    protocol: TCP
             - containerPort: 8080
                    name: http2
                    protocol: TCP
                strategy:                                                            -發布策略
                  type: RollingUpdate                                                -滾動升級,下面是按什么比例滾動升級
                  rollingUpdate:
                    maxUnavailable: 25%
                    maxSurge: 25%
                livenessProbe:                                                       -存活檢測
                  failureThreshold: 3
                  initialDelaySeconds: 3
                  periodSeconds: 10
                  successThreshold: 1
                  timeoutSeconds: 10
                  httpGet:
                    path: /
                    scheme: HTTP
                    port: 80
                readinessProbe:                                                      -就緒檢測
                  failureThreshold: 3
                  initialDelaySeconds: 3
                  periodSeconds: 10
                  successThreshold: 1
                  timeoutSeconds: 10
                  httpGet:
                    path: /
                    scheme: HTTP
                    port: 80
                resources:                                                           -下面配置了資源限制,比如多少個cpu,多少內存等
      {{ toYaml .Values.appResources | indent 12 }}
      

      服務發現svc(service.yaml)模版

      服務配置,主要是跟應用暴露的端口進行綁定,一般應用也只會暴露80端口,提供新的端口給外部訪問,也可供路由Ingress訪問

      apiVersion: v1
      kind: Service
      metadata:
        name: {{ include "admin.appname" . }}-api-svc               -名稱
      spec:
        type: ClusterIP
        ports:
          - port: 80                                                -暴露的端口
            targetPort: http                                        -目標端口
            protocol: TCP
            name: http
          - port: 8080
            targetPort: 8080
          name: http2
        selector:
          app: {{ include "admin.appname" . }}-api-app             -綁定的無狀態應用
      

      路由ingress

      下面配置路由,主要跟上面配置的服務綁定,一般不讓服務直接暴露使用,這里多用了一層路由,主要是路由有負載灰度的作用,而且只提供一個IP(一般一個集群只有一個路由IP)

      {{- if eq .Values.isRelease false -}}                    -非灰度環境就配置路由
      apiVersion: extensions/v1beta1
      kind: Ingress
      metadata:
        name: {{ include "admin.appname" . }}-api-ingress                   -路由名稱
        annotations:
          nginx.ingress.kubernetes.io/service-weight: ''                    -權重之類的,這里筆者沒用到
          nginx.ingress.kubernetes.io/ssl-redirect: 'false'                 -是否強制http跳https,true的話就強制跳
          {{ if .Values.isProd -}}                                          -這里是灰度判斷,如果帶有環境環境的cookie就把請求轉發到灰度環境的服務上
          nginx.ingress.kubernetes.io/service-match: '{{ include "admin.release.appname" . }}-api-svc: cookie("admin_gray_tag", "release")'
          {{- end }}
      spec:
        tls:
          - hosts:
              - {{ .Values.apiHost }}                                       -域名綁定
            secretName: {{ .Values.hostTls }}                               -TLs配置
        rules:
          - host: {{ .Values.apiHost }}                                     -域名配置跳轉規則
            http:
              paths:
                - path: /
                  backend:
                    serviceName: {{ include "admin.appname" . }}-api-svc    -綁定的服務的名稱
                    servicePort: 80
                {{ if .Values.isProd -}}
                - path: /
                  backend:
                    serviceName: {{ include "admin.release.appname" . }}-api-svc    -綁定的灰度服務的名稱
                    servicePort: 80
                {{- end }}
      {{- end -}}
      

      CI/CD中調用Helm命令進行部署

      APPNAME=admin
      helm --kubeconfig k8s.conf upgrade -i \
              --set-file configDatas.XXX=XXXX.txt \
              --set apiAppResources.requests.cpu=1 \
              ${APPNAME} ./chart
      
      1. --kubeconfig:后面帶上k8s的配置,這里阿里云的集群里面可以找到,有內網跟外網兩個,隨便用哪個都行
      2. upgrade:表示升級,后面的 -i 表示沒有創建過的話就創建,有的話就更新
      3. --set-file:這里主要是為了配置配置項跟數據字典索用到的,以文件的形式配置
      4. --set:這個就比較重要了,我們在values.yaml里面的所有配置都可以用這個命令進行修改,用這個可以做到無環境化
      posted @ 2020-04-10 14:13  張占嶺  閱讀(1535)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中文字幕精品人妻av在线| 日本边吃奶边摸边做在线视频| 国产乱人伦AV在线麻豆A| 波多野结衣无内裤护士| 国产精品福利自产拍久久| 一区二区不卡国产精品| 国产v亚洲v天堂a无码| 丝袜无码一区二区三区| 国产精成人品日日拍夜夜| 亚洲最大中文字幕无码网站| 国产一级老熟女自拍视频| 国产精品亚洲二区在线看| 在线观看免费人成视频色9| 伊人激情一区二区三区av| 最新国产精品中文字幕| 啊┅┅快┅┅用力啊岳网站| 被黑人伦流澡到高潮HNP动漫| 国产精品高清一区二区三区| 自拍第一区视频在线观看| 亚洲国产一区二区三区亚瑟| 麻豆国产传媒精品视频| 美女又黄又免费的视频| 被喂春药蹂躏的欲仙欲死视频| 91中文字幕在线一区| 欧美亚洲另类自拍偷在线拍| 国产精品综合av一区二区| 四虎成人在线观看免费| 又粗又硬又黄a级毛片| 大尺度国产一区二区视频| 这里只有精品在线播放| 国产日韩av二区三区| 国产影片AV级毛片特别刺激 | 美女黄18以下禁止观看| 国产高清色高清在线观看| jizzjizz少妇亚洲水多| 国产日韩一区二区天美麻豆| 国产乱子伦精品免费无码专区| 人与禽交av在线播放| 亚洲国产韩国欧美在线| 国产老熟女国语免费视频| AV免费网址在线观看|