日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Kubernetes 藍綠發布

對于 Istio 用戶,云效提供了藍綠發布的能力支持。從而讓用戶可以更安全的基于 Istio 的流量管理策略實現應用的安全發布。

實現原理

  • 在 Kubernetes 中 Service 與多個版本的 Deployment 實例直接通過 LabelSelector 進行關聯。通過 VirtualService 可以進一步控制流量與特定版本Deployment實例之間的路由策略。

  • 藍綠發布開始,飛流會基于當前的 Deployment 實例(綠環境)創建一個新版本的應用 Deployment 實例(藍環境)。

  • 等待藍環境創建完成后通過更新 Istio 的 DestinationRule 資源對象,生成路由表信息

  • 根據用戶的發布設置,修改 VirtualService 確定藍/綠環境的流量權重。

  • 用戶也可以設置灰度標,確定哪些流量會直接進入到藍環境中。

  • 在人工驗證完成后,完成發布將所有流量切流到藍環境,并且將原有的綠環境實例移除。

前提

  • Service/VirtualService/DestinationRule 同名

  • Deployment 的 labels 內包含有 Service 的全部 selector labels,如:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: spring-boot-sample
  name: spring-boot-sample
spec:
  replicas: 2
  selector:
    matchLabels:
      run: spring-boot-sample
  template:
    metadata:
      labels:
        run: spring-boot-sample
    spec:
      containers:
      - image: ${IMAGE}
        name: app
---
apiVersion: v1
kind: Service
metadata:
  name: spring-boot-service
  labels:
    test: test
    labele2: label
spec:
  ports:
    - name: http
      port: 8080
      protocol: TCP
      targetPort: 8080
    - name: https
      port: 443
      protocol: TCP
      targetPort: 443
  selector:
    run: spring-boot-sample
  sessionAffinity: None
  type: ClusterIP

準備 Istio 應用

以阿里云容器服務 Kubernetes 版為例,在創建完成集群后通過部署 Istio 組件就可以在控制臺部署應用并綁定虛擬服務 (VirtualService) ,如下所示:

這里在控制臺創建了一個名為 sample-svc 的虛擬服務,并關聯了一個 v1 版本的應用實例。

在流水線中添加藍綠發布任務

創建流水線并完成鏡像構建配置后,用戶可以通過添加任務向導添加“ Kubernetes 藍綠發布”任務,如下所示:

在藍綠部署配置中,配置發布的集群以及發布的目標服務即可。 在發布前需要確保目標集群已經正確安裝 Istio 組件,且關聯的命名空間需要開啟 Istio 自動注入。如下所示:

通過設置灰度 Cookie 標,可以讓用戶通過 Cookie 來進入到新版環境從而可以進行新版環境的功能驗證?;叶劝姹境跏蓟髁繖嘀卦O置可以在新版發布完成后讓部分正式流量進入到新版環境。對于應用啟動時間較長的應用可以設置啟動等待時間,確保在新版應用部署完成并等待指定時間后,使新版本的流量規則生效。

觸發藍綠部署

通過運行流水線,用戶可以觸發藍綠部署流程。

在當前狀態下用戶可以通過 Cookie 標進去到新版環境中進行功能驗證。在驗證完成后通過點擊完成,一鍵切流到新版應用。 如果驗證不通過則通過回滾取消當前發布。

在發布過程中用戶也可以通過阿里云容器服務 Kubernetes 查看當前的流量策略。