一、云服务器使用内网搭建的集群,但是外网使用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的方式
image.png
配置如上,但是会爆x509: certificate signed by unknown authority这个错误。
使用如下命令之后再部署即可

kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission