在我工作的地方,我们有docker premium帐户,并且我已经为我们的一台服务器设置了一个基本的故障转移站点docker.io/organization/failover:latest
。 我试图将其拉入kubernetes集群1.28,但是当我使用存储库地址时,如果它是私有的(使用同一命名空间中的机密),我会收到权限被拒绝的错误,并且当我将其公开时会收到一条消息,提示它不存在。
我在 github 工作流中使用相同的地址来构建容器,并且运行良好。如果我将其移动到我的个人存储库并使用 docker.io/user/failover:latest,它无论在公共还是私有环境中都可以完美运行。您是否需要使用特殊路径来从组织存储库中提取?
apiVersion: apps/v1
kind: Deployment
metadata:
name: failover
spec:
replicas: 1
revisionHistoryLimit: 3
selector:
matchLabels:
app: failover
template:
metadata:
labels:
app: failover
spec:
containers:
- image: docker.io/organization/failover:latest
name: failover
ports:
- containerPort: 80
当将其设置为公共存储库时,我收到的错误是
Failed to pull image "docker.io/organization/repo": reading manifest latest in docker.io/organization/repo: manifest unknown
更新:解决了部分问题,最新标签不是动态的。但是,当 kubernetes 机密为私有时,仍然无法使登录部分正常工作。更新 #2 解决了权限问题。凭据未在规范下正确嵌套。很抱歉浪费时间。
答案1
我遇到的问题有两个,但从我发布的清单中看不出来。
- 凭证嵌套不正确
- 我没有使用最新标签进行推送