AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何對無法加入 Amazon EKS Anywhere 叢集的節點進行疑難排解?
我的 Amazon Elastic Kubernetes Service (Amazon EKS) 節點無法加入 Amazon EKS Anywhere 叢集。
簡短說明
在開始疑難排解之前,請確認您的組態符合以下要求:
- 您有一台管理機器來執行叢集生命週期操作。
- 您的管理機器、控制平面和工作節點位於相同的第二層網路。
- 您的網路支援 DHCP。
**注意:**最佳實務是將網路設定為排除控制平面和工作節點的特定 IP 位址。 - 您已為控制平面端點及其他叢集節點保留靜態 IP 位址,並將靜態 IP 位址排除在 DHCP 範圍之外。
- 您的伺服器每個節點至少有兩個 vCPU、8 GB RAM 和 25 GB 儲存空間。
- 您的彈性網路介面支援 Preboot eXecution Environment (PXE)。
- 您擁有 VMware vSphere 7 或 8 及 VMware vCenter Server。
- 您有能力部署 6 至10 台虛擬機器 (VM)。此外,您在工作叢集的主要 VM 網路中執行 DHCP 服務。
- 您的 vSphere 網路允許存取 vCenter Server,並且您已保留並排除 DHCP 所需的 IP 位址。
解決方法
節點註冊錯誤
如果您未將 AWS IAM Authenticator for Kubernetes 組態對應 (aws-auth ConfigMap) 套用到叢集,那麼您會收到以下錯誤訊息:
「Unable to register node with API server err=Unauthorized.」
**注意:**該組態對應提供 system:bootstrappers 和 system:nodes 角色型存取控制 (RBAC) 權限,以便將節點註冊至叢集。
要解決節點註冊錯誤,請將您的 AWS Identity and Access Management (IAM) 角色新增至 aws-auth ConfigMap。
未授權錯誤
當您刪除受管節點群組,且節點角色項目隨後從 aws-auth ConfigMap 刪除時,會收到「unauthorized」錯誤訊息。您可以在檢視 kubelet 日誌中對 API 伺服器的 kubelet API 請求時,辨識此錯誤。
若要解決未授權錯誤,請再次將您的 IAM 角色新增 至 aws-auth ConfigMap。
Kubelet 相依性錯誤
CA 檔案錯誤
當節點無法從叢集擷取憑證認證機構 (CA) 檔案,或執行 /etc/eks/bootstrap.sh 指令碼時,會收到以下錯誤訊息:
「Failed to construct kubelet dependencies" err="unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory.」
若要解決 Kubelet 相依性錯誤,請完成以下步驟:
-
檢查您 cloud-init 日誌中 /var/log/cloud-init-output.log 流程,確認是否有以下錯誤訊息:
「Connect timeout on endpoint URL: https://eks.us-east-1.amazonaws.com/clusters/vg-xx-uat Exited with error on line 291」 -
執行以下 curl -vk 命令,確認您能否連線至 Amazon EKS API 端點:
curl -vk https://eks.us-east-1.amazonaws.com/ -
刪除 Amazon EKS 端點。
如果無法連線到端點,請採取以下措施:
- 對於私有端點,將節點放在相同的虛擬私有雲端 (VPC) 或已連線的網路中。私有端點無法公開存取。
- 對於公有端點,請設定您的安全群組、路由表及網路存取控制清單 (網路 ACL)。安全群組、路由表和網路 ACL 必須全部允許對 Amazon EKS 端點的傳出 HTTPS (TCP 443) 流量。如需更多資訊,請參閱 VPC 和子網路注意事項。
- 對於位於私有子網路的節點,請確保您有 NAT 閘道或 VPC 端點,以提供傳出網際網路存取。
- 在您的 VPC 中,將 enableDnsHostnames 和 enableDnsSupport 設定為 true。
- 確保 DHCP 選項集包含 AmazonProvidedDNS。
驗證錯誤
當 Kubernetes 無法在工作負載叢集中找到控制平面資源「kubeadmcontrolplanes.controlplane.cluster.x-k8s.io」時,您會收到以下驗證錯誤訊息:
「Validation failed: kubeadmcontrolplanes.controlplane.cluster.x-k8s.io 'eksa-sit' not found; no CAPI cluster objects present on workload cluster 'eksa-sit'...」
若要解決驗證錯誤,請完成以下步驟:
-
存取正在執行 kubeadm 程序的控制平面節點。
-
執行以下 journalctl 命令,以取得 kubelet 服務日誌中的疑難排解資訊:
journalctl -u kubelet -f -
在日誌輸出中,識別造成驗證錯誤的叢集元件。
啟動程序權杖錯誤
由於 Amazon EKS Anywhere 叢集版本 1.0.2 的錯誤,您可能會遇到啟動程序權杖錯誤。如需更多資訊,請參閱 GitHub 網站上的 如果啟動程序叢集時間落後工作叢集過多,啟動程序權杖可能在使用前過期。
若要解決此錯誤,請參閱 GitHub 網站上的修正以啟用啟動程序密碼輪換 (若密碼本身缺失)。
缺少啟動程序權杖密碼錯誤
當您執行 eksctl anywhere upgrade cluster -f cluster.yaml 命令時,可能會收到錯誤訊息。會發生此錯誤是因為,工作流程中的錯誤導致啟動程序權杖密碼遺失。該錯誤阻擋了新節點加入您的叢集。
若要解決此錯誤,請完成以下步驟:
- 手動刪除新佈建的機器,以重新整理啟動程序權杖。
- 當叢集處於運作良好狀態時,請備份 Kubernetes Cluster API (CAPI) 並將 CAPI 元件移至管理叢集。如需操作說明,請參閱叢集升級失敗,啟動程序叢集上的管理元件發生問題。
內部錯誤
當 webhook 驗證服務發生連線問題時,您會收到以下內部錯誤訊息:
「Error from server (InternalError): Internal error occurred: failed calling webhook...」
若要解決內部錯誤,請完成以下步驟:
-
執行以下 kubectl 取得 Pod 命令,以尋找您的 eks-controller-manager Pod:
kubectl get pods -n kube-system | grep eks-controller-manager -
執行以下 kubectl 日誌命令,以查看該 Pod 的日誌:
kubectl logs eksa-controller-manager-pod-name -n kube-system**注意:**將 eksa-controller-manager-pod-name 替換為您的 eksa-controller-manager Pod 名稱。
-
使用日誌輸出結果中的資訊進行疑難排解。
當 Kubernetes 控制平面的主導者選舉程序逾時時,您會收到以下內部錯誤訊息:
「Failed to update lock: etcdserver: request timed out failed to renew lease eksa-system/f64ae69e.eks.amazonaws.com: timed out waiting for the condition Error setup problem running manager {'error': 'leader election lost'}...」
當主導者選舉程序無法在 etcd 中續租其資源鎖時,您也可能會收到此錯誤訊息。
此錯誤的根本原因包括網路延遲、etcd 無法使用或資源爭用問題。
若要解決此內部錯誤,請刪除 eksa-controller-manager Pod。新的替代 Pod 會啟動並進入執行中狀態。
**注意:**內部錯誤可能發生在 Amazon EKS Anywhere 叢集版本 1.21 或更舊版本。若要避免此錯誤,最佳實務是將叢集更新至最新的 Kubernetes 版本。
PLEG 錯誤
當 Pod Lifecycle Event Generator (PLEG) 發生問題時,您會收到以下錯誤訊息:
「PLEG is not healthy: pleg was last seen active.」
若要解決 PLEG 錯誤,請採取以下措施:
- 檢查並解決容器執行時期延遲或逾時問題,例如在遠端請求期間發生的效能下降、鎖死或錯誤。
- 避免主機資源上有過多執行中的 Pod,或高規格主機上執行過多 Pod。
- 對節點中的資源問題進行疑難排解。
如需更多關於 PLEG 的資訊,請參閱 Red Hat Developer 網站上的 Pod Lifecycle Event Generator: 了解 Kubernetes 中「PLEG 運作狀態不良」的問題。
NotReady,SchedulingDisabled 錯誤
當 Amazon EKS Anywhere 叢集中的某個節點處於 NotReady,SchedulingDisabled 狀態時,您會收到錯誤。這是因為執行該 vSphere VM 的實體機器已不存在。您的叢集會卡在擴展階段,且新節點無法啟動。
若要解決 NotReady,SchedulingDisabled 狀態錯誤,請完成以下步驟:
- 移除機器的完成項。
- 執行以下 kubectl delete node 命令以刪除待處理的 Amazon EKS 節點,並讓新節點啟動:
**注意:**將 your_node_name 替換為您想刪除的節點名稱。kubectl delete node your_node_name
相關資訊
- 語言
- 中文 (繁體)

相關內容
AWS 官方已更新 3 個月前