我使用 GitLab 的自托管实例来存储我的 Docker 图像。由于我们最近设置了项目访问令牌,因此我们希望使用每个注册表的单独机密在 AKS 上提取图像。这意味着我们对“同一个注册表”中的每个图像都有特定的凭据。
问题是,部署有一个imagePullSecrets引用多个秘密的全局列表。而那些本质上持有不同凭证(每个 GitLab Container Registry 一个)的 Secrets 共享相同的 Docker Registry URL!
简而言之,这里是一个示例部署:
spec:
template:
spec:
containers:
- name: one
image: 'gitlab.company.com/project-one:1.0.0'
- name: two
image: 'gitlab.company.com/project-two:1.2.0'
imagePullSecrets:
- name: secret-project-one
- name: secret-project-two
秘密 1(秘密项目一):
{
"auths": {
"https://gitlab.company.com": {
"username": "project_111_bot",
"password": "password-project-one",
"auth": "Password"
}
}
}
还有秘密 2(秘密项目二):
{
"auths": {
"https://gitlab.company.com": {
"username": "project_222_bot",
"password": "password-project-two",
"auth": "Password"
}
}
}
Kubernetes 应该如何区分使用哪个 Secret?它是否假设您有不同的 URL,并且会根据图像名称匹配正确的 Secret?或者它会尝试每一个秘密,直到一个成功?
文档似乎没有涵盖这种情况。任何帮助,将不胜感激!