為何在新增自訂 DNS 解析器之後看到 DNS 失敗?

虛擬私有雲 4.15 後來

您在已有 4.15 群集的 VPC 中建立自訂 DNS 解析器後,發現 DNS 失敗。

針對 Satellite 儲存服務中的自訂 DNS 設定問題進行疑難排解。

在下列每一種情況下,請同步 kube-<clusterID> 安全群組並取代工作者節點,如下列步驟中所述。 請注意,在 VPC 中建立並啟用解析器後,此問題可能不會立即顯現。 DNS 包括一個快取,它可能會解析名稱查閱,直到取代或重新啟動工作者節點或 Pod 重新啟動為止。

  • 在叢集裡新增或取代工作者節點失敗,且 ibmcloud ks workers 顯示類似於下列內容的工作者節點狀態
    Infrastructure instance status is 'failed': Can't start instance because provisioning failed.
    
  • 執行 oc get oc 時,您會看到類似下列的錯誤。
    dial tcp: lookup s3.direct.eu-de.cloud-object-storage.appdomain.cloud on 172.21.0.10:53: server misbehaving.
    
  • 重新啟動工作節點後,該工作節點上的 Pod 會處於「Terminating」狀態,OpenShift 網頁控制台將無法開啟,或 Ingress 會處於「Critical」狀態。

如果您在建立 4.15 群集之前已在 VPC 中啟用自訂 DNS 解析器,則 Red Hat OpenShift on IBM Cloud 會自動新增規則,允許透過 DNS 解析器 IP 位址的流量到您的 IBM Cloud 受管安全群組 (kube-<clusterID>)。

不過,如果您在已包含 4.15 叢集的 VPC 上啟用自訂 DNS 解析器,則那些現有叢集會失去對 DNS 的存取權。

若要更正此問題,請透過同步 kube-<clusterID> 安全群組,容許存取現有叢集上的 DNS 解析器。 同步「kube-<clusterID>」安全群組會新增規則,允許流量透過 DNS 解析器 IP 位址傳輸

  1. 尋找 kube-<clusterID> 安全群組的安全群組 ID。

    ibmcloud is security-groups
    
  2. 同步安全群組。

    ibmcloud oc security-group sync --cluster <clusterID> --security-group <security-group-ID>
    
  3. 請更換叢集中的工作節點。

    ibmcloud oc worker replace --cluster <cluster_name_or_ID> --worker <worker_node_ID>
    
  4. 如果仍然發生此問題,請聯絡支援人員。 開啟 支援案例。 在案例詳細資料中,請務必包括任何相關日誌檔、錯誤訊息或指令輸出。

其他實務範例

由於 VPC 中自訂 DNS 解析器與相同 VPC 中 4.15 叢集的組合而導致的錯誤狀況。

如果在建立 DNS 解析器之後建立叢集

如果您在建立自訂 DNS 解析器之後建立 4.15 叢集,且工作者未進入 NormalActive 狀態,則在部署工作者節點的邏輯需要 DNS 自訂解析器的規則之前,不會將它們新增至 kube-<clusterID> 安全群組。

  1. 列出 kube-<clusterID> 安全群組的詳細資料,以驗證自訂 DNS 解析器 IP 已新增為安全群組中的目標。
    ibmcloud is sg kube-<clusterID>
    
  2. 請更換叢集中的工作節點。
    ibmcloud oc worker replace --cluster <cluster_name_or_ID> --worker <worker_node_ID>
    
  3. 如果仍然發生此問題,請聯絡支援人員。 開啟 支援案例。 在案例詳細資料中,請務必包括任何相關日誌檔、錯誤訊息或指令輸出。