Я пытаюсь вытащить частное изображение из Реестр артефактов репозиторий в Google Cloud из кластера kubernetes, работающего в другом проекте Google Cloud с использованием kubectl.
версия кубернета 1.20.15-gke.1000
Учетной записи службы для kubernetes уже предоставлены разрешения на доступ к Artifactregistry.reader и storageobject.viewer, поскольку изображение находится в проекте, отличном от учетной записи службы kubernetes.
Я применяю приведенный ниже yaml к команде kubectl.
kubectl применить -f proxy_with_workload_identity.yaml
apiVersion: приложения/v1
вид: развертывание
метаданные:
имя: тестовое приложение
спецификация:
селектор:
метки соответствия:
приложение: приложение-проект
стратегия:
обновление:
макс. всплеск: 1
макс. недоступно: 1
тип: RollingUpdate
шаблон:
метаданные:
этикетки:
приложение: приложение-проект
спецификация:
контейнеры:
- среда:
- имя: DB_USER
значениеОт:
секретная ссылка:
ключ: имя пользователя
имя: db-учетные данные
- имя: DB_PASS
значениеОт:
секретная ссылка:
ключ: пароль
имя: db-учетные данные
- имя: ИМЯ_БД
значение: постгрес
изображение: "us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1"
имя: приложение-проект
порты:
- контейнерПорт: 9376
протокол: TCP
- команда:
- /cloud_sql_proxy
- "-instances=demo-dev:us-central1:1-sql-1=tcp:5432"
изображение: "gcr.io/cloudsql-docker/gce-proxy: последний"
имя: облако-sql-прокси
Ресурсы:
Запросы:
процессор: 200 м
память: 32Ми
безопасностьКонтекст:
рунаснонрут: правда
serviceAccountName: testapp
Образ cloud-sql-proxy извлекается, и контейнер работает, но образ в частном репозитории не извлекается "us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1 "
когда я проверяю стручки, мне показывают эту ошибку:
code = Unknown desc = не удалось извлечь и распаковать образ «us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1:v1»: не удалось разрешить ссылку «us-central1-docker.pkg. dev/myproject/docker-repo/test-app:v1": не удалось авторизоваться: не удалось получить токен oauth: непредвиденный статус: 403 Запрещено
Может ли кто-нибудь сказать мне, как это решить?