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

使用k8s 配置 RollingUpdate 滾動(dòng)更新實(shí)現(xiàn)應(yīng)用的灰度發(fā)布

這篇具有很好參考價(jià)值的文章主要介紹了使用k8s 配置 RollingUpdate 滾動(dòng)更新實(shí)現(xiàn)應(yīng)用的灰度發(fā)布。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

方案實(shí)現(xiàn)方式:

RollingUpdate 滾動(dòng)更新機(jī)制

當(dāng)某個(gè)服務(wù)需要升級(jí)時(shí),傳統(tǒng)的做法是,先將要更新的服務(wù)下線,業(yè)務(wù)停止后再更新版本和配置,然后重新啟動(dòng)服務(wù)。

如果業(yè)務(wù)集群規(guī)模較大時(shí),這個(gè)工作就變成了一個(gè)挑戰(zhàn),而且全部停止了服務(wù),再逐步升級(jí)的方式會(huì)導(dǎo)致服務(wù)較長(zhǎng)時(shí)間不可用。

針對(duì)這個(gè)問題,k8s提供了滾動(dòng)更新(rolling-update)的方式來解決上述問題。

滾動(dòng)更新是針對(duì)pod來操作的,它通過一次只更新一小部分副本,成功后,再更新更多的副本,最終完成所有副本的更新。

滾動(dòng)更新的最大的好處是零停機(jī),整個(gè)更新過程始終有副本在運(yùn)行,從而保證了服務(wù)的連續(xù)性

spec:
  replicas: 5
  minReadySeconds: 120 #Pod被認(rèn)為是可用狀態(tài)的最小秒數(shù),應(yīng)用啟動(dòng)并注冊(cè)nacos延遲時(shí)間。默認(rèn)是0
  selector:
    matchLabels:
      run: httpservice
  strategy:
    rollingUpdate:
      #指定更新時(shí)最大擴(kuò)展的pod數(shù)
      maxSurge: 2
      #指定可接受的不可用pod數(shù)
      maxUnavailable: 1
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpservice-deployment
spec:
  replicas: 5
  minReadySeconds: 120 #Pod被認(rèn)為是可用狀態(tài)的最小秒數(shù),應(yīng)用啟動(dòng)并注冊(cè)nacos延遲時(shí)間。默認(rèn)是0
  selector:
    matchLabels:
      run: httpservice
  strategy:
    rollingUpdate:
      #指定更新時(shí)最大擴(kuò)展的pod數(shù)
      maxSurge: 2
      #指定可接受的不可用pod數(shù)
      maxUnavailable: 1
  template:
    metadata:
      labels:
        run: httpservice
    spec:
      containers:
        - name: http-service
          image: httpd:2.4.33
          ports:
            - containerPort: 80


?文章來源地址http://www.zghlxwxcb.cn/news/detail-821427.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對(duì)外開放端口
  selector:
    app: $IMG_NAME
---
apiVersion: apps/v1
kind: Deployment #對(duì)象類型
metadata:
  name: $IMG_NAME #名稱
  namespace: rz-dt
  labels:
    app: $IMG_NAME #標(biāo)注
spec:
  replicas: 1 #運(yùn)行容器的副本數(shù),修改這里可以快速修改分布式節(jié)點(diǎn)數(shù)量
  progressDeadlineSeconds: 600 #在Deployment 在進(jìn)度卡住6分鐘后報(bào)告
  minReadySeconds: 120 #Pod被認(rèn)為是可用狀態(tài)的最小秒數(shù)。默認(rèn)是0
  strategy:
    rollingUpdate:
      maxSurge: 1 #升級(jí)過程中激增Pod的最大數(shù)量
      maxUnavailable: 0 #升級(jí)過程中不可用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鏡像時(shí)機(jī),
          #command: ["java","-Dserver.port=8055","-jar","/usr/local/cenobitor/k8s-springboot-demo.jar"]
          ports:
            - containerPort: 8091 #容器對(duì)外開放端口,需與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 配置 RollingUpdate 滾動(dòng)更新實(shí)現(xiàn)應(yīng)用的灰度發(fā)布的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • k8s擴(kuò)縮容與滾動(dòng)更新

    k8s擴(kuò)縮容與滾動(dòng)更新

    使用kubectl run創(chuàng)建 應(yīng)用 端口暴露出去 使用kubectl? create 創(chuàng)建應(yīng)用 端口暴露出去 run 與 create 區(qū)別: run 為一次性的創(chuàng)建運(yùn)行,刪除后不會(huì)自動(dòng)生成,沒有 pod 控制器 create 創(chuàng)建的,刪除后還會(huì)自動(dòng)生成,有 pod 控制器,擁有副本集控制 scale 應(yīng)用 默認(rèn)情況下 應(yīng)用只會(huì)運(yùn)行一個(gè)副

    2024年02月12日
    瀏覽(46)
  • SpringBoot + K8S 中的滾動(dòng)發(fā)布、優(yōu)雅停機(jī)、彈性伸縮、應(yīng)用監(jiān)控、配置分離

    前言 配置 健康檢查 滾動(dòng)更新 彈性伸縮 Prometheus集成 配置分離 匯總配置 業(yè)務(wù)層面 運(yùn)維層面 K8s + SpringBoot實(shí)現(xiàn)零宕機(jī)發(fā)布:健康檢查+滾動(dòng)更新+優(yōu)雅停機(jī)+彈性伸縮+Prometheus監(jiān)控+配置分離(鏡像復(fù)用) 基于 Spring Boot + MyBatis Plus + Vue Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持

    2024年02月07日
    瀏覽(19)
  • k8s證書更新,kubeadm安裝的K8S證書過期后無法使用后證書更新方法

    k8s安裝一年后證書顯示過期。證書未自動(dòng)續(xù)期。 以下操作需到所有master節(jié)點(diǎn)操作 一般情況下,k8s創(chuàng)建的集群節(jié)點(diǎn)上的/usr/bin/文件夾下會(huì)存在kubeadm二進(jìn)制文件,如果發(fā)現(xiàn)master節(jié)點(diǎn)上沒有kubeadm,可以從官方下載對(duì)應(yīng)的版本并且安裝。

    2024年02月14日
    瀏覽(28)
  • 持續(xù)集成部署-k8s-配置與存儲(chǔ)-配置管理:ConfigMap 的熱更新

    在 Kubernetes 中, ConfigMap 是用于存儲(chǔ)非敏感配置數(shù)據(jù)的 API 對(duì)象,它可以被掛載到 Pod 中作為文件或環(huán)境變量。 ConfigMap 的熱更新指的是在不重啟 Pod 的情況下,動(dòng)態(tài)更新 Pod 中使用的配置數(shù)據(jù)。 首先創(chuàng)建一個(gè) configMap: 配置文件如下: private-image-pull-pod.yaml

    2024年02月05日
    瀏覽(24)
  • 企業(yè)級(jí)實(shí)戰(zhàn) Spring Boot + K8S 中的滾動(dòng)發(fā)布、優(yōu)雅停機(jī)、彈性伸縮、應(yīng)用監(jiān)控、配置分離

    下面為大家介紹我司生產(chǎn)環(huán)境使用了3年的基于K8S的dev ops 配置實(shí)現(xiàn) K8s + SpringCloud實(shí)現(xiàn)零宕機(jī)發(fā)版,優(yōu)雅重啟:健康檢查+滾動(dòng)更新+優(yōu)雅停機(jī)+彈性伸縮+Prometheus監(jiān)控+配置分離(鏡像復(fù)用) 業(yè)務(wù)層面 項(xiàng)目依賴 pom.xml 使用 spring-boot-starter-actuator 鏡像 存活、就緒檢查 使用 prometheus

    2024年02月06日
    瀏覽(22)
  • K8S Deployment 使用 & 更新 & 回滾 & 擴(kuò)容

    K8S Deployment 使用 & 更新 & 回滾 & 擴(kuò)容

    K8S Deployments 提供比 Replication Controller 、ReplicaSet 更高一級(jí)的抽象,也具備更豐富的功能。Deployment對(duì)象不僅創(chuàng)建pod,還確保集群中始終運(yùn)行正確數(shù)量的pod,處理可伸縮性,并持續(xù)處理pod的更新。所有這些活動(dòng)都可以通過部署YAML中的字段進(jìn)行配置。下面接下來就開始K8S Deploymen

    2024年02月04日
    瀏覽(23)
  • [K8S:命令執(zhí)行:權(quán)限異常:解決篇]:通過更新kubeconfig配置相關(guān)信息

    [K8S:命令執(zhí)行:權(quán)限異常:解決篇]:通過更新kubeconfig配置相關(guān)信息

    執(zhí)行K8S相關(guān)命令顯示關(guān)鍵信息 2.1.1:執(zhí)行命令: 這一步應(yīng)該在安裝K8S kubeadm init后面執(zhí)行,之前安裝忘記這一步。 [root@vboxnode3ccccccttttttchenyang ~]# mkdir -p $HOME/.kube [root@vboxnode3ccccccttttttchenyang ~]# [root@vboxnode3ccccccttttttchenyang ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config cp:是否覆

    2024年02月03日
    瀏覽(17)
  • 深入了解Kubernetes(k8s):安裝、使用和Java部署指南(持續(xù)更新中)

    深入了解Kubernetes(k8s):安裝、使用和Java部署指南(持續(xù)更新中)

    Docker和Kubernetes是兩個(gè)不同的概念和技術(shù),它們?cè)谌萜骰瘧?yīng)用和容器編排方面有著不同的功能和作用。 Docker: Docker是一個(gè)開源的容器化平臺(tái),用于構(gòu)建、打包和運(yùn)行應(yīng)用程序。通過使用Docker,你可以將應(yīng)用程序及其依賴項(xiàng)打包到一個(gè)獨(dú)立的輕量級(jí)容器中,使其可以在不同的環(huán)

    2024年02月10日
    瀏覽(25)
  • k8s基礎(chǔ):使用kubectl set image命令更新Deployment中容器的鏡像

    在Kubernetes中,使用 kubectl 更新Deployment中容器的鏡像,可以使用以下命令: 例如,如果你有一個(gè)名為 myapp 的 Deployment,其中包含一個(gè)名為 mycontainer 的容器,你想將鏡像從 myregistry/myimage:v1 更新到 myregistry/myimage:v2 ,可以執(zhí)行: 這條命令將會(huì)觸發(fā)一個(gè)滾動(dòng)更新,根據(jù)你的Deploy

    2024年04月26日
    瀏覽(24)
  • 【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn)

    【K8S】Kubernetes 中滾動(dòng)發(fā)布由淺入深實(shí)戰(zhàn)

    Kubernetes及其強(qiáng)大的特點(diǎn)之一就是超大規(guī)模集群應(yīng)用的自動(dòng)化部署,這其中包括了應(yīng)用的擴(kuò)容、縮容及其自適應(yīng)擴(kuò)縮容(HPA、VPA)。 在滾動(dòng)發(fā)布的過程中,Kubernetes會(huì)對(duì)要進(jìn)行升級(jí)的應(yīng)用所屬Pod進(jìn)行逐個(gè)的替換,直至將所有的Pod都替換為新版本的Pod。整個(gè)過程中新老版本的Pod都

    2024年01月24日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包