【问题标题】:How to fix kubernetes controller manager probe failed: HTTP probe failed with statuscode: 400如何修复 kubernetes 控制器管理器探测失败:HTTP 探测失败,状态码:400
【发布时间】:2019-07-04 21:45:40
【问题描述】:

我使用二进制数据包部署了 kubernetes 控制器管理器,成功启动 kube-controller-manager 服务,但 HTTP 探测失败,状态码为:400,当 kubectl 获得控制器管理器状态时

环境描述

提供者:VMware Workstation(Centos7.2.1511)

码头工人版本:18.09.6

内核版本:4.4.184

kubernetes 版本:1.14.2

1:这是 kubernetens 控制器管理器状态

[root@node1 conf]# /opt/kube/bin/kubectl get cs
NAME                 STATUS      MESSAGE                                  ERROR
controller-manager   Unhealthy   HTTP probe failed with statuscode: 400   
scheduler            Healthy     ok                                       
etcd-0               Healthy     {"health":"true"}                        
etcd-1               Healthy     {"health":"true"}                        
etcd-2               Healthy     {"health":"true"}  

2:这是kubernetens控制器管理器系统单元文件

[root@node1 conf]# cat /etc/systemd/system/kube-controller-manager.service 
...
[Service]
WorkingDirectory=/opt/kube/data/kube-manager
ExecStart=/opt/kube/bin/kube-controller-manager \
  --port=0 \
  --secure-port=10252 \
  --bind-address=127.0.0.1 \
  --kubeconfig=/opt/kube/conf/kube-controller-manager.kubeconfig \
  --authentication-kubeconfig=/opt/kube/conf/kube-controller-manager.kubeconfig \
  --authorization-kubeconfig=/opt/kube/conf/kube-controller-manager.kubeconfig \
  --service-cluster-ip-range=10.99.0.0/16 \
  --cluster-name=kubernetes \
  --cluster-signing-cert-file=/opt/kube/ssl/ca.pem \
  --cluster-signing-key-file=/opt/kube/ssl/ca-key.pem \
  --experimental-cluster-signing-duration=8760h \
  --root-ca-file=/opt/kube/ssl/ca.pem \
  --service-account-private-key-file=/opt/kube/ssl/ca-key.pem \
  --leader-elect=true \
  --controllers=*,bootstrapsigner,tokencleaner \
  --tls-cert-file=/opt/kube/ssl/kube-controller-manager.pem \
  --tls-private-key-file=/opt/kube/ssl/kube-controller-manager-key.pem \
  --use-service-account-credentials=true \
  --experimental-cluster-signing-duration=876000h \
  --horizontal-pod-autoscaler-sync-period=10s \
  --concurrent-deployment-syncs=10 \
  --concurrent-gc-syncs=30 \
  --node-cidr-mask-size=24 \
  --kube-api-qps=1000 \
  --kube-api-burst=2000 \
  --logtostderr=true \
  --v=2
...

有什么好的解决办法吗?谢谢

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    从 1.13 开始,kube-controller-manager 和 kube-scheduler 将 10259、10257 公开为安全端口

    不安全的端口 10251、10252 已被弃用。 - #1327

    您应该使用安全端口作为 livenessProbes 的默认设置。

      --secure-port=10257
    

    【讨论】:

    • 按照你给的方法试试还是不行,执行kubectl get c显示controller-manager connection 10252 failed
    • @Beck 如果您已将端口更改为 10257,为什么它仍在尝试连接到 10252?
    • 是的,kubectl 还是回去连接 10252
    • 尝试在更改配置文件后强制重新创建 pod kubectl delete pod controller-manager -n kube-system 如果它不起作用,请使用命令的输出更新您的帖子 kubectl describe pod controller-manager -n kube-system
    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 2018-05-15
    • 2021-01-01
    • 2021-03-13
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多