Container (OCI) Registry
Die Registry ist ein Service zum Speichern privater Container Images und Helm Charts.
Verfügbarkeit
Bei NKE ist die Registry als optionaler Service verfügbar. Das Feature kann über das Cockpit deployed und von mehreren NKE Clustern aus genutzt werden.
Pushen von Container Images
Um Container Images zu pushen, müssen Sie sich mit der Kombination aus URL, Nutzername und Passwort anmelden, die Sie im Cockpit finden.
$ docker login <url>
Username: <username>
Password: <password>
Login Succeded
Danach können Images mit docker tag
getaggt und mit docker push
gepusht werden:
$ docker tag <image id> <url>/<image name>:<image version>
$ docker push <url>/<image name>:<image version>
The push refers to repository [<url>]
...
Pushen von Helm Charts
Hinweis: Um Helm Charts zur Registry zu pushen, wird mindestens Helm v3.8.0 benötigt. Vor v3.8.0 wurde der OCI-Support als experimentell betrachtet und muss daher in früheren Versionen explizit durch Setzen der Umgebungsvariable
HELM_EXPERIMENTAL_OCI=1
aktiviert werden. Weiteres zu diesem Thema erfahren Sie hier.
Um ein Helm Chart auf die Registry hochzuladen, müssen Sie sich mit der Kombination aus URL, Nutzername und Passwort anmelden, die Sie im Cockpit finden.
$ helm registry login -u <user> <url>
Password:
Login Succeeded
Nach erfolgreicher Authentifizierung kann das Chart mit dem Befehl helm push
gepusht werden:
$ helm push <chart.tgz> oci://<url>
Pushed: ...
Digest: ...
Damit dies funktioniert, muss die URL mit oci://
statt mit https://
beginnen.
Hinweis: Der
push
Befehl kann nur für.tgz
Dateien genutzt werden, die zuvor mithelm package
erstellt wurden.
Für weitere Informationen über die Verwendung von Helm mit der Registry sehen Sie sich bitte die offizielle Helm Dokumentation an.
Pullen von Container Images in Ihrem Kubernetes Cluster
Um Ihre private Registry in Ihrem Kubernetes Cluster zu nutzen, muss ein Container Image Pull Secret erstellt werden und Ihre Deployment-Manifeste müssen darauf verweisen.
Die Erstellung des Secrets erfolgt mithilfe der .dockerconfigjson
aus dem Cockpit über kubectl
in Ihrem Cluster:
kubectl create secret docker-registry <secret name> \
--from-file=.dockerconfigjson=<path to .dockerconfigjson>
Auf dieses Secret wird dann in der imagePullSecrets
Liste des Pods verwiesen. Weitere Informationen zur Nutzung privater Registries finden Sie in der offiziellen Kubernetes Dokumentation.