J'ai l'image suivante créée par un Dockerfile:
TAILLE DE CRÉATION D'IDENTIFICATION D'IMAGE D'ÉTIQUETTE DE DÉPÔT
Ruby/lab dernier f1903b1508cb Il y a 2 heures 729,6 Mo
Et j'ai mon fichier YML suivant:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: Ruby-deployment
spec:
replicas: 2
template:
metadata:
labels:
app: Ruby
spec:
containers:
- name: Ruby-app
image: Ruby/lab
imagePullPolicy: IfNotPresent
ports:
- containerPort: 4567
Lorsque je crée le déploiement, j'ai reçu les informations suivantes dans les pods:
Ruby-deployment-3830038651-sa4ii 0/1 ImagePullBackOff 0 7m
Ruby-deployment-3830038651-u1tvc 0/1 ImagePullBackOff 0 7m
Et:
8m 2m 6 {kubelet minikube} spec.containers{Ruby} Normal Pulling pulling image "Ruby/lab:latest"
8m 2m 6 {kubelet minikube} spec.containers{Ruby} Warning Failed Failed to pull image "Ruby/lab:latest": Error: image Ruby/lab not found
8m 2m 6 {kubelet minikube} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "Ruby" with ErrImagePull: "Error: image Ruby/lab not found"
Est-il vraiment nécessaire d'avoir un registre dans docker pour cela? Je veux juste faire un test localement et transmettre mon code/repo à un ami à des fins de test
Merci
Vous pouvez diriger votre client docker vers le démon docker de la machine virtuelle en exécutant
eval $(minikube docker-env)
Ensuite, vous pouvez construire votre image normalement et créer vos ressources kubernetes normalement à l’aide de kubectl. Assurez-vous que vous avez
imagePullPolicy: IfNotPresent
dans vos spécifications YAML ou JSON.
En outre, un indicateur permet de transmettre des registres non sécurisés à la VM mini-cube. Toutefois, cela doit être spécifié lors de la première création de la machine.
minikube start --insecure-registry
Vous voudrez peut-être aussi lire ceci en utilisant un registre privé http://kubernetes.io/docs/user-guide/images/
AFAIR minikube s'exécute dans un VM et ne verra donc pas les images que vous avez construites localement sur un ordinateur hôte, mais ... comme indiqué dans https://github.com/kubernetes/minikube/blob/ master/docs/reusing_the_docker_daemon.md vous pouvez utiliser eval $(minikube docker-env)
pour utiliser le démon docker exécuté sur minikube, et désormais créer votre image sur le dockeur minikubes et ainsi s’attendre à ce qu’elle soit disponible pour le moteur minikubes k8s sans extraire du registre externe
docker pull, extrait toutes les images manuellement dans chaque nœud .__ ou lance un DaemonSet pour extraire toutes les images