我基本上是想从Azure kubernetes群集中提取GCR图像。 我有以下默认服务帐户:
kubectl get serviceaccounts default -o yaml
apiVersion: v1
imagePullSecrets:
- name: gcr-json-key-stg
kind: ServiceAccount
metadata:
creationTimestamp: "2019-12-24T03:42:15Z"
name: default
namespace: default
resourceVersion: "151571"
selfLink: /api/v1/namespaces/default/serviceaccounts/default
uid: 7f88785d-05de-4568-b050-f3a5dddd8ad1
secrets:
- name: default-token-gn9vb
如果我将相同的imagePullSecret
添加到各个部署中,它将起作用。因此,秘密是正确的。但是,当我将其用于默认服务帐户时,出现ImagePullBackOff
错误,在描述时会确认这是权限问题。
我想念什么吗? 我已确保我的部署未配置任何其他特定的服务帐户,并且应使用默认的服务帐户。
答案 0 :(得分:0)
在添加用于将映像拉到服务帐户的机密之后,需要将服务帐户添加到pod或部署中。例如:
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-deployment
spec:
selector:
matchLabels:
run: helloworld
replicas: 1
template:
metadata:
labels:
app: helloworld
spec:
containers:
- name: helloworld
image: yourPrivateRegistry/image:tag
ports:
- containerPort: 80
serviceAccountName: pull-image # your service account
服务帐户pull-image
如下所示:
答案 1 :(得分:0)
好的,问题是我添加了default
的{{1}}服务帐户不在同一个命名空间中。
一次,我修补了该名称空间中的默认服务帐户,它运行良好。