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

时间:2021-07-13 02:56:58

标签: kubernetes

我正在尝试将单个主设置转换为 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 

1 个答案:

答案 0 :(得分:0)

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

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

请检查 Install and configure a multi-master Kubernetes cluster with kubeadm - 我使用那篇文章创建了多主集群。

您的步骤:

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

我强烈建议您查看 Kubernetes High Availability: No Single Point of Failure - 它是关于现实生活中的 HA。也许您需要 HA 而不是多主节点来确保您的集群始终可访问?