【问题标题】:Setting up HAproxy loadbalancer but encountering error after running kubeadm init on master node with a timeout failure设置 HAproxy 负载均衡器,但在主节点上运行 kubeadm init 后遇到错误,超时失败
【发布时间】:2022-08-14 18:36:53
【问题描述】:

我有 2 个主节点、2 个工作节点和 1 个要设置为 HAProxy 的服务器。

我在 vi /etc/haproxy/haproxy.cfg 的 HAProxy 配置如下所示:



listen stats

  bind    *:9000
  mode    http
  stats   enable
  stats   hide-version
  stats   uri       /stats
  stats   refresh   30s
  stats   realm     Haproxy\\ Statistics
  stats   auth      Admin:Password
frontend kubernetes
    bind :6443
    option tcplog
    mode tcp
    tcp-request inspect-delay 5s
    tcp-request content accept if { req.ssl_hello_type 1 }
    default_backend kubernetes-master-nodes

backend kubernetes-master-nodes
    mode tcp
    balance roundrobin
    option tcp-check
    option tcplog
    server hpsoscr0002 100.121.12.15:6443 check fall 3 rise 2
    server hpsoscr0003 100.121.12.20:6443 check fall 3 rise 2

我的 kubeadm-config 文件如下所示:

apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 100.121.12.15
  bindPort: 6443
certificateKey: \"a7605ad6ca193fd1e11bc675d4ecaa0f02d27ae42746e1d4465936277d8fb0b4\"
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: hpsoscr0002
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  certSANs:
  - \"100.121.12.10\"   #haproxydns
  timeoutForControlPlane: 4m0s
controlPlaneEndpoint: \"100.121.12.10:6443\"
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
kind: ClusterConfiguration
kubernetesVersion: v1.19.0
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
scheduler: {}

使用此配置文件执行 kubeadm 命令后,控制平面出现超时错误:

[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory \"/etc/kubernetes/manifests\". This can take up to 4m0s
I0811 10:50:15.488461 1923176 round_trippers.go:443] GET https://100.121.12.10:6443/healthz?timeout=10s  in 0 milliseconds
[kubelet-check] Initial timeout of the 40s passed.

最后,它无法初始化集群。有人知道可能出了什么问题吗?我不明白为什么负载均衡器无法正常运行

    标签: kubernetes load-balancing offline kubelet


    【解决方案1】:

    很快回答它似乎是一个 Kubernetes 配置问题。

    HAProxy,除此之外,它将负载平衡请求到您的 kubernetes 设置。

    促使您找到解决方案的问题:

    • HAProxy 没有共享输出错误;它可能会告诉您该端口已绑定,因为它正在侦听 6443,kubernetes 也是如此。您宁愿让 haproxy 收听标准 80 和 443 以避免您的用户必须键入特定端口
    • hpsoscr0003 服务器定义在您的 kubernetes 配置中不可见,这对 HAProxy 来说不是问题,如果 002 也不起作用,它根本不会使用它或返回 503 http 错误。这可能就是让您说 HAProxy 不起作用的原因。但是,如果您看到 503 错误,那肯定是来自 HAProxy。

    祝你好运 !

    【讨论】:

      猜你喜欢
      • 2020-08-15
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 2019-07-29
      • 2015-06-17
      • 2019-12-07
      • 1970-01-01
      相关资源
      最近更新 更多