我有一个私有注册表(gitlab),用于存储我的docker映像。
为了进行部署,会创建一个秘密,允许GKE访问注册表。该秘密称为deploy-secret
。
机密信息的登录信息在注册表中短时间后会过期。
我还创建了第二个永久机密,该机密可以访问名为permanent-secret
的Docker注册表。
是否可以用两个秘密指定Pod?例如:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: deploy-secret
- name: permanent-secret
当Kubernetes稍后尝试重新拉动映像时,会认识到第一个秘密不起作用(不允许对私有注册表进行身份验证),然后成功回退到第二个秘密吗?
答案 0 :(得分:2)
这令人惊讶!我只是在集群上尝试过。我添加了带有错误值的虚假注册表凭据机密。我像下面一样,将两个秘密都放入了Yaml中,并且创建了pod,创建了容器并成功运行它:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
nodeSelector:
containers:
- image: gitlab.myapp.com/my-image:tag
name: test
ports:
- containerPort: 80
imagePullSecrets:
- name: regcred-test
- name: regcred
regcred
秘密具有正确的值,regcred-test
只是一堆胡言乱语。因此我们可以看到它忽略了不正确的秘密。