如何从Vagrant上的Kubernetes访问私人Docker Hub存储库

我无法从我的私人Docker Hub存储库中将我的本地Kubernetes设置运行在Vagrant上:

容器“hellonode”在舱“hellonode-n1hox”正在等待启动:图像不能被拉

无法拉图像“用户名/ hellonode”:错误:图像用户名/ hellonode:最新未find

我已经在本地通过Vagrant在本地设置了Kubernetes,并创build了一个名为“dockerhub”的密码,其中包含kubectl创build秘密的docker-registry dockerhub –docker-server = https://registry.hub.docker.com/ –docker-username = username –docker-password = … –docker-email = …这是我作为图像提供秘密提供的。

我正在运行Kubernetes 1.2.0。

从Kubernetes YAML中提取私有DockerHub托pipe的图像:

运行这些命令:

DOCKER_REGISTRY_SERVER=https://index.docker.io/v1/ DOCKER_USER=Type your dockerhub username, same as when you `docker login` DOCKER_EMAIL=Type your dockerhub email, same as when you `docker login` DOCKER_PASSWORD=Type your dockerhub pw, same as when you `docker login` kubectl create secret docker-registry myregistrykey \ --docker-server=$DOCKER_REGISTRY_SERVER \ --docker-username=$DOCKER_USER \ --docker-password=$DOCKER_PASSWORD \ --docker-email=$DOCKER_EMAIL 

如果您在DockerHub上的用户名是DOCKER_USER ,并且您的私有DOCKER_USER被称为PRIVATE_REPO_NAME ,并且您要拖出的图像被标记为latest ,请创build此example.yaml文件:

 apiVersion: v1 kind: Pod metadata: name: whatever spec: containers: - name: whatever image: index.docker.io/DOCKER_USER/PRIVATE_REPO_NAME:latest imagePullPolicy: Always command: [ "echo", "SUCCESS" ] imagePullSecrets: - name: myregistrykey 

然后运行:

 kubectl create -f example.yaml 

创buildK8秘密:

 apiVersion: v1 kind: Secret metadata: name: repositorySecretKey data: .dockerconfigjson: <base64 encoded docker auth config> type: kubernetes.io/dockerconfigjson 

然后在pod或者rc config中提到这个秘密。 例如:

 apiVersion: v1 kind: Pod metadata: name: test-pod spec: containers: - name: test-pod image: quay.io/example/hello:1.1 imagePullSecrets: - name: repositorySecretKey 

Docker身份validationconfiguration

 { "https://quay.io": { "email": ".", "auth": "<base64 encoded auth token>" } } 

要么

 kubectl create secret docker-registry myregistrykey \ --docker-server=DOCKER_REGISTRY_SERVER \ --docker-username=DOCKER_USER \ --docker-password=DOCKER_PASSWORD \ --docker-email=DOCKER_EMAIL 

您可以按照这些说明如何configuration节点以对私有存储库进行身份validation ,以便configurationkubelet以使Docker使用您的凭据,或者使用适用于pod的+ Phagun Baya解决scheme和imagePullSecrets。