1. 本地怎么访问远程集群
在研发时,需要直接连接远端 Kubernetes 集群。通常的做法是,将 /etc/kubernetes/admin.conf
拷贝到本地 ~/.kube/kubeconfig
。
但是 kubeconfig 的 server 地址是 kubernetes.default.svc
。因此,我们需要配置一个 hosts:
|
|
如果需要在不同集群之间切换,不仅需要更换 kubeconfig,还需要修改 hosts。下面介绍一种方法,可以直接将远程访问地址,添加到集群的证书中,节省修改 hosts 的步骤,同时还能让人更容易区分不同集群。
2. 查看 Apiserver 证书包含哪些地址
- 进入证书目录
|
|
- 查看证书
|
|
这里如果只允许通过 1.1.1.1 访问集群的 Apiserver。如果需要使用域名,kubernetes、kubernetes.default、kubernetes.default.svc
等,则需要配置 hosts 将其指向 1.1.1.1 。
3. 添加新的域名或 IP 到证书
- 备份证书
|
|
- 修改 kubeadm-config.yaml
kubeadm-config.yaml 可能在 /etc/kubernetes/kubeadm-config.yaml
,也有可能在 /root/kubeadm-config.yaml
,具体位置与安装方式、安装工具有关。
在 ClusterConfiguration 的 apiServer 字段下,找到 certSANs。
|
|
在 certSANs 中添加远程访问的域名或 IP 地址:
|
|
- 重新生成证书
|
|
执行之后,立即生效。如果有多个 Master,那么需要依次更新全部证书。