默认服务帐户上的imagePullSecrets似乎不起作用

时间:2019-12-26 02:02:14

标签: kubernetes google-kubernetes-engine azure-aks

我基本上是想从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错误,在描述时会确认这是权限问题。

我想念什么吗? 我已确保我的部署未配置任何其他特定的服务帐户,并且应使用默认的服务帐户。

2 个答案:

答案 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如下所示:

enter image description here

答案 1 :(得分:0)

好的,问题是我添加了default的{​​{1}}服务帐户不在同一个命名空间中。 一次,我修补了该名称空间中的默认服务帐户,它运行良好。