无法连接到服务器:x509:无法验证$LOAD_BALANCER的证书



我正在尝试将单个主机设置转换为3个HA主机。负载均衡器被配置为在端口443处接受流量,并且其后端之一是单个主IP及其端口443。验证了负载平衡器和k8s节点之间的连接。

当我的~/.kube/config中的服务器使用主节点的IP时,它以前工作得很好。但当我尝试将其更改为专用负载平衡器DNS时。它抛出x509无法验证证书错误。我们正在使用digicert,我需要把它放在kube-api服务器或kubelet中的某个地方吗?

我正在使用https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/作为引导

sudo kubeadm init --control-plane-endpoint companykube.com:443 --kubernetes-version v1.21.2 --pod-network-cidr 10.244.0.0/16 --cri-socket /run/containerd/containerd.sock  --upload-certs --apiserver-cert-extra-sans=companykube.com,singlemasterIp,2ndmasterIP,3rdmasterIP --apiserver-bind-port=443 

这里有很多创建多master的步骤和方面,而您描述的很少。

通常多主机(并且总是HA(包含3个已正确配置etcd的主机。

请检查使用kubeadm安装和配置多主机Kubernetes集群-我用那篇文章创建了多主机集群。

你的步骤:

  • 安装HAProxy负载平衡器
  • 生成TLS证书并分发它们
  • 为Etcd集群创建证书并分发证书
  • 安装和配置Etcd
  • 初始化主节点
  • 在客户端计算机上配置kubectl(您要求的kubeconfig(
  • 部署覆盖网络

我强烈建议您查看Kubernetes高可用性:无单点故障-这是关于现实生活中的HA。也许您需要HA而不是多主机来确保您的集群始终可访问?

不幸的是,问题出在负载均衡器方面。流量没有从前端到后端。

最新更新