2017-10-07 7 views
1

J'ai un minikube Kubernetes qui exécute un déploiement/service.Kubernetes minikube - peut tirer manuellement à partir du registre des dockers, mais les déploiements en continu ne tireront pas

Lorsque je tente de mettre à jour l'image à une nouvelle version (de mon registre sur une autre machine) comme suit:

kubectl set image deployment/flask-deployment-yaml flask-api- 
endpoint=192.168.1.201:5000/test_flask:2 

Il échoue avec les erreurs:

Failed to pull image "192.168.1.201:5000/test_flask:2": rpc error: 
code = 2 desc = Error: image test_flask:2 not found 

Si je me connecte sur mon serveur minikube et tirer manuellement l'image docker comme suit:

$ docker pull 192.168.1.201:5000/test_flask:2 
2: Pulling from test_flask 
280aca6ddce2: Already exists 
3c0df3e97827: Already exists 
669c8479e3f7: Pull complete 
83323a067779: Pull complete 
Digest: sha256:0f9650465284215d48ad0efe06dc888c50928b923ecc982a1b3d6fa38d 
Status: Downloaded newer image for 192.168.1.201:5000/test_flask:2 

Cela fonctionne, puis mon déploiement mise à jour réussit subitement, vraisemblablement parce que l'image existe maintenant localement.

Je ne sais pas pourquoi la mise à jour de déploiement ne fonctionne pas tout tout de suite ...

Plus de détails sur le déploiement:

Name:     flask-deployment-yaml 
Namespace:    default 
CreationTimestamp:  Sat, 07 Oct 2017 15:57:24 +0100 
Labels:     app=front-end 
Annotations:   deployment.kubernetes.io/revision=2 
Selector:    app=front-end 
Replicas:    4 desired | 4 updated | 4 total | 4 available | 0 unavailable 
StrategyType:   RollingUpdate 
MinReadySeconds:  0 
RollingUpdateStrategy: 1 max unavailable, 1 max surge 
Pod Template: 
    Labels:  app=front-end 
    Containers: 
    flask-api-endpoint: 
    Image:    192.168.1.201:5000/test_flask:2 
    Port:    5000/TCP 
    Environment:  <none> 
    Mounts:    <none> 
    Volumes:    <none> 
Conditions: 
    Type   Status Reason 
    ----   ------ ------ 
    Available  True MinimumReplicasAvailable 
OldReplicaSets: <none> 
NewReplicaSet: flask-deployment-yaml-1174202895 (4/4 replicas created) 

Répondre

0

Vous devez soit supprimer votre cluster de minikube et commencer à nouveau avec l'indicateur --insecure-registry, pour autoriser l'extraction à partir de registres non sécurisés, ou utiliser celui qui est accessible via localhost et le port forward dans le cluster minikube, car il ne refusera pas d'extraire de localhost. Plus de détails ici: - https://github.com/kubernetes/minikube/blob/master/docs/insecure_registry.md - https://github.com/kubernetes/minikube/issues/604

Et plus de détails et d'illustrations sur le problème et comment résoudre ici: https://blog.hasura.io/sharing-a-local-registry-for-minikube-37c7240d0615

+1

Merci pour l'information. Mon registre est sécurisé et j'ai téléchargé un fichier ca.crt sur la machine minkube (/etc/docker/certs.d/....) pour permettre un accès sécurisé. Si le certificat de registre n'est pas configuré correctement, la connexion du docker échouera. Je peux effectivement me connecter manuellement à partir de la machine minikube, et manuellement pousser et tirer des images à partir du registre, juste kubernetes se heurte au problème. Cela a-t-il du sens? – Xerphiel