首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gke后端服务处于不健康状态,当活动和就绪探测是exec和健康检查url类型时,需要身份验证。

问gke后端服务处于不健康状态,当活动和就绪探测是exec和健康检查url类型时,需要身份验证。
EN

Stack Overflow用户
提问于 2021-07-02 11:25:09
回答 1查看 229关注 0票数 1

我正在尝试在GKE集群中配置应用程序。

现状

  • 我的应用程序正在使用经过验证的健康检查。
  • 为了处理这个问题,我使用的是exec而不是httpGet。它使我能够使用curl和身份验证细节(使用HTTP,它提供401 (未经授权的错误))
  • 当我执行舵图时,我可以看到
    • pod处于就绪状态,容器为1/1 (早些时候它向我展示了(使用HTTP )为0/1 )。

代码执行代码,用于准备和活性探测。

代码语言:javascript
复制
exec [bash -c curl -G --fail --silent --show-error -u $AUTH_ADMIN_USERNAME:$AUTH_ADMIN_PASSWORD localhost:$PORT/actuator/health] delay=60s timeout=10s period=30s #success=1 #failure=8

期望这个后端服务(具有准备状态和活性探测)处于健康状态。

EN

回答 1

Stack Overflow用户

发布于 2021-07-05 10:07:49

看起来您在批准请求时遇到了问题。例如,在配置了令牌身份验证并启用匿名访问的服务器上,提供无效承载令牌的请求将收到401 Unauthorized错误。您需要首先消除401 error。

这里您可以找到一个指南,如何设置Kubelet身份验证:

默认情况下,对kubelet的HTTPS端点的请求如果未被其他配置的身份验证方法拒绝,则被视为匿名请求,并给出用户名system:anonymous和一组system:unauthenticated。若要禁用匿名访问并向未经验证的请求发送401 Unauthorized响应,请执行以下操作:

  • 使用--anonymous-auth=false标志启动kubelet,以启用对kubelet的HTTPS端点的X509客户端证书身份验证:
  • 使用--client-ca-file标志启动kubelet,提供一个CA包来使用
  • 使用--kubelet-client-certificate和--kubelet-client-key标志启动apiserver
  • 有关更多细节,请参见apiserver认证文档,以使API承载令牌(包括服务帐户令牌)能够用于对kubelet的HTTPS端点进行身份验证:
  • 确保API服务器中启用了authentication.k8s.io/v1beta1 API组。
  • 使用--authentication-token-webhook和--kubeconfig标志启动kubelet
  • kubelet在配置的API服务器上调用TokenReview API以确定来自承载令牌的用户信息。

您还可以找到关于Kubelet授权的指南。

细分对kubelet的访问有许多可能的原因:

  • 启用了匿名auth,但是匿名用户调用kubelet的能力应该受到限制
  • 启用了承载令牌auth,但是任意API用户(如服务帐户)调用kubelet的能力应该受到限制
  • 启用了客户端证书auth,但只允许由配置的CA签名的某些客户端证书使用kubelet API。

另请参阅:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68224371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档