kubernetes - 无法访问 Knative 中的私有注册表
问题描述
我正在尝试将示例应用程序推送到 Knative 但是我遇到了以下错误消息:
Revision "..." failed with message: Unable to fetch image "...": unsupported status code 401; body: Not Authorized
Knative 在 EC2 上已正确设置,我已经创建了一个服务帐户和密码以从 ECR 中提取。我错过了什么?我不确定为什么 Knative 不能访问我的私有 AWS 存储库,即使 K8s(不是 Knative)能够访问。
秘密:
apiVersion: v1
kind: Secret
metadata:
name: registry-push-secret
annotations:
build.knative.dev/docker-0: https://....
type: kubernetes.io/basic-auth
stringData:
username: token
password: <token_value>
原生秘诀:
kubectl create secret docker-registry secret-name --docker-server=https://... --docker-username=token --docker-password=<token_value>
服务帐号:
apiVersion: v1
kind: ServiceAccount
metadata:
name: test-sa
secrets:
- name: registry-push-secret
imagePullSecrets:
- name: secret-name
原生配置:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: test
namespace: default
spec:
runLatest:
configuration:
revisionTemplate:
spec:
serviceAccountName: test-sa
container:
image: ...
imagePullPolicy: Always
env:
- name: TARGET
value: "..."
解决方案
对于偶然发现此问题的任何人,它最终在 Github 问题中得到解决:https ://github.com/knative/serving/issues/1996
推荐阅读
- hyperledger-fabric - 为什么“hyperledger-fabric”私有数据集合无法查询 PDC 并在同一事务中对其进行更改?
- awk - awk 合并 2 列并向 txt 文件添加额外的列
- html - 想要将从 django DB 检索到的数据添加到我的 html 选项标签
- python - 当已使用除外 KeyError 时引发 KeyError
- c# - 如何在通过 Bot 发送邮件时禁用用户电子邮件的自动回复
- c# - Task WaitAll 在 C# 中无法正常工作,用于 DB 任务
- java - 将 Spring Boot 应用程序打包到 Sidekick 容器中
- google-sheets - 需要 SUMIF =SUM(C3-(SUM(E3:N3))) 但如果 E14<0 不要减去
- reactjs - 一个数据来自两个 get 方法
- mattermost - 是否可以设置频道图标