0

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

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

4

2 回答 2

1

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

于 2020-01-01T23:15:35.407 回答
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如下所示:

在此处输入图像描述

于 2019-12-31T08:48:04.543 回答