Cel mai simplu mod de a crea și de a actualiza un secret de registru docker în Rancher 2.x pentru un depozit AWS ECR este să configurați o lucrare CRON care utilizează AWS CLI și Kubectl.
- Conectați-vă la mașina gazdă pe care rulează clusterul
- Instalați AWS CLI și configurați-l pentru a utiliza un rol IAM care poate citi acreditările ECR.
- Testați configurația CLI folosind această comandă:
aws ecr --region <regiunea_ecr_dvs.> get-login-password
- Instalați kubectl și configurați-l cu yaml pentru clusterul în care doriți să definiți secretul, apoi rulați a
kubectl obține păstăi
pentru a te asigura că totul este bine.
- Creați un script shell ca acesta (ștergerea este necesară pentru că din anumite motive nu există nicio modalitate de a actualiza/suprascrie un secret):
kubectl șterge secretul <name_of_the_docker_registry_secret>
kubectl creați docker-registry secret <numele_secretului_registrului_docker> \
--docker-server=<uri_registrului_ecr_dvs.> \
--docker-username=AWS \
--docker-password=$(aws ecr --region <regiunea_ecr_dvs.> get-login-password) \
--docker-email=<email_de_notificare_dvs.>
- Configurați o lucrare cron pentru a rula acest script shell la fiecare 6 ore (AWS resetează parola la fiecare 12, deci doar pentru a fi în siguranță).
Secretul va apărea în proiectul implicit pentru cluster și va fi folosit oricând Kubernetes dorește să facă ceva legat de registrul dvs. ECR.