1. 前言
在上一篇博客中,我有細講如何在局域網環境中搭建k8s單集群,如果說你現在手上有兩台虛擬機,這兩台虛擬機都有自己的公網ip.虛擬機A是阿里雲的虛擬機,另外一台虛擬機B是騰訊雲的虛擬機,你想把虛擬機A作為k8s的master節點,虛擬機B作為負載節點,按照上一篇博客中的做法會出現一些問題。
2. 使用kubeadm搭建集群
還是使用kubeadm作為集群搭建的工具
kubeadm init --pod-network-cidr 172.16.0.0/16 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --apiserver-advertise-address xxx.xx.xxx.xx # xxx.xx.xxx.xx為master機器的公網ip地址
此時會卡在
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.
出現這個問題是因為etcd配置的問題,所以etcd無法啟動。所以這個時候我們需要修改etcd.yaml。
文件路徑"/etc/kubernetes/manifests/etcd.yaml"。
修改前
修改后
此處"xxx"為公網ip,要關注的是"--listen-client-urls"和"--listen-peer-urls"。需要把--listen-client-urls 和 --listen-peer-urls 都改成127.0.0.1:2379和127.0.0.1:2380
稍等片刻之后,master節點就初始化好了
剩下的步驟和局域網搭建集群步驟一樣,傳送門。