带有Minikube的ImagePullBackOff本地存储库

Xer*_*ero 25 docker kubernetes kitematic

我正在尝试使用minikube和kitematic在我的本地机器上测试kubernetes.但是,kubernetes无法在我的本地存储库(ImagePullBackOff)中提取图像.

我尝试解决这个问题:使用Minikube时无法从私人仓库中提取泊坞窗图像

但我没有/etc/init.d/docker,我认为这是因为运动学?(我在OS X上)

编辑:

我安装了https://github.com/docker/docker-registry,和

docker tag local-image-build localhost:5000/local-image-build

docker push localhost:5000/local-image-build
Run Code Online (Sandbox Code Playgroud)

我的kubernetes yaml包含:

spec:
  containers:
  - name: backend-nginx
    image: localhost:5000/local-image-build:latest
    imagePullPolicy: Always
Run Code Online (Sandbox Code Playgroud)

但它仍然没有工作......日志:

Error syncing pod, skipping: failed to "StartContainer" 
for "backend-nginx" with ErrImagePull: "Error while pulling image: 
Get http://127.0.0.1:5000/v1/repositories/local-image-build/images: 
dial tcp 127.0.0.1:5000: getsockopt: connection refused
Run Code Online (Sandbox Code Playgroud)

编辑2:

我不知道我是否走上了好路,但我发现了这个:

http://kubernetes.io/docs/user-guide/images/

但我不知道我的DOCKER_USER是什么......

kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
Run Code Online (Sandbox Code Playgroud)

编辑3

现在我上了我的吊舱:

Failed to pull image "local-image-build:latest": Error: image library/local-image-build not found
Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error: image library/local-image-build not found"
Run Code Online (Sandbox Code Playgroud)

帮帮我,我疯了.

编辑4

Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error response from daemon: Get https://192.168.99.101:5000/v1/_ping: tls: oversized record received with length 20527"
Run Code Online (Sandbox Code Playgroud)

我补充说:

EXTRA_ARGS='
    --label provider=virtualbox
    --insecure-registry=192.168.99.101:5000
Run Code Online (Sandbox Code Playgroud)

到我的docker配置,但它仍然不起作用,相同的消息....

顺便说一句,我改变了我的yaml:

 spec:
      containers:
      - name: backend-nginx
        image: 192.168.99.101:5000/local-image-build:latest
        imagePullPolicy: Always
Run Code Online (Sandbox Code Playgroud)

我这样运行我的注册表:

docker run -d -p 5000:5000 --restart=always --name myregistry registry:2
Run Code Online (Sandbox Code Playgroud)

Dou*_*oug 18

使用minikube docker注册表而不是本地docker

https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/#create-a-docker-container-image

设置码头工具指向minikube

eval $(minikube docker-env)

推到迷你插孔码头

docker build -t hello-node:v1 .

将部署设置为不拉取IfNotPresent

K8S默认设置为"始终"更改为"IfNotPresent"

imagePullPolicy: IfNotPresent

相关问题


Xer*_*ero 13

我想我已经解决了

minikube start --vm-driver="virtualbox" --insecure-registry="$REG_IP":80
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

minikube start
Run Code Online (Sandbox Code Playgroud)

$ REG_IP是:

REG_IP=docker-machine ip registry
Run Code Online (Sandbox Code Playgroud)

资源

  • `docker-machine` 现已被取代/弃用 https://docs.docker.com/machine/overview/ (2认同)

Hom*_*er6 5

如果您使用的是--vm-driver=none,则需要将imagePullPolicy设置为Never

imagePullPolicy: Never:假设图像存在于本地。没有尝试拉取图像。