View a markdown version of this page

設定 Amazon MSK 叢集的自訂網域名稱 - Amazon Managed Streaming for Apache Kafka

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon MSK 叢集的自訂網域名稱

您可以設定 MSK 佈建叢集來公告自訂網域名稱,而不是預設 AWS產生的代理程式地址。自訂網域名稱會在 Amazon MSK 組態中定義一次,並自動套用至叢集中的每個代理程式,包括在擴展操作期間新增的新代理程式。這適用於 ZooKeeper 和 KRaft 中繼資料管理模式。

自訂網域名稱的運作方式

當您將 custom.advertised.listeners 屬性新增至 Amazon MSK 組態時,Amazon MSK 會執行下列動作:

  1. 驗證組態 (接聽程式名稱、格式和唯一性)。

  2. 解決每個代理程式的{broker_id}範本。

  3. 透過滾動重新啟動套用組態,一次一個代理程式。

屬性採用下列格式。

custom.advertised.listeners=LISTENER_NAME://hostname-pattern:port+{broker_id}

例如,在具有三個代理程式的 IAM 叢集上:

custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id}

這會解析為下列地址:

  • 中介裝置 1: b-1.example.com:9001

  • 中介裝置 2: b-2.example.com:9002

  • 中介裝置 3: b-3.example.com:9003

{broker_id} 範本變數是必要的,且必須出現在連接埠中,以便每個代理程式解析為唯一的地址。+ 運算子會將代理程式 ID 新增至基本連接埠 (9000 + 1 = 9001、9000 + 2 = 9002、9000 + 10 = 9010)。

如果您的叢集有多個面向用戶端的接聽程式,您可以透過以逗號分隔來為每個接聽程式指派不同的網域。

custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.iam.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.scram.example.com:19000+{broker_id}

每個接聽程式都會對應至一個自訂網域。您無法將多個網域指派給相同的接聽程式。不過,只要每個接聽程式解析為每個代理程式的唯一host:port組合,接聽程式就可以共用相同的網域名稱。例如,兩個接聽程式只能依連接埠共用b-{broker_id}.example.com和不同。

custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.example.com:19000+{broker_id}

此行為在 ZooKeeper 和 KRaft 中繼資料管理模式中是相同的。

套用組態之前,請先驗證聯網

當您套用 時custom.advertised.listeners,您的自訂網域名稱會取代覆寫接聽程式的預設地址。因此,您的聯網層必須就地並經過驗證,才能套用組態。如果聯網和信任層未就位、可解析、可連線且受用戶端信任,則用戶端無法重新連線。即使用戶端稍早已連線,也是如此。如果用戶端無法解析自訂網域,則會失去連線。

先決條件

在叢集上設定自訂網域名稱之前,請確定下列項目為 true:

  • 您的叢集是ACTIVE處於 狀態的 MSK 佈建叢集 (標準或快速代理程式)。

  • 每個接聽程式對應至叢集上的身分驗證類型。您只能為用戶端接聽程式設定自訂公告端點:CLIENTCLIENT_SECURECLIENT_SECURE_PUBLICCLIENT_SASL_SCRAMCLIENT_SASL_SCRAM_PUBLICCLIENT_IAMCLIENT_IAM_PUBLIC。不支援內部接聽程式 (REPLICATIONCONTROLLER),並在驗證時遭到拒絕。您指定的接聽程式也必須在您的叢集上繫結 (作用中)。例如,如果您的叢集僅使用 IAM 身分驗證,則會CLIENT_SECURE拒絕指定,錯誤訊息會列出叢集的有效用戶端接聽程式。

  • 您的聯網層已就位,並在套用組態之前經過驗證。套用後,重新整理中繼資料的所有用戶端都會收到自訂網域地址。如果用戶端無法解析自訂網域,則會失去連線。套用組態之前,請確定已設定好您的聯網層,且可從所有用戶端連線。如需 Network Load Balancer、Route 53 和 AWS Certificate Manager 設定的完整圖表逐步解說,請參閱 AWS 大數據部落格上的為 Amazon MSK 叢集設定自訂網域名稱