2017-06-13 52 views
0

我的笔记本电脑上安装了ubuntu。无法通过从外部私人注册表中提取图像来启动minikube中的窗格

我开始了一个私人码头工人注册表(启用了SSL + htpasswd的担保),并增加其覆盖网络(这样它可以从其他主机访问/ VMS)

这里是代码(泊坞窗,compose.yaml) :

version: "3" 

services: 
registry: 
    restart: always 
    image: registry:2 
    ports: 
    - 5000:5000 
    environment: 
    REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt 
    REGISTRY_HTTP_TLS_KEY: /certs/domain.key 
    REGISTRY_AUTH: htpasswd 
    REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd 
    REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm 
    volumes: 
    - /certs:/certs 
    - ~/caas_rd/workspace/ci_cd_pipeline/registry_setup:/auth 
    networks: 
    - overlaynetwork 
networks: 
    overlaynetwork: 

所以我的注册表在以下链接运行(与DNS,我可以在浏览器验证):https://home-thinkpad-t420s:5000/v2/_catalog

现在我安装“Minikube”我的笔记本电脑。 & & ssh it by“minikube ssh”。

我创建上minikube VM &一个文件夹 “/etc/docker/certs.d” 添加的证书按照指令:

https://docs.docker.com/engine/security/certificates/#understanding-the-configuration

我还修改的/ etc /主机& &所附ca.cert在/etc/ssl/certs/ca-certificates.crt上。

,并通过minikube VM重新启动搬运工服务:在此之后须藤systemctl重启docker.service

我能够通过“泊坞窗登录&泊坞窗拉” &拉动minikube VM图像也以“与卷曲( cacert +用户名/密码)“ 上面的工作完全正常,意味着我可以成功访问/拉Minikube虚拟机内的私人注册表映像。

然后我试图建立一个秘密(我的笔记本电脑与kubectl创建-f)定义如下:

apiVersion: "v1" 
kind: "Secret" 
metadata: 
    name: "ssl-proxy-secret" 
    namespace: "default" 
data: 
proxycert: "LS0..." 
proxykey: "LS0t..." 
htpasswd: "YWRt..." 

并创建了一个吊舱(我的笔记本电脑与kubectl创建-f)定义如下:

apiVersion: v1 
kind: Pod 
metadata: 
    name: private-jenkins 
spec: 
    containers: 
    - name: private-jenkins-container 
    image: home-thinkpad-t420s:5000/my-jenkins 
    volumeMounts: 
    - name: secrets 
     mountPath: /etc/secrets 
    volumes: 
    - name: secrets 
    secret: 
     secretName: ssl-proxy-secret 

但是当我尝试运行该吊舱,它抛出错误:

未能拉形象 “家庭的ThinkPad-的T420s:5000 /我 - 詹金斯”:RPC错误:代码= 2 DESC =错误:image my-jenkins没有发现 错误同步荚,跳绳:未能“StartContainer”为“私人詹金斯容器”与ErrImagePull:“RPC错误:代码= 2 DESC =错误:像我 - 詹金斯找不到”

如果我能通过卷曲成功拖动minikube vm中的图像& docker login/pull ......然后当为什么创建pod时出现上述错误而失败?

回答

0

您可以从secret.yml文件中的证书中删除那些双引号escpecially并再次尝试旋转窗格吗?

+0

运气不好........去掉双引号后仍然出现同样的错误 –

+0

pod中的命名空间是什么?我假定默认 –

0

您需要改为创建一个单独的kubernetes registry secret。可以使用这个命令:

kubectl create secret docker-registry <secret-name> \ 
--docker-email=<your-email> --docker-username=<registry-user> \ 
--docker-password=<registry-password> --docker-server=<registry-server-domain> 

之后,你可以更新pod configuration如下:

apiVersion: v1 
kind: Pod 
metadata: 
    name: private-jenkins 
spec: 
    containers: 
    - name: private-jenkins-container 
    image: home-thinkpad-t420s:5000/my-jenkins 
    imagePullSecrets: 
    - name: <secret-name> 

参考:link

希望它能帮助!

相关问题