国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級

這篇具有很好參考價值的文章主要介紹了k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

v1是1.14.0版本nginx ,實操時候升級到v2是1.20.0版本nginx,來測試灰度發(fā)布實現(xiàn)過程

一、方案:使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布

1、服務(wù)端:正常版本v1,灰度升級版本v2

2、客戶端:帶有請求頭version=v2標識的請求訪問版本v2,其他的請求訪問版本v1

3、待版本v2穩(wěn)定后,所有請求切換至版本v2,停止版本v1(刪除原deployment,service,ingress)

二、操作步驟

1、創(chuàng)建版本v1的deployment、service、ingress

nginx服務(wù)版本v1的deployment和service

nginx-v1.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-v1
spec:
  selector:
    matchLabels:
      app: nginx-v1
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx-v1
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.0
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: file
      volumes:
      - name: file
        hostPath:
          path: /data/nginx-v1
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-v1-svc  
  labels:
    app: nginx-v1   
spec:
  type: ClusterIP  
  selector:
    app: nginx-v1
  ports:
  - port: 80
    targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-v1
spec:
  ingressClassName: nginx
  rules:
  - host: test.nginx.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-v1-svc 
            port:
              number: 80

驗證:apifox 調(diào)用test.nginx.com,當前所有請求都正常訪問版本v1,即1.14版本nginx

k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級,kubernetes,容器,云原生

2、創(chuàng)建版本v2的deployment、service、ingress

nginx服務(wù)版本v2的deployment、service

nginx-v2.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-v2
spec:
  selector:
    matchLabels:
      app: nginx-v2
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx-v2
    spec:
      containers:
      - name: nginx
        image: nginx:1.20.0
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: file
      volumes:
      - name: file
        hostPath:
          path: /data/nginx-v2
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-v2-svc  
  labels:
    app: nginx-v2   
spec:
  type: ClusterIP  
  selector:
    app: nginx-v2
  ports:
  - port: 80
    targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-v2
  annotations:
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-by-header: "version"  #請求頭key=version
    nginx.ingress.kubernetes.io/canary-by-header-value: "v2"  #請求頭value=v2
spec:
  ingressClassName: nginx
  rules:
  - host: test.nginx.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-v2-svc 
            port:
              number: 80

nginx服務(wù)版本v2的ingress,匹配請求頭version=2訪問

驗證:postman調(diào)用test.nginx.com,加了請求頭version=v2的請求訪問版本v2,即1.20版nginx,其他請求訪問版本v1

k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級,kubernetes,容器,云原生

k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級,kubernetes,容器,云原生k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級,kubernetes,容器,云原生k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級,kubernetes,容器,云原生k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級,kubernetes,容器,云原生

三、方案:使用k8s 配置 RollingUpdate 滾動更新實現(xiàn)應(yīng)用的灰度發(fā)布

spec:
? replicas: 1 #運行容器的副本數(shù),修改這里可以快速修改分布式節(jié)點數(shù)量
? progressDeadlineSeconds: 600 #在Deployment 在進度卡住6分鐘后報告
? minReadySeconds: 120 #Pod被認為是可用狀態(tài)的最小秒數(shù),然后加入nacos 可用。默認是0
? strategy:
? ? rollingUpdate:
? ? ? maxSurge: 1 #升級過程中激增Pod的最大數(shù)量
? ? ? maxUnavailable: 0 #升級過程中不可用Pod的最大數(shù)量
? ? type: RollingUpdate
文章來源地址http://www.zghlxwxcb.cn/news/detail-819894.html

apiVersion: v1
kind: Service
metadata:
  name: $IMG_NAME
  namespace: rz-dt
  labels:
    app: $IMG_NAME
spec:
  type: NodePort
  ports:
    - port: 8091
      nodePort: 31082 #service對外開放端口
  selector:
    app: $IMG_NAME
---
apiVersion: apps/v1
kind: Deployment #對象類型
metadata:
  name: $IMG_NAME #名稱
  namespace: rz-dt
  labels:
    app: $IMG_NAME #標注
