Kubernetes - Ошибка Imagepullbackoff При Извлечении Образа Докера В Другой Проект В Google Cloud

  • Автор темы Sella
  • Обновлено
  • 22, Oct 2024
  • #1

Я пытаюсь получить частный образ из репозитория реестра артефактов в Google Cloud из кластера Kubernetes, работающего в другом проекте Google Cloud, с помощью kubectl.

 
 apiVersion: apps/v1
kind: Deployment
metadata:

name: test-app
spec:

selector:

matchLabels:

app: app-project

strategy:

rollingUpdate:

maxSurge: 1

maxUnavailable: 1

type: RollingUpdate

template:

metadata:

labels:

app: app-project

spec:

containers:

- env:

- name: DB_USER

valueFrom:

secretKeyRef:

key: username

name: db-credentials

- name: DB_PASS

valueFrom:

secretKeyRef:

key: password

name: db-credentials

- name: DB_NAME

value: postgres

image: "us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1" 

name: app-project

ports:

- containerPort: 9376

protocol: TCP

- command:

- /cloud_sql_proxy 

- "-instances=demo-dev:us-central1:1-sql-1=tcp:5432"

image: "gcr.io/cloudsql-docker/gce-proxy:latest"

name: cloud-sql-proxy

resources:

requests:

cpu: 200m

memory: 32Mi

securityContext:

runAsNonRoot: true

serviceAccountName: testapp
 

Учетной записи службы для kubernetes уже предоставлены разрешения arteregistry.reader и Storageobject.viewer, поскольку изображение находится в другом проекте, отличном от учетной записи службы kubernetes.

Я применяю приведенный ниже yaml к команде kubectl.

kubectl применить -f proxy_with_workload_identity.yaml

kubernetes version 1.20.15-gke.1000

Образ cloud-sql-proxy извлекается, и контейнер работает, но образ в частном репозитории не извлекается "us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1 "

когда я проверяю модули, мне отображается эта ошибка:

#docker #kubernetes #google-cloud-platform #google-kubernetes-engine

Sella


Рег
18 Sep, 2006

Тем
78

Постов
187

Баллов
607
  • 25, Oct 2024
  • #2

Кажется, вам нужно добавить pull-secret в то же пространство имен (кажется, вы работаете по умолчанию)

Команда:

 
 .....

spec:

imagePullSecrets:

- name: <your secret name like myregistry-docker-secret>

containers:

- env:
......
 

Ссылка: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

Тогда ваш манифест должен выглядеть так

kubectl create secret docker-registry <your secret name like myregistry-docker-secret> --docker-server=<your-registry-server like us-central1-docker.pkg.dev> --docker-username=<your registry username> --docker-password=<your registry password> --docker-email=<your-email>
 

Bagirasxs


Рег
06 Apr, 2020

Тем
77

Постов
196

Баллов
581
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно