2017-01-22 5 views
0

私はKubernetesをはじめて使用しています。プライベートなDockerHubイメージを参照しようとすると厄介な時があります。 YAMLでKubernetesでプライベートDockerHubイメージをどのように参照していますか?

が、これは私が持っているものです。

.... many other lines 
-image: registry.hub.docker.com/MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME:latest 

私は取得していますエラーは、それがKubernetes構成に来るとき

Failed to pull image "registry.hub.docker.com/MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME:latest": 
image pull failed for registry.hub.docker.com/MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME:latest, 
this may be because there are no credentials on this request. 
details: (Error: image MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME not found) 

は今、私は総ノウハウは何もしていないと言いますしかし、これまでのところ、どこが間違っていたのですか?ここで

+0

ます。https:// kubernetes.io/docs/user-guide/images/#specifying-imagepullsecrets-on-a-pod、via http://stackoverflow.com/questions/32726923/pulling-images-from-private-registry-in-kubernetes – larsks

+0

私の間違いの1つは、画像のドメインとして 'docker.io'を使用していないことでした。 –

+0

私は 'docker.io/MY_DOCKER_HUB_USERNAME/MY_IMAGE_NAME'と言っているはずです –

答えて

1

は展開の参照にそれをあなたのプライベートリポジトリ用の秘密鍵を作成する方法についての例である:

  1. kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL 
    
  2. 展開でそれを使用する秘密鍵を作成します

    apiVersion: extensions/v1beta1 
    kind: Deployment 
    metadata: 
        name: example 
        namespace: default 
    spec: 
        replicas: 1 
        strategy: 
        rollingUpdate: 
         maxSurge: 1 
         maxUnavailable: 0 
        type: RollingUpdate 
        template: 
        metadata: 
         labels: 
         run: example 
        spec: 
         containers: 
         - name: example 
         image: myregistryrepo/myimage:latest 
         ports: 
         - containerPort: 80 
          name: http 
         imagePullPolicy: Always 
         imagePullSecrets: 
         - name: myregistrykey 
    
おそらく
+0

これはAWS ECRでも使えますか? –

+0

はい、ちょうど 'aws ecr get-login'を使ってあなたの信任状を捜し、次にこのような秘密を作りなさい: ' kubectl作成秘密のドッカーレジストリmyregistrykey --docker-serverttps://xxxxx.dkr.ecr.us-east -1.amazonaws.com --docker-username = AWS -docker-password = DOCKER_PASSWORD -docker-email = none' – Camil

+1

AWSにデプロイする場合は、クラウドプロバイダを「aws」に設定すると、あなたのために。また、AWSにいない場合は、このRepo(https://github.com/upmc-enterprises/registry-creds)を見ることができます。これは@Camilのようにあなたのために信用を処理します。 –

関連する問題