spec:
  replicas: 1 #運行容器的副本數(shù),修改這里可以快速修改分布式節(jié)點數(shù)量
  progressDeadlineSeconds: 600 #在Deployment 在進度卡住6分鐘后報告
  minReadySeconds: 120 #Pod被認為是可用狀態(tài)的最小秒數(shù),然后加入nacos 可用。默認是0
  strategy:
    rollingUpdate:
      maxSurge: 1 #升級過程中激增Pod的最大數(shù)量
      maxUnavailable: 0 #升級過程中不可用Pod的最大數(shù)量
    type: RollingUpdate
  selector:
    matchLabels:
      app: $IMG_NAME
  template:
    metadata:
      labels:
        app: $IMG_NAME
    spec:
      containers: #docker容器的配置
        - name: $IMG_NAME
          env:
            - name: aliyun_logs_catalina
              value: stdout
          image: rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/$IMG_NAME:$IMG_TAG # pull鏡像的地址 ip:prot/dir/images:tag
          imagePullPolicy: Always #pull鏡像時機,
          #command: ["java","-Dserver.port=8055","-jar","/usr/local/cenobitor/k8s-springboot-demo.jar"]
          ports:
            - containerPort: 8091 #容器對外開放端口,需與springboot配置文件一致
          volumeMounts:
            - name: time-config
              mountPath: /etc/localtime
              readOnly: true
            - name: volume-logs
              mountPath: /logs
              subPath: logs
          resources:
            limits:
              cpu: 500m
              memory: 1Gi
            requests:
              cpu: 10m
              memory: 50Mi
      #從私有倉庫拉取鏡像憑證
      imagePullSecrets:
        - name: rz-dt-miyue-vpc
      volumes:
        - name: time-config
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
        - name: volume-logs
          persistentVolumeClaim:
            claimName: rz-dt-nas-volume-claim

到了這里,關(guān)于k8s使用ingress實現(xiàn)應(yīng)用的灰度發(fā)布升級的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Kubernetes(k8s)當中安裝并使用ingress暴露應(yīng)用

    Kubernetes(k8s)當中安裝并使用ingress暴露應(yīng)用

    當我們使用不同類型的服務(wù)來暴露應(yīng)用的時候會遇到一下問題: LoadBalancer :當我們在使用LoadBalancer類型的Service暴露服務(wù)的時候,一般都需要占用一個公網(wǎng)或者是內(nèi)網(wǎng)IP地址。使用ingress我們就可以通過一個IP地址暴露多個服務(wù)。Ingress會根據(jù)客戶端輸入的不同的域名來確定我們

    2024年02月11日
    瀏覽(22)
  • 【kubernetes】關(guān)于k8s集群的資源發(fā)布方式(灰度/滾動發(fā)布)

    【kubernetes】關(guān)于k8s集群的資源發(fā)布方式(灰度/滾動發(fā)布)

    目錄 一、常見的發(fā)布方式 二、詳解kubectl陳述式方式做灰度發(fā)布(金絲雀發(fā)布) 步驟一:先基于deployment控制器創(chuàng)建pod,然后發(fā)布 步驟二:基于命令行灰度發(fā)布 步驟三:測試等到版本穩(wěn)定以后,再完成繼續(xù)發(fā)布 三、滾動發(fā)布詳解 藍綠發(fā)布:兩套環(huán)境交替升級,舊版本保留一定

    2024年04月23日
    瀏覽(27)
  • [Kubernetes]9. K8s ingress講解借助ingress配置http,https訪問k8s集群應(yīng)用

    [Kubernetes]9. K8s ingress講解借助ingress配置http,https訪問k8s集群應(yīng)用

    前面講解了使用Helm部署mysql集群,這里來看看使用Ingress搭建負載均衡功能 功能類似 Nginx ,可以根據(jù)域名、路徑把請求轉(zhuǎn)發(fā)到不同的 Service , Ingress 為外部訪問集群提供了一個 統(tǒng)一 入口, 避免 了 對外暴露集群端口 ,可以配置 https,http訪問集群應(yīng)用,接下來看看如何通過騰訊云來

    2024年01月22日
    瀏覽(34)
  • 用Kubernetes(k8s)的ingress部署https應(yīng)用

    用Kubernetes(k8s)的ingress部署https應(yīng)用

    我之前有一片文章寫的是用ingress暴露應(yīng)用,這篇文章接著上一片文章繼續(xù)講使用ingress暴露https的應(yīng)用。請先參考上一片文章將ingress先在Kubernetes集群當中安裝上: ingress暴露應(yīng)用文章地址:https://blog.csdn.net/m0_51510236/article/details/132536519 因為是暴露https,所以需要域名證書。分以

    2024年02月10日
    瀏覽(51)
  • k8s Ingress使用詳解

    k8s Ingress使用詳解

    在上一篇關(guān)于k8s之service的使用一篇中提到,Service對集群之外暴露服務(wù)的主要方式有兩種,NotePort和LoadBalancer,但這兩種方式,都有一定的缺點,具體來說: NodePort 會占用很多集群機器的端口,當集群服務(wù)變多的時候,過多的端口會給k8s的運維人員帶來諸多的不便; 而LB的缺

    2024年02月02日
    瀏覽(27)
  • 【K8s】Ingress的使用

    【K8s】Ingress的使用

    上一章中,NotePort和LoadBalancer類型的Service可給集群外部機器提供訪問,但這兩種類型都有缺點: NodePort方式會占用很多集群機器的端口,當集群服務(wù)變多的時候,這個缺點愈發(fā)明顯 LB方式的缺點是每個service需要一個LB,浪費、麻煩,并且需要k8s之外設(shè)備的支持 由此,Ingress資

    2024年04月10日
    瀏覽(21)
  • k8s實戰(zhàn)3-使用Helm在AKS上發(fā)布應(yīng)用

    k8s實戰(zhàn)3-使用Helm在AKS上發(fā)布應(yīng)用

    AKS(Azure Kubenetes Service)是微軟云azure上的K8s服務(wù)。 主要分為三步 1 連接到AKS 2 用kubectl發(fā)布應(yīng)用 3 用Helm發(fā)布應(yīng)用 1 登錄 az login 2 連接 dp-npr-dsm-aks(Dsm項目的AKS) az account set --subscription {{subID}} az aks get-credentials --resource-group {{resource-group-name}}?--name {{aks-name}} --admin 3 測試是否連接成

    2024年02月13日
    瀏覽(23)
  • K8S集群實現(xiàn)外部訪問(INGRESS)

    K8S集群實現(xiàn)外部訪問(INGRESS)

    環(huán)境: master node01 node02 192.168.1.40 192.168.1.41 192.168.1.42 作用:Ingress 是對集群中服務(wù)的外部訪問進行管理的 API 對象。 PS:創(chuàng)建nginx和httpd PS:namespace為ingress-nginx PS:它現(xiàn)在已經(jīng)有一個模板,用來描述Ingress資源能夠收集到的信息了 PS:有DNS的話可以設(shè)置解析,沒有的話必須在h

    2024年01月19日
    瀏覽(24)
  • K8S應(yīng)用筆記 —— 簽發(fā)自簽名證書用于Ingress的https配置

    K8S應(yīng)用筆記 —— 簽發(fā)自簽名證書用于Ingress的https配置

    在本地簽發(fā)自命名證書,用于 K8S 集群的 Ingress 的https配置。 前提條件: 完成 K8S 集群搭建。 完成證書制作機器的 openssl 服務(wù)安裝。 2.1.1 CA.sh腳本準備 注意事項: openssl 服務(wù)默認 CA.sh 地址為: /etc/pki/tls/misc/CA.sh ,為證書拷貝方便基于原 CA.sh 進行復(fù)制對其原部分路徑改寫(改

    2024年02月12日
    瀏覽(22)
  • k8s---ingress實現(xiàn)https代理訪問

    k8s---ingress實現(xiàn)https代理訪問

    創(chuàng)建證書 密鑰 secrets保存密鑰信息,部署pod時把secrets掛載到pod 也可以實現(xiàn)負載均衡。 traefik ingress controller traefik 是一個為了讓部署微服務(wù)更加快捷而誕生的一個http反向代理,負載均衡。 traefik設(shè)計時就能夠?qū)崟r的和k8s API交互,可以感知后端service和pod的變化,還可以自動更新

    2024年01月19日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包