Încerc să scot o imagine privată din Registrul artefactelor repo în Google Cloud dintr-un cluster kubernetes care rulează într-un alt proiect Google Cloud folosind kubectl.
kubernetes versiunea 1.20.15-gke.1000
Contul de serviciu pentru kubernetes a primit deja permisiunile artefactregistry.reader și storageobject.viewer, deoarece imaginea se află într-un proiect diferit de contul de serviciu kubernetes
Aplic yaml de mai jos la comanda kubectl.
kubectl aplică -f proxy_with_workload_identity.yaml
apiVersion: apps/v1
fel: Desfăşurare
metadate:
nume: test-app
specificație:
selector:
matchLabels:
aplicație: aplicație-proiect
strategie:
RollingUpdate:
maxSurge: 1
maxIndisponibil: 1
tip: RollingUpdate
șablon:
metadate:
etichete:
aplicație: aplicație-proiect
specificație:
containere:
- env:
- nume: DB_USER
valoareDe la:
secretKeyRef:
cheie: nume de utilizator
nume: db-credentials
- nume: DB_PASS
valoareDe la:
secretKeyRef:
cheie: parola
nume: db-credentials
- nume: DB_NAME
valoare: postgres
imagine: „us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1”
nume: aplicație-proiect
porturi:
- containerPort: 9376
protocol: TCP
- comanda:
- /cloud_sql_proxy
- „-instances=demo-dev:us-central1:1-sql-1=tcp:5432”
imagine: „gcr.io/cloudsql-docker/gce-proxy:latest”
nume: cloud-sql-proxy
resurse:
cereri:
CPU: 200 m
memorie: 32 Mi
securityContext:
runAsNonRoot: adevărat
serviceAccountName: testapp
Imaginea cloud-sql-proxy este extrasă și containerul rulează, dar imaginea din depozitul privat nu este extrasă „us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1 "
când verific podurile, mi se arată această eroare:
cod = Desc necunoscut = nu s-a putut extrage și despacheta imaginea „us-central1-docker.pkg.dev/myproject/docker-repo/test-app:v1:v1”: nu s-a rezolvat referința „us-central1-docker.pkg. dev/myproject/docker-repo/test-app:v1": eșuat la autorizare: eșuat la preluarea jetonului oauth: stare neașteptată: 403 interzis
Imi poate spune cineva cum sa rezolv asta?