簡體   English   中英

使用主節點的公共 IP 地址初始化和加入 Kubernetes 集群

[英]Kubernetes Cluster Initializing & Join Using Master Node's Public IP Address

我正在研究分布式系統,尤其是 Kubernetes 集群。

但是,我只是在尋找使用 master 的公共 IP 地址創建 Kubernetes 集群的解決方案。

我閱讀了很多關於堆棧溢出的文章並用谷歌搜索,但我找不到任何解決方案。

我想要做什么


  • 使用 Master 的公共 IP 制作 Kubernetes 集群

為什么我要嘗試使用 Master 的公共 IP 創建集群,因為我認為實際上可能存在以下情況: 某些節點存在於集群的網絡接口之外。

這意味着,一些工作節點可以與主節點存在於同一個專用網絡中,而一些工作節點則不存在。

我試過的


我嘗試了很多方法

  • --control-plane-endpoint初始化 kubernetes 集群時的選項, kubeadm init --token abcdef.1234567890abcdef --token-ttl 0 --pod-network-cidr=192.168.0.0/16 --control-plane-endpoint "MASTER_PUBLIC_IP:6443"

這個解決方案讓我加入了集群,但是在存在相同私有網絡的工作節點之后卡住了,kubectl 卡住了。

不僅存在問題,而且無法為存在於同一網絡之外的工作節點初始化 CNI pod。

  • --apiserver-cert-extra-sans初始化 kubernetes 集群時的選項, kubeadm init --token abcdef.1234567890abcdef --token-ttl 0 --pod-network-cidr=192.168.0.0/16 --apiserver-cert-extra-sans MASTER_PUBLIC_IP --apiserver-advertise-address MASTER_INTERNAL_IP

這個解決方案給了我一些錯誤如下:

$ sudo kubeadm join 211.x.x.x:6443 --token 000000.0000000000000000 --discovery-token-unsafe-skip-ca-verification
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Get "https://192.168.x.x:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

只是我想知道,我試圖用外部ip加入,但實際上kubernetes preflight說,尋找主節點的內部ip,apiserver-advertise-address。

也不適用於存在於內部網絡之外的工作節點。

  • 所以我嘗試只使用公共 IP, kubeadm init ... --apiserver-advertise-address MASTER_EXTERNAL_IP

這讓工作人員加入集群,但不能通過 CNI 建立內部工作節點和外部工作節點的任何連接。 因此來自外部 IP 范圍的工作節點的狀態Not Ready

  • 甚至我試圖建立虛擬專用網絡讓他們留在同一個內部網絡。

但是,當節點加入時,VPN 就會中斷。 我想,K8S 也構建了自己的 VPN,所以它們是沖突的。

所以,問題是


是否有任何解決方案可以使 Kubernetes 集群允許存在於 master 網絡范圍之外的工作人員(例如: master: 192.168.xxworkers: 172.16.xx )?

謝謝您的幫助。

NotReady 通過swapoff -a解決。

我在加入集群之前設置了它,但是,不知何故,它應該再次設置。

即使工人已經重新啟動,也應該再做一次。

我不知道為什么。

暫無
暫無

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

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