翻新設定更新

本文說明在將網格從 ISTIOD 控制層改為 TRAFFIC_DIRECTOR 控制層前,您可能需要對代管 Cloud Service Mesh 進行的設定更新。

如要進一步瞭解現代化工作流程,請參閱「受控控制層現代化」頁面。

從 Istio 密鑰遷移至 multicluster_mode

叢集使用 TRAFFIC_DIRECTOR 控制平面時,系統不支援多叢集密碼。本文說明如何從使用 Istio 多叢集機密資料,改為使用 multicluster_mode 進行現代化。

Istio 密鑰與宣告式 API 總覽

開放原始碼 istio 多叢集端點探索功能會使用 istioctl 或其他工具,在叢集中建立 Kubernetes 密鑰。這組密鑰可讓叢集將流量負載平衡至網格中的另一個叢集。ISTIOD 控制層會讀取這個機密金鑰,並開始將流量轉送至其他叢集。

Cloud Service Mesh 提供宣告式 API,可用於控管多叢集流量,而非直接建立 Istio 機密。這個 API 會將 Istio 密鑰視為實作細節,比手動建立 Istio 密鑰更可靠。未來的 Cloud Service Mesh 功能將取決於宣告式 API,您將無法直接使用這些新功能搭配 Istio 機密資料。宣告式 API 是唯一支援的未來途徑。

如果您使用的是 Istio Secrets,請盡快改用宣告式 API。請注意,multicluster_mode 設定會將每個叢集的流量導向至網格中的所有其他叢集。使用密鑰可讓您更靈活地進行設定,讓您為每個叢集設定要將流量導向至哪個網格叢集。如需宣告式 API 和 Istio 機密資料支援功能的完整差異清單,請參閱「使用 Istio API 的支援功能」。

從 Istio 密鑰遷移至宣告式 API

如果您已使用車隊功能 API 搭配自動管理功能佈建 Cloud Service Mesh,則不需要按照這些操作說明操作。只有在您使用 asmcli --managed 完成新手上路程序時,才需要執行這些步驟。

請注意,這個程序會變更指向叢集的密鑰。在這個過程中,系統會移除端點,然後重新加入。在移除和新增端點的過程中,流量會暫時恢復至本機路由,而非將負載平衡至其他叢集。詳情請參閱 GitHub 問題

如要從使用 Istio 機密改為使用宣告式 API,請按照下列步驟操作。請同時或連續執行下列步驟:

  1. 如要啟用多叢集端點探索功能,請在車隊中啟用每個叢集的宣告式 API,方法是設定 multicluster_mode=connected。請注意,如果您不希望叢集可供他人發現,則必須明確設定 multicluster_mode=disconnected

    使用下列指令,為叢集啟用多叢集端點探索功能:

     kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"connected"}}'
    

    使用下列指令,讓叢集不參與端點探索:

     kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"disconnected"}}'
    
  2. 刪除舊密鑰。

    在叢集上設定 multicluster_mode=connected 後,每個叢集都會為其他已設定 multicluster_mode=connected 的叢集產生新的秘密。密鑰會放置在 istio-system 命名空間中,格式如下:

    istio-remote-secret-projects-PROJECT_NAME-locations-LOCATION-memberships-MEMBERSHIPS
    

    每個機密金鑰也會套用標籤 istio.io/owned-by: mesh.googleapis.com

    建立新密鑰後,您可以刪除任何使用 istioctl create-remote-secret 手動建立的密鑰:

    kubectl delete secret SECRET_NAME -n istio-system
    

遷移完成後,請檢查要求指標,確認指標已如預期進行路由。