目的:解决pod部署成功后,只能在node节点访问,而master节点无法访问
原因:集群搭建时,没有配置公网进行kubectl操作,从而导致系统默认node节点,使用内网IP加入k8s集群!如下:

解决方案:围绕公网IP进行搭建即可,其实就是在传统的搭建步骤下,给master节点和node节点添加下公网网卡就可以了
kubeadm reset
ip a | grep 你的公网IP
- cat > /etc/sysconfig/network-scripts/ifcfg-eth0:1 <<EOF
- BOOTPROTO=static
- DEVICE=eth0:1
- IPADDR=111.230.19.178 #这里是你的公网IP
- PREFIX=32
- TYPE=Ethernet
- USERCTL=no
- ONBOOT=yes
- EOF
systemctl restart network
重置失败就直接去重启电脑就可以了
4、初始化master主节点
- kubeadm init \
- --apiserver-advertise-address=111.230.19.178 \
- --control-plane-endpoint=cluster-endpoint \
- --image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
- --kubernetes-version v1.20.9 \
- --service-cidr=10.96.0.0/16 \
- --pod-network-cidr=172.17.0.0/16
初始化成功后的日志:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:kubeadm join cluster-endpoint:6443 --token wxt6jz.xf9g3va8xpggfoc9 \
--discovery-token-ca-cert-hash sha256:2326cb4e54fe2fd92d112e01d1caf3e58735665e480f3d5aa364d47e52088b7c \
--control-planeThen you can join any number of worker nodes by running the following on each as root:
kubeadm join cluster-endpoint:6443 --token wxt6jz.xf9g3va8xpggfoc9 \
--discovery-token-ca-cert-hash sha256:2326cb4e54fe2fd92d112e01d1caf3e58735665e480f3d5aa364d47e52088b7c

搜索:192.168

取消注释,并修改网段:


kubeadm reset
ip a | grep 你的公网IP
- cat > /etc/sysconfig/network-scripts/ifcfg-eth0:1 <<EOF
- BOOTPROTO=static
- DEVICE=eth0:1
- IPADDR=139.159.228.xx #这里是你的公网IP
- PREFIX=32
- TYPE=Ethernet
- USERCTL=no
- ONBOOT=yes
- EOF
systemctl restart network
重置失败就直接去重启电脑就可以了
kubeadm join cluster-endpoint:6443 --token wxt6jz.xf9g3va8xpggfoc9 \
--discovery-token-ca-cert-hash sha256:2326cb4e54fe2fd92d112e01d1caf3e58735665e480f3d5aa364d47e52088b7c

使用docker ps查看正在运行的容器:
发现node节点的calico正常运行了:

在master节点执行:
kubectl get pod -A -owide

验证master节点是否能正常访问node节点
直接在步骤10中,找一个node上的pod访问即可,如(上面如标框框的一个):
kubectl logs calico-node-rs4hj -n kube-system
