程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Istio 允许在 Docker 桌面 Kubernetes 上使用第三方 JWT 配置第三方服务帐户令牌服务帐户令牌量预测解决方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Istio 允许在 Docker 桌面 Kubernetes 上使用第三方 JWT 配置第三方服务帐户令牌服务帐户令牌量预测解决方法?

开发过程中遇到Istio 允许在 Docker 桌面 Kubernetes 上使用第三方 JWT 配置第三方服务帐户令牌服务帐户令牌量预测解决方法的问题如何解决?下面主要结合日常开发的经验,给出你关于Istio 允许在 Docker 桌面 Kubernetes 上使用第三方 JWT 配置第三方服务帐户令牌服务帐户令牌量预测解决方法的解决方法建议,希望对你解决Istio 允许在 Docker 桌面 Kubernetes 上使用第三方 JWT 配置第三方服务帐户令牌服务帐户令牌量预测解决方法有所启发或帮助;

我正在使用 docker 桌面附带的预打包 Kubernetes 集群。我在 windows 机器上,在使用 WSL 2 的 ubuntu-18.04 VM 上运行 Kubernetes。在我的 Kubernetes 集群上,我运行:

istioctl install --set profile=demo --set values.global.jwtPolicy=third-party-jwt

但我收到消息:

Detected that your cluster does not support third party JWT authentication. falling BACk to less secure first party JWT. See https://istio.io/v1.9/docs/ops/best-practices/security/#configure-third-party-service-account-tokens for details.

在那之后,它会冻结,直到超时:

Processing resources for Istiod. WaiTing for Deployment/istio-system/istiod

有没有办法在我的集群中启用第三方 JWT?

解决方法

在您收到的错误消息中,有一个链接指向有关该特定问题的文档:

  • Istio.io: Latest: Docs: Ops: Best practices: Security: Configure third party service account tokens

引用官方文档:

配置第三方服务帐户令牌

为了使用 Istio 控制平面进行身份验证,Istio 代理将使用服务帐户令牌。 Kubernetes 支持以下两种形式的令牌:

第三方令牌,具有范围的受众和到期时间。 第一方令牌,没有过期并安装到所有 pod 中。 由于第一方令牌的属性不太安全,因此 Istio 将默认使用第三方令牌。但是,并非所有 Kubernetes 平台都启用此功能。

如果使用 istioctl 安装,会自动检测支持。这也可以手动完成,并通过传递 --set values.global.jwtPolicy=third-party-jwt--set values.global.jwtPolicy=first-party-jwt 进行配置

要确定您的集群是否支持第三方令牌,请查找 Tokenrequest API。如果这没有返回任何响应,则不支持该功能:

$ kubectl get --raw /api/v1 | jq '.resources[] | SELEct(.name | index("serviceaccounts/token"))'

{
    "name": "serviceaccounts/token","singularName": "","namespaced": true,"group": "authentication.k8s.io","version": "v1","kind": "Tokenrequest","verbs": [
        "create"
    ]
}

然大多数云提供商现在都支持此功能,但许多本地开发工具和自定义安装在 Kubernetes 1.20 之前可能不会。要启用此功能,请参阅Kubernetes documentation。


我不确定使用 Docker Desktop 创建的 Kubernetes (1.19.7) 是否支持此功能,但 Kubernetes 文档显示了如何启用它:

服务帐户令牌量预测

功能状态:Kubernetes v1.20 [稳定]

注意:

要启用和使用令牌请求投影,您必须为 kube-apiserver 指定以下每个命令行参数:

--service-account-issuer
--service-account-key-file
--service-account-signing-key-file
--api-audiences

您可以在 Docker 桌面中使用 Kubernetes 以一种有点古怪的方式编辑您的 kubeapi-server 清单。您可以按照以下答案(我是其作者)阅读更多相关信息:

  • Stackoverflow.com: Questions: LOCATIOn of Kubernetes config directory with Docker Desktop on Windows

解决方法

当您在主机上使用 Docker 时,您也可以虑使用 @H_615_5@minikube 及其 --driver=docker。它支持 Istio 文档中描述的第三方 JWT 令牌(它从 $ kubectl get --raw ... 命令生成响应)。

附注!

我已经在 @H_615_5@minikube 版本 1.19.0 和 Kubernetes 版本 1.20.2对此进行了测试。

大佬总结

以上是大佬教程为你收集整理的Istio 允许在 Docker 桌面 Kubernetes 上使用第三方 JWT 配置第三方服务帐户令牌服务帐户令牌量预测解决方法全部内容,希望文章能够帮你解决Istio 允许在 Docker 桌面 Kubernetes 上使用第三方 JWT 配置第三方服务帐户令牌服务帐户令牌量预测解决方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。