公司建立网站的步骤,中山网站的优化,wordpress 文章置顶不显示,网上书城网站开发环境目的#xff1a;解决pod部署成功后#xff0c;只能在node节点访问#xff0c;而master节点无法访问
原因#xff1a;集群搭建时#xff0c;没有配置公网进行kubectl操作#xff0c;从而导致系统默认node节点#xff0c;使用内网IP加入k8s集群#xff01;如下#xff…目的解决pod部署成功后只能在node节点访问而master节点无法访问
原因集群搭建时没有配置公网进行kubectl操作从而导致系统默认node节点使用内网IP加入k8s集群如下 解决方案围绕公网IP进行搭建即可其实就是在传统的搭建步骤下给master节点和node节点添加下公网网卡就可以了 1、机器IP清单
我的两台服务器的都是云服务器我的master节点IP为111.230开头的我只有一个node节点IP为192.168.9.96该IP与calico网段冲突
2、重置master节点的kubeadm
kubeadm reset
3、在master节点上创建公网的虚拟网卡
看一下你的公网IP是否在机器中存在
ip a | grep 你的公网IP
如果没有就执行下面这段代码新增一个和公网IP一样的虚拟网卡IP
cat /etc/sysconfig/network-scripts/ifcfg-eth0:1 EOF
BOOTPROTOstatic
DEVICEeth0:1
IPADDR111.230.19.178 #这里是你的公网IP
PREFIX32
TYPEEthernet
USERCTLno
ONBOOTyes
EOF
重置网络
systemctl restart network
重置失败就直接去重启电脑就可以了
4、初始化master主节点
注意pod的网络范围为172.17.0.0/16因为我有一台机器是192.168开头的
kubeadm init \
--apiserver-advertise-address111.230.19.178 \
--control-plane-endpointcluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr10.96.0.0/16 \
--pod-network-cidr172.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/config Alternatively, 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-plane Then 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 5、修改calico.yaml中的网段 搜索192.168 取消注释并修改网段
与步骤3中的pod-network-cidr保持一致 6、kubectl应用calico 7、重置node节点
kubeadm reset
8、在node节点上创建公网的虚拟网卡
看一下你的公网IP是否在机器中存在
ip a | grep 你的公网IP
如果没有就执行下面这段代码新增一个和公网IP一样的虚拟网卡IP
cat /etc/sysconfig/network-scripts/ifcfg-eth0:1 EOF
BOOTPROTOstatic
DEVICEeth0:1
IPADDR139.159.228.xx #这里是你的公网IP
PREFIX32
TYPEEthernet
USERCTLno
ONBOOTyes
EOF
重置网络
systemctl restart network
重置失败就直接去重启电脑就可以了
9、去node节点重新加入到k8s集群
这里一点要把行前的空格去掉 kubeadm join cluster-endpoint:6443 --token wxt6jz.xf9g3va8xpggfoc9 \ --discovery-token-ca-cert-hash sha256:2326cb4e54fe2fd92d112e01d1caf3e58735665e480f3d5aa364d47e52088b7c 使用docker ps查看正在运行的容器
发现node节点的calico正常运行了 10、在主节点检查pod信息
在master节点执行
kubectl get pod -A -owide node节点上的pod已经全部变为外网IP了master节点也能正常访问node节点上的pod
11、验证
验证master节点是否能正常访问node节点
直接在步骤10中找一个node上的pod访问即可如上面如标框框的一个
kubectl logs calico-node-rs4hj -n kube-system