前景提要:
今天有个同事反馈在使用 K8S 官方 SDK 连接tke集群 API Server 报错 certificate verify failed self signed certificate 。
针对这个问题,我们提供如下的解决方案
解决方案
1、 新增跳过服务端校验的配置。
若使用 nodejs sdk,需设置环境变量:
代码语言:javascript复制 export NODE_TLS_REJECT_UNAUTHORIZED=“0”;
若使用 python sdk,需在 kubeconfig 里设置:
代码语言:javascript复制 clusters:
- cluster:
insecure-skip-tls-verify: true
2、编辑 Deployment default/kubernetes-proxy,在 .spec.template.spec.containers 中将 kubernetes-proxy 容器启动参数--CN=kubernetes
修改为--CN=kubernetes-proxy
,保存更新。
代码语言:javascript复制此操作会重启 kubernetes-proxy pod,会导致已有连接断开,建议选择合适的时间操作。
apiVersion: apps/v1
kind: Deployment
metadata:
# ...
name: kubernetes-proxy
namespace: default
spec:
# ...
template:
# ...
spec:
# ...
containers:
- args:
- ./apiserver-proxy
- start
- --CN=kubernetes-proxy # 原为--CN=kubernetes
- --port=443
# ...
name: kubernetes-proxy