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

升級應用市場ack-ingress-nginx

應用市場中的ack-ingress-nginx和ack-ingress-nginx-v1提供了nginx ingress controller應用。本文介紹如何手動升級ack-ingress-nginx為ack-ingress-nginx-v1。

前提條件

  • 已有Kubernetes集群,且集群版本為1.20及以上。

說明

Chart版本4.0.17(對應組件版本v1.8.0-aliyun.1)及以上的ack-ingress-nginx-v1僅支持1.22及以上版本集群。若您的集群版本為1.20,需要選擇4.0.16版本(對應組件版本v1.2.1-aliyun.1)進行部署。

  • 集群中存在從應用市場安裝的ack-ingress-nginx應用。

背景信息

由于ACK Kubernetes 1.24版本棄用了v1beta1版本的Ingress資源,導致ACK Kubernetes 1.24版本中的舊版本Ingress Controller無法正常使用。

如果ack-ingress-nginx安裝的Nginx Ingress Controller應用為0.44.0版本,該應用使用了v1beta1版本的Ingress資源,那么ACK Kubernetes升級到1.24版本后,會導致Nginx Ingress Controller應用不可用的情況。

出于對模板參數兼容性的考量,新版本Nginx Ingress Controller(版本≥1.1.0)使用ack-ingress-nginx-v1應用。您需要手動將ack-ingress-nginx替換為ack-ingress-nginx-v1,以完成應用版本的升級。

說明

該文檔不適用于組件管理中提供的Nginx Ingress Controller組件。如需要升級Nginx Ingress Controller組件,請參見升級Nginx Ingress Controller組件

步驟一:創建ack-ingress-nginx-v1應用

通過應用市場創建ack-ingress-nginx-v1應用

對于每一套ack-ingress-nginx應用,您都需要為其部署對應的ack-ingress-nginx-v1。具體步驟以及參數配置,請參見部署多個Ingress Controller

說明

請勿將即將部署的ack-ingress-nginx-v1中controller.ingressClassResource.name與舊的ack-ingress-nginx中的controller.ingressClass設置成相同的值。Ingress Class的沖突可能會造成Ingress Controller的穩定性問題。

(可選)對SLB規格和參數進行調整

如果您之前對ack-ingress-nginx中的SLB規格或參數進行過調整,則可能需要同時對新部署的應用中的SLB參數也進行相同調整。通過參數中的Annotations controller.service(公網)或Annotation controller.service.internal(私網)對Service進行配置,創建對應的ack-ingress-nginx-v1。通過Annotations對Service進行配置的詳細信息,請參見通過Annotation配置傳統型負載均衡CLB

步驟二:創建Ingress路由規則并驗證

創建完新的ack-ingress-nginx-v1應用后,為了不影響現有的流量和應用穩定性,您需要將原有的Ingress路由規則復制一份,修改Ingress Class后,應用到集群中。例如,原有Ingress路由規則如下。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx-intranet # 原Ingress Class為nginx-intranet。
spec:
  rules:
  - host: test-ingress.com
    http:
      paths:
      - path: /foo
        backend:
          service:
            name: web1-service
            port:
              number: 8080
        pathType: ImplementationSpecific
      - path: /bar
        backend:
          service:
            name: web1-service
            port:
              number: 8080
        pathType: ImplementationSpecific

創建新的Ingress路由規則。

  • 使用Annotation時,請更改Annotation中的Ingress Class名稱,其他配置保持不變。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: test-ingress-v1 # 需要創建新的Ingress資源
      namespace: default
      annotations:
        kubernetes.io/ingress.class: nginx-intranet-v1 # 更改為ack-ingress-nginx-v1使用的Ingress Class名稱,示例為nginx-intranet-v1。
    spec:
      rules:
      - host: test-ingress.com
        http:
          paths:
          - path: /foo
            backend:
              service:
                name: web1-service
                port:
                  number: 8080
            pathType: ImplementationSpecific
          - path: /bar
            backend:
              service:
                name: web1-service
                port:
                  number: 8080
            pathType: ImplementationSpecific
  • 不使用Annotation,而是spec.ingressClassName指定Ingress Class時,請參考上述操作創建新的Ingress路由規則,且更改spec.ingressClassName中的Ingress Class名稱。

在創建完新的Ingress路由規則后,您可以通過設置hosts,將域名解析到新的CLB IP上的方式,來驗證功能是否正常。

步驟三:遷移流量

在Ingress路由規則新建完成并確認業務功能正常后,您可以通過更改DNS解析的方式來將流量遷移至新的ack-ingress-nginx-v1應用中。

登錄云解析DNS控制臺或者您的域名所在的解析控制臺,將業務所在域名解析至新的IP上。解析需要一定時間才能生效,在此期間,請您密切關注業務狀態,以便在發現問題時及時修復或回滾。您可以通過容器內日志或Metrics來監控流量遷移情況。

后續步驟

在流量全部遷移完成并確認業務正常后,即可刪除原來的ack-ingress-nginx應用。您可以登錄容器服務管理控制臺,選擇對應的集群,在左側導航欄中選擇應用 > Helm,找到對應的發布并單擊右側的刪除