簡體   English   中英

無法使用 Kops 驗證 Kube.netes 集群

[英]Unable to validate Kubernetes cluster using Kops

我是 Kube.netes 的新手。 我正在使用 Kops 在 AWS 上部署我的 Kube.netes 應用程序。 我已經在 AWS 上注冊了我的域,還創建了一個托管區域並將其附加到我的默認 VPC。

通過 kops 創建我的 Kube.netes 集群成功。 但是,當我嘗試使用kops validate cluster驗證我的集群時,它失敗並出現以下錯誤:

無法解析 Kube.netes 集群 API URL dns:在 149.142.35.46:53 上查找 api.ucla.dt-api-k8s.com:沒有這樣的主機

我曾嘗試調試此錯誤但失敗了。 你能幫幫我嗎? 我現在很沮喪。

根據您的描述,您在 Route 53 中創建了一個私有托管區域。 驗證可能失敗,因為 Kops 嘗試從您的機器訪問集群 API,該機器位於 VPC 之外,但私有托管區域僅響應來自內部的請求專有網絡。 具體來說,主機名api.ucla.dt-api-k8s.com是 Kubernetes API 所在的位置,也是您可以從計算機向集群通信並向集群發出命令的方式。 私有托管區域不允許您從外部世界(您的計算機)訪問此 API。

解決此問題的一種方法是將您的托管區域設為公開。 Kops 會自動為您創建一個 VPC(除非另外配置),但您仍然可以從您的計算機訪問 API。

這就是我必須運行的:

kops export kubecfg (cluster name) --admin

這將導入訪問 kops 集群所需的“新” kubeconfig

昨晚我使用以前工作過的基於 kops 的集群創建腳本遇到了這個問題。 我想也許切換區域會有所幫助,但事實並非如此。 今天早上它又開始工作了。 這在 AWS 方面感覺像是間歇性的。

所以我建議的答案是:發生這種情況時,您可能需要給它幾個小時來自行解決 就我而言,我在等待了一夜之后從頭開始重建了集群。 我不知道是否有必要從頭開始——我希望沒有。

我在使用 ubuntu 盒子時遇到了這個問題。 我所做的是將路由 53 中托管區域中的 dns 記錄添加到 /etc/hosts.conf 中。

以下是我解決此問題的方法:看起來 kops 庫存在錯誤,盡管它顯示 **驗證失敗:驗證期間出現意外錯誤:無法解析 Kubernetes 集群 API URL dns:查找 api ** 當您嘗試kops 驗證集群發布時等待 10-15 分鍾。 在幕后,kubernetes 集群啟動了! 您可以通過對 kunernetes 集群的主節點執行 ssh 來驗證相同,如下所示

  1. 轉到您可以運行 ec2 實例和您的 k8 實例的頁面
  2. 復制主 k8 節點的“公共 IPv4 地址”
  3. 在命令提示符下登錄到 ec2 實例登錄到主節點,如下所示 ssh ubuntu@<<您的主 k8 節點的“公共 IPv4 地址”>>
  4. 驗證您是否可以使用以下命令看到 k8 集群的所有節點,它應該顯示您的主節點和工作節點在那里列出kubectl get nodes --all-namespaces

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM