一、云服务器使用内网搭建的集群,但是外网使用kubeconfig(~/.kube/config文件)时出现ip不正确
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 192.168.0.x, not x.x.x.x
1、删除或备份当前k8s集群的apiserver的cert 和 key。
rm /etc/kubernetes/pki/apiserver.*
2、生成新的apiserver的cert和key
kubeadm init phase certs apiserver --apiserver-advertise-address ${原来的advertise ip} --apiserver-cert-extra-sans ${master的外网ip} --apiserver-cert-extra-sans ${master的外网2的ip}
#注意:--apiserver-advertise-address 的值,只需要填master的内网ip,不需要填k8s内部使用的 10.96.0.1,同时--apiserver-cert-extra-sans可以写多个
3、刷新admin.conf
cd /etc/kubernetes/pki
kubeadm certs renew admin.conf
4、重启apiserver,kubeadm部署的集群,apiserver 是以static pod形式部署的,将apiserver的yaml文件移出,再移回即可
cd /etc/kubernetes/manifests
mv kube-apiserver.yaml ../
#等待几秒钟,集群删除apiserver
mv ../kube-apiserver.yaml .
5、刷新.kube/config
cp /etc/kubernetes/admin.conf ~/.kube/
注意:这里生成的 admin.conf 文件,server填写的依然是master的内网IP,如果需要放在集群外的客户端上使用,将这个IP改为master的外网IP即可。
二、当ingress使用v1版本是,无法使用www.xxx.com重定向到xxx.com的方式
配置如上,但是会爆x509: certificate signed by unknown authority这个错误。
使用如下命令之后再部署即可
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission