Kubernetes 证书中添加负载均衡的IP
背景介绍私有云环境中用3台虚拟机搭建了K8S的3个master节点,使用的工具是kubeasz,当时搭建的时候没有选择负载均衡,当时想的是通过私有云提供的SLB来做3个master的负载+高可用。基本信息如下角色IP提供服务K8S Master 110.215.0.71ETCD, API Server,Controller等K8S Master ...
背景介绍
私有云环境中用3台虚拟机搭建了K8S的3个master节点,使用的工具是kubeasz,当时搭建的时候没有选择负载均衡,当时想的是通过私有云提供的SLB来做3个master的负载+高可用。基本信息如下
角色 | IP | 提供服务 |
K8S Master 1 | 10.215.0.71 | ETCD, API Server,Controller等 |
K8S Master 2 | 10.215.0.72 | ETCD, API Server,Controller等 |
K8S Master 3 | 10.215.0.16 | ETCD, API Server,Controller等 |
SLB | 10.128.142.199 | 负载均衡 |
现象:
登录master 1 将 kube config(/root/.kube/config) 文件中的server地址修改为SLB的地址,然后运行kubectl get po ,结果报错:
错误信息:
Unable to connect to the server: x509: certificate is valid for 10.215.0.71,127.0.0.1,10.0.0.1 ,not for 10.128.142.199
后来查看了网上资料和kubeasz的文档,解决方法是需要把SLB的地址加入到K8S API Server使用的证书中去,方法如下:
root 登录 master服务器,然后运行以下命令(三个master都要进行这样的操作)
#cd /etc/kubernetes/
#cp -rp ssl ssl_bak
#cd ssl && vi kubernetes-csr.json
#把SLB的地址加入到hosts中
[root@ai-test-k8s04 ssl]# vi kubernetes-csr.json
{
"CN": "kubernetes",
"hosts": [
"10.128.142.199",
"127.0.0.1",
#cfssl gencert -ca=./ca.pem -ca-key=./ca-key.pem -config=./ca-config.json -profile=kubernetes kubernetes-csr.json|cfssljson -bare kubernetes
运行完成以后,会生成新的证书
[root@ai-test-k8s04 ssl]# ls -ltr
total 68
-rw-r--r-- 1 root root 1391 Nov 5 11:30 admin.pem
-rw-r--r-- 1 root root 1679 Nov 5 11:30 admin-key.pem
-rw-r--r-- 1 root root 1350 Nov 5 11:30 ca.pem
-rw-r--r-- 1 root root 1675 Nov 5 11:30 ca-key.pem
-rw-r--r-- 1 root root 294 Nov 5 11:30 ca-config.json
-rw-r--r-- 1 root root 219 Nov 5 11:36 aggregator-proxy-csr.json
-rw-r--r-- 1 root root 1383 Nov 5 11:37 aggregator-proxy.pem
-rw------- 1 root root 1675 Nov 5 11:37 aggregator-proxy-key.pem
-rw-r--r-- 1 root root 997 Nov 5 11:37 aggregator-proxy.csr
-rw-r--r-- 1 root root 279 Nov 5 11:37 kubelet-csr.json
-rw-r--r-- 1 root root 1448 Nov 5 11:37 kubelet.pem
-rw------- 1 root root 1675 Nov 5 11:37 kubelet-key.pem
-rw-r--r-- 1 root root 1078 Nov 5 11:37 kubelet.csr
-rw-r--r-- 1 root root 488 Dec 24 20:07 kubernetes-csr.json
-rw-r--r-- 1 root root 1639 Dec 24 20:08 kubernetes.pem
-rw------- 1 root root 1675 Dec 24 20:08 kubernetes-key.pem
-rw-r--r-- 1 root root 1273 Dec 24 20:08 kubernetes.csr
重启K8S 的API 服务
#systemctl restart kube-apiserver
验证SLB地址作为kube config的地址入口,
[root@ai-test-k8s01 .kube]# grep server config
server: https://10.128.142.199:6443
[root@ai-test-k8s01 .kube]# kubectl get po
NAME READY STATUS RESTARTS AGE
cas-client-85dbd65d7f-5pm7f 1/1 Running 1 47h
distributor-865ddd4b95-464zq 1/1 Running 1 15d
更多推荐
所有评论(0)