【问题标题】:kubectl returns "Unauthorized" when going through a reverse proxy通过反向代理时,kubectl 返回“未授权”
【发布时间】:2021-11-18 13:41:14
【问题描述】:

在我的 /root/.kube/config 我有一个服务器:值为“https://my.reverse.proxy:6443”。

如果我没有在反向代理上设置任何证书(流量直接进入后端并提供后端证书,SSL 直通),我可以成功运行 kubectl 命令(即 sudo kubectl get pods -o wide -A) .但是如果我在反向代理上设置证书,我的 kubectl 命令会返回:

$ sudo kubectl --insecure-skip-tls-verify get pods -o wide -A
error: You must be logged in to the server (Unauthorized)

我不确定为什么会这样。是不是因为 kubectl 正在尝试使用反向代理证书“验证”,并且只允许使用后端证书这样做?

如果我想在反向代理上使用不同的证书(无 SSL 直通),我将如何摆脱该错误?我应该在客户端做什么?

【问题讨论】:

    标签: ssl kubernetes kubectl pki


    【解决方案1】:

    如果问题是在更新 kubernetes 证书后开始的,这会导致现有 ~/.kube/config 中包含过期的密钥和证书值。

    解决方法是替换 ~/.kube/config 文件中的 client-certificate-dataclient-key-data 值使用 /etc/kubernetes/kubelet.conf 中更新文件中的值

    【讨论】:

      【解决方案2】:

      问题是客户端证书被反向代理剥离(反向代理证书被发送到 Kubernetes 服务器),因此没有到达 Kubernetes 服务器。无论如何,如果我希望我的客户端证书正确进行身份验证,我都需要在我的反向代理上进行直通。

      【讨论】:

        猜你喜欢
        • 2022-08-12
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-27
        相关资源
        最近更新 更多