如何通过kubectl从本地访问AWS上自建的Kubernetes集群?
解决kubeadm搭建K8s集群本地kubectl访问证书验证失败问题
问题背景
在AWS EC2公有子网用kubeadm搭建自建K8s集群,主节点/工作节点均有公网IP。集群内kubectl操作正常,但本地Linux机器复制kubeconfig后执行kubectl get nodes报错:
E0929 12:04:43.319775 26908 memcache.go:265] couldn't get current server API group list: Get "https://10.0.1.227:6443/api?timeout=32s": dial tcp 10.0.1.227:6443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
替换kubeconfig中的server地址为主节点公网IP后,出现证书验证错误:
E0929 11:26:50.902035 25572 memcache.go:265] couldn't get current server API group list: Get "https://3.110.130.136:6443/api?timeout=32s": tls: failed to verify certificate: x509: certificate is valid for 10.96.0.1, 10.0.1.227, not 3.110.130.136
安全组已开放6443端口,问题根源是kubeadm生成的apiserver证书未包含主节点公网IP作为SAN(Subject Alternative Name)。
解决方案
方法一:重新生成apiserver证书(推荐生产环境使用)
- 登录主节点,备份原有证书
mkdir -p /etc/kubernetes/pki/backup cp /etc/kubernetes/pki/apiserver.{crt,key} /etc/kubernetes/pki/backup/ - 创建kubeadm配置文件,添加公网IP到SAN列表
创建kubeadm-config.yaml文件,填入以下内容(替换公网/私网IP为实际值):apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration kubernetesVersion: stable apiServer: certSANs: - "10.0.1.227" # 主节点私网IP - "3.110.130.136" # 主节点公网IP - "localhost" - "127.0.0.1" - "kubernetes" - "kubernetes.default" - "kubernetes.default.svc" - "kubernetes.default.svc.cluster.local" - 重新生成apiserver证书
kubeadm init phase certs apiserver --config=kubeadm-config.yaml - 重启kube-apiserver Pod
kubectl delete pod -n kube-system -l component=kube-apiserver - 更新本地kubeconfig
从主节点复制~/.kube/config到本地~/.kube/config,并将其中的server字段修改为https://<主节点公网IP>:6443。
方法二:临时跳过证书验证(仅测试环境使用)
- 编辑本地
~/.kube/config文件,找到集群配置部分,添加insecure-skip-tls-verify: true:clusters: - cluster: certificate-authority-data: <原有证书数据> server: https://<主节点公网IP>:6443 insecure-skip-tls-verify: true # 新增此行跳过验证 name: kubernetes - 保存文件后执行
kubectl get nodes即可正常访问,但此方法关闭TLS证书验证,存在安全风险,不建议生产环境使用。
内容的提问来源于stack exchange,提问作者Aman Deep
相关产品推荐
相关产品推荐

