使用JSON密钥文件的身份验证方法:未经授权:GCR登录失败

克里斯·G

主要寄给:google-cloud-platform

我要解决的总体问题是;从私有Kubernetes从Google Container Registry中提取图像。

更新刚刚添加了heptio-contour,如果那里有人遇到过这种情况-因为Heptio的好人已经进一步创建了问题中提到的脚本-谢谢。

第一步是只使用该服务帐户,用JSON关键-作为描述在这里
但是当我跑步时:

cat gcr-sa-key.json | docker login -u _json_key --password-stdin https://gcr.io

我应该能够登录docker,但是失败了:

cat gcr-sa-key.json | docker login -u _json_key --password-stdin https://gcr.io
Error response from daemon: Get https://gcr.io/v2/: unauthorized: GCR login failed. You may have invalid credentials. To login successfully, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication

注意:我是gcr-sa-key.json从运行文件得到的-请记住,我总体上是在尝试从Kubernetes使用它。

我希望这是Google的问题,但是/并且如果我确实按照Heptio的文档中的说明运行,则会得到:

Events:
  Type     Reason          Age                From                                        Message
  ----     ------          ----               ----                                        -------
  Normal   Scheduled       50s                default-scheduler                           Successfully assigned default/<image-name>-deployment-v1-844568c768-5b2rt to my-cluster-digitalocean-1-7781
  Normal   Pulling         37s (x2 over 48s)  kubelet, my-cluster-digitalocean-1-7781  pulling image "gcr.io/<project-name><image-name>:v1"
  Warning  Failed          37s (x2 over 48s)  kubelet, my-cluster-digitalocean-1-7781  Failed to pull image "gcr.io/<project-name>/<image-name>:v1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for gcr.io/<project-name>/<image-name>, repository does not exist or may require 'docker login'
  Warning  Failed          37s (x2 over 48s)  kubelet, my-cluster-digitalocean-1-7781  Error: ErrImagePull
  Normal   SandboxChanged  31s (x7 over 47s)  kubelet, my-cluster-digitalocean-1-7781  Pod sandbox changed, it will be killed and re-created.
  Normal   BackOff         29s (x6 over 45s)  kubelet, my-cluster-digitalocean-1-7781  Back-off pulling image "gcr.io/<project-name>/<image-name>:v1"
  Warning  Failed          29s (x6 over 45s)  kubelet, my-cluster-digitalocean-1-7781  Error: ImagePullBackOff

只是信息。可能相关,我在github上看到了这个问题。

尼泊木森

您缺少最重要的一点,您需要以某种方式授予Kubernetes的默认服务帐户(最简单的方法)以在提取映像的同时访问您的私有容器注册表的权限。您可以通过三个步骤执行此操作:

  1. 创建和AIM授予您的GCP服务帐户适当的角色(至少存储对象浏览器)作为解释这里的官方文档
  2. 使用GCP服务帐户的已下载JSON密钥创建(docker-registry)类型的kubernetes机密

kubectl create secret docker-registry my-private-gcr-readonly \
--docker-server=gcr.io \
--docker-username=_json_key \
--docker-password="$(cat /usr/local/home/demo/414141.json)" \
[email protected]

  1. 授予您默认的Kubernetes服务帐户(默认情况下,您的POD在其安全性上下文下运行)有权从私有GCR存储库中提取映像。通过为它分配imagePull操作的秘密,可以间接完成此操作:

kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "my-private-gcr-readonly"}]}'

而已 !

PS。

您还可以查看教程,教程说明了从Kubernetes集群中访问Google容器注册表的两种方法(使用JSON密钥或访问令牌)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用IIS8.0 Express(vs2013)的.NET Forms身份验证-401.2 .:未经授权:由于服务器配置,登录失败

来自分类Dev

使用IIS8.0 Express(vs2013)的.NET Forms身份验证-401.2 .:未经授权:由于服务器配置,登录失败

来自分类Dev

如何在Lumen中使用身份验证进行用户登录?为什么在启动时看到“未经授权”?

来自分类Dev

ASP.NET WebAPI基本身份验证始终失败为401 /未经授权

来自分类Dev

如何确定使用哪个SSH密钥文件对登录进行身份验证?

来自分类Dev

未经身份验证的对Endpoint的调用,用于使用身份验证的API方法

来自分类Dev

使用 AWS Cognito 联合身份进行身份验证失败,因为用户未经过身份验证

来自分类Dev

未经授权的LightSwitch 2013 HTML身份验证

来自分类Dev

使用OpenStack API时发生未经授权的错误,无法从Keystone获取身份验证令牌

来自分类Dev

使用OpenStack API时发生未经授权的错误,无法从Keystone获取身份验证令牌

来自分类Dev

使用 Passport 的 Laravel API 身份验证导致 401(未经授权)

来自分类Dev

基于SSH密钥的身份验证失败

来自分类Dev

如何使用 Python 从带有身份验证密钥的 URL 下载 JSON 文件

来自分类Dev

表单身份验证:如何处理未经授权的身份验证用户

来自分类Dev

py2neo.database.work.ClientError:[Security.Unauthorized]由于身份验证失败,客户端未经授权

来自分类Dev

如何使用表单身份验证防止未经身份验证访问子文件夹中的 .csv 文件

来自分类Dev

使用Google服务帐户时的授权问题。超出了未经身份验证的使用的每日限制。继续使用需要注册

来自分类Dev

如何使用Swift获取未经身份验证的身份

来自分类Dev

使用 nestjs 身份验证时身份验证失败

来自分类Dev

使用Azure AD OAuth身份验证从Azure Scheduler调用API应用程序时为“未经授权”

来自分类Dev

401-使用带有Azure AD的REST API Dynamics CRM进行未经授权的身份验证

来自分类Dev

使用ASP.NET Web API 2和Owin的基于令牌的身份验证会抛出401未经授权

来自分类Dev

使用授权类型“client_credentials”时 OAuth2 身份验证失败

来自分类Dev

JSON登录身份验证Zend框架

来自分类Dev

使用Python在未经身份验证的公共S3存储桶上下载文件

来自分类Dev

以用户 hdfs 登录失败:su:身份验证失败

来自分类Dev

未经授权使用 API 密钥

来自分类Dev

使用ACR122U的MIFARE Classic 1K加载身份验证密钥失败

来自分类Dev

使用CAS的单点登录身份验证

Related 相关文章

  1. 1

    使用IIS8.0 Express(vs2013)的.NET Forms身份验证-401.2 .:未经授权:由于服务器配置,登录失败

  2. 2

    使用IIS8.0 Express(vs2013)的.NET Forms身份验证-401.2 .:未经授权:由于服务器配置,登录失败

  3. 3

    如何在Lumen中使用身份验证进行用户登录?为什么在启动时看到“未经授权”?

  4. 4

    ASP.NET WebAPI基本身份验证始终失败为401 /未经授权

  5. 5

    如何确定使用哪个SSH密钥文件对登录进行身份验证?

  6. 6

    未经身份验证的对Endpoint的调用,用于使用身份验证的API方法

  7. 7

    使用 AWS Cognito 联合身份进行身份验证失败,因为用户未经过身份验证

  8. 8

    未经授权的LightSwitch 2013 HTML身份验证

  9. 9

    使用OpenStack API时发生未经授权的错误,无法从Keystone获取身份验证令牌

  10. 10

    使用OpenStack API时发生未经授权的错误,无法从Keystone获取身份验证令牌

  11. 11

    使用 Passport 的 Laravel API 身份验证导致 401(未经授权)

  12. 12

    基于SSH密钥的身份验证失败

  13. 13

    如何使用 Python 从带有身份验证密钥的 URL 下载 JSON 文件

  14. 14

    表单身份验证:如何处理未经授权的身份验证用户

  15. 15

    py2neo.database.work.ClientError:[Security.Unauthorized]由于身份验证失败,客户端未经授权

  16. 16

    如何使用表单身份验证防止未经身份验证访问子文件夹中的 .csv 文件

  17. 17

    使用Google服务帐户时的授权问题。超出了未经身份验证的使用的每日限制。继续使用需要注册

  18. 18

    如何使用Swift获取未经身份验证的身份

  19. 19

    使用 nestjs 身份验证时身份验证失败

  20. 20

    使用Azure AD OAuth身份验证从Azure Scheduler调用API应用程序时为“未经授权”

  21. 21

    401-使用带有Azure AD的REST API Dynamics CRM进行未经授权的身份验证

  22. 22

    使用ASP.NET Web API 2和Owin的基于令牌的身份验证会抛出401未经授权

  23. 23

    使用授权类型“client_credentials”时 OAuth2 身份验证失败

  24. 24

    JSON登录身份验证Zend框架

  25. 25

    使用Python在未经身份验证的公共S3存储桶上下载文件

  26. 26

    以用户 hdfs 登录失败:su:身份验证失败

  27. 27

    未经授权使用 API 密钥

  28. 28

    使用ACR122U的MIFARE Classic 1K加载身份验证密钥失败

  29. 29

    使用CAS的单点登录身份验证

热门标签

归档