本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
端對端設定自訂網域名稱
本主題會逐步解說自訂網域名稱的叢集端組態。網路層 (Network Load Balancer、DNS 和 TLS 憑證) 是您擁有的先決條件,詳細資訊請參閱 AWS 大數據部落格上的設定 Amazon MSK 叢集的自訂網域名稱
套用組態之前,請先驗證聯網
當您套用 時custom.advertised.listeners,您的自訂網域名稱會取代覆寫接聽程式的預設地址。您的聯網層必須就地並經過驗證,才能套用組態。如果用戶端無法解析自訂網域,則會失去連線。
步驟 1:將自訂網域新增至您的 Amazon MSK 組態
建立或更新包含 custom.advertised.listeners 屬性的 Amazon MSK 組態,以符合您在 Network Load Balancer 上佈建的主機名稱和連接埠。對於連接埠為 9001–9003 的 Network Load Balancer 前方的三個代理程式 IAM 叢集,請將 屬性放入檔案中。
custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id}
然後建立組態,將檔案做為伺服器屬性傳遞。
aws kafka create-configuration \ --name "custom-domain-iam" \ --description "Custom advertised listeners for CLIENT_IAM" \ --server-properties fileb://custom-domain-config.txt
使用 fileb://(而非 file://),讓 將檔案 AWS CLI 讀取為位元組,並對檔案進行 base64 編碼。由於{broker_id}大括號,內嵌傳遞值是脆弱的。將{broker_id}常值保留在 檔案中,因為 Amazon MSK 會在套用時解析每個代理程式。回應會傳回LatestRevision.Revision您在下一個步驟中使用的組態 Arn和 。
步驟 2:套用組態
使用 主控台UpdateClusterConfiguration、 AWS CLI AWS CloudFormation、 AWS CDK 或 Terraform,將組態套用至您的叢集。這是您已用於代理程式組態變更的相同工作流程。
aws kafka update-cluster-configuration \ --cluster-arnyour-cluster-arn\ --configuration-info arn=configuration-arn,revision=revision\ --current-versioncurrent-cluster-version
使用 DescribeCluster操作來尋找叢集的目前版本。叢集版本不是簡單的整數。
Amazon MSK 會在套用任何內容之前同步驗證組態,因此格式不正確的值永遠不會到達您的代理程式。Amazon MSK 拒絕 HTTP 400 錯誤的無效組態。如需錯誤範例,請參閱 自訂網域名稱組態錯誤。修正回報的問題並重新套用。
步驟 3:追蹤推展
aws kafka describe-cluster-operation-v2 \ --cluster-operation-arnoperation-arn
接受組態後,Amazon MSK 會透過滾動重新啟動來套用組態。等待操作報告 UPDATE_COMPLETE。如果報告 UPDATE_FAILED,代理程式就無法套用變更。推展停止在該代理程式,其餘代理程式會保留其先前的組態,而且您可以修正組態並重新套用以復原。
步驟 4:驗證
透過列出使用接聽程式身分驗證設定的用戶端主題,確認用戶端可以透過自訂網域連線。
如果您可以透過自訂網域端點列出主題,用戶端會透過您的自訂網域成功連線。如果 操作已回報UPDATE_COMPLETE但用戶端無法連線,則叢集端組態是正確的,但您的聯網層可能需要注意。請檢查以下內容:
-
網路路徑:確認用戶端正在使用的代理程式和連接埠存在 Network Load Balancer 接聽程式、目標群組和安全群組規則,以及可以從用戶端網路存取 Network Load Balancer。
-
DNS 解析:確認自訂網域從 Apache Kafka 用戶端執行的每個網路解析至 Network Load Balancer。
-
憑證:確認 Network Load Balancer 的 TLS 憑證涵蓋已解析的代理程式主機名稱 (透過通用名稱或主體替代名稱),以及用戶端信任 CA (私有 CA 的根和中繼)。
擴展和代理程式替換
當您擴展叢集或在自動修復期間取代代理程式時,Amazon MSK 會自動將組態套用至新的代理程式。Amazon MSK {broker_id}會解析代理程式的 ID,叢集端不需要手動步驟。
注意
新增任何新代理程式對應的 Network Load Balancer 接聽程式、目標群組和 DNS 記錄。網路層不會自動擴展。
移除自訂網域
若要還原至預設 Amazon MSK 產生的地址,請從 Amazon MSK 組態中移除 custom.advertised.listeners 屬性,並使用 套用更新後的組態UpdateClusterConfiguration。Amazon MSK 會執行滾動重新啟動,代理程式會還原為公告其原始地址。在移除自訂網域組態之前,請確定您的用戶端可以到達原始 Amazon MSK 產生的地址。