公网环境搭建k8s集群

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地址

公网环境搭建k8s集群

此时会卡在

[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"。

修改前

公网环境搭建k8s集群

修改后

公网环境搭建k8s集群

此处"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节点就初始化好了

公网环境搭建k8s集群

剩下的步骤和局域网搭建集群步骤一样,传送门

上一篇:Python简单实现批量下载无版权图片


下一篇:工欲善其事,必先利其器——DevOps中如何管理工具包