nginx tcp 代理 kube api 接口请求报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx tcp 代理 kube api 接口请求报错相关的知识,希望对你有一定的参考价值。

前提

Rke 完成k8s集群部署,测试各项功能正常后,在为master 添加vip,实现高可用,此时再次请求api接口报错:

vip:172.20.101.252

master:172.20.101.157, 172.20.101.164, 172.20.101.165

报错:

Unable to connect to the server: x509: certificate is valid for 
172.20.101.157, 172.20.101.164, 172.20.101.165, 127.0.0.1, 10.43.0.1, not 172.20.101.252

解决办法:

修改rke cluster.yml 文件,更新集群证书;

解决办法1:

编辑集群配置文件,添加需要外围IP地址和相关域名:

vi cluster.yml 

authentication:
    strategy: x509
    sans:
      - "172.20.101.252"
      - "k8sdev.ptmind.com"

然后执行,证书轮换

 rke cert rotate

证书轮换之后,Kubernetes组件将自动重新启动。证书轮换可用于下列服务:

etcd
kubelet
kube-apiserver
kube-proxy
kube-scheduler
kube-controller-manager

方法2

推荐方法:

使用--service 指定单个服务,比如kubelet:

rke cert rotate --service kubelet

原因

生成证书配置文件时,没有vip在访问列表清单;

以上是关于nginx tcp 代理 kube api 接口请求报错的主要内容,如果未能解决你的问题,请参考以下文章

Nginx代理tcp协议(mysql)

手头没证书,如何给https做代理?NGINX TCP转发

nginx代理api

nginx利用反向代理调试后台接口

kube-ovn underlay vlan 模式 默认网络使用lb

nginx 一直都在做7层转发,4层也需要看看