当前位置: 首页 > 知识库问答 >
问题:

127.0.0.1:5000:GetSockopt:在Minikube中拒绝连接

顾俊茂
2023-03-14

在我本地的Ubuntu工作站上使用minikube和docker,我在minikube web UI中得到以下错误:

Failed to pull image "localhost:5000/samples/myserver:snapshot-180717-213718-0199": rpc error: code = Unknown desc = Error response from daemon: Get http://localhost:5000/v2/: dial tcp 127.0.0.1:5000: getsockopt: connection refused

在我创建了下面的部署配置之后:

kubectl apply -f hello-world-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: hello-world
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: hello-world
        tier: backend
    spec:
      containers:
      - name: hello-world
        image: localhost:5000/samples/myserver:snapshot-180717-213718-0199
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        env:
        - name: GET_HOSTS_FROM
          value: dns
        ports:
        - containerPort: 8080
REPOSITORY                                 TAG                           IMAGE ID            CREATED             SIZE
samples/myserver                           latest                        aa0a1388cd88        About an hour ago   435MB
samples/myserver                           snapshot-180717-213718-0199   aa0a1388cd88        About an hour ago   435MB
k8s.gcr.io/kube-proxy-amd64                v1.10.0                       bfc21aadc7d3        3 months ago        97MB
eval $(minikube docker-env)

基于此:

https://github.com/docker/for-win/issues/624

我补充说:

    "InsecureRegistry": [
        "localhost:5000",
        "127.0.0.1:5000"
    ],
$ kubectl port-forward --namespace kube-system $(kubectl get po -n kube-system | grep kube-registry-v0 | awk '{print $1;}') 5000:5000
$ kubectl port-forward --namespace kube-system $(kubectl get po -n kube-system | grep kube-registry-v0 | awk '{print $1;}') 5000:5000
Forwarding from 127.0.0.1:5000 -> 5000
Forwarding from [::1]:5000 -> 5000

根据BMitch的回答,我现在尝试创建一个本地docker存储库,并通过以下方式向其推送一个图像:

$ docker run -d -p 5000:5000 --restart always --name registry registry:2
$ docker pull ubuntu
$ docker tag ubuntu localhost:5000/ubuntu:v1
$ docker push localhost:5000/ubuntu:v1

接下来,当我处理docker图像时,我会得到:

$ docker images
REPOSITORY                                      TAG                           IMAGE ID            CREATED             SIZE
ubuntu                                          latest                        74f8760a2a8b        4 days ago          82.4MB
localhost:5000/ubuntu                           v1                            74f8760a2a8b        4 days ago          82.4MB

然后,我将deploymentconfig hello-world-deployment.yaml更新为:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: hello-world
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: hello-world
        tier: backend
    spec:
      containers:
      - name: hello-world
        image: localhost:5000/ubuntu:v1
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        env:
        - name: GET_HOSTS_FROM
          value: dns
        ports:
        - containerPort: 8080
kubectl create -f hello-world-deployment.yaml
 Failed to pull image "localhost:5000/ubuntu:v1": rpc error: code = Unknown desc = Error response from daemon: Get http://localhost:5000/v2/: dial tcp 127.0.0.1:5000: getsockopt: connection refused 

所以Minikube似乎不允许看到我刚刚创建的本地注册表?

共有1个答案

赖绪
2023-03-14

看起来您的计算机上的localhost和minikube VM上下文中使用的localhost面临一个问题。要使注册表工作,您必须设置一个额外的端口转发。

如果您的minikube安装当前由于多次尝试修复注册表问题而中断,我建议重新启动minikube环境:

minikube stop && minikube delete && rm -fr $HOME/.minikube &&  minikube start

接下来,获取kube注册表yaml文件:

curl -O https://gist.githubusercontent.com/coco98/b750b3debc6d517308596c248daf3bb1/raw/6efc11eb8c2dce167ba0a5e557833cc4ff38fa7c/kube-registry.yaml
kubectl create -f kube-registry.yaml
minikube ssh && curl localhost:5000
kubectl port-forward --namespace kube-system $(kubectl get po -n kube-system | grep kube-registry-v0 | awk '{print $1;}') 5000:5000

如果您想从您的机器上共享您的私人注册表,您可能有兴趣共享minikube博客条目的本地注册表。

 类似资料:
  • Selenium Webdriver(2.53)使用testNG和java(jdk 8)。Mozilla Firefox(46)在页面打开时立即崩溃,并显示错误消息: org.apache.http.conn.连接到127.0.0.1:7055[/127.0.0.1]失败:连接拒绝:连接

  • 我是库伯内特斯的初学者。我正在尝试安装迷你库贝,想在库伯内特斯中运行我的应用程序。我正在使用乌班图 16.04 我已遵循此处提供的安装说明https://kubernetes.io/docs/setup/learning-environment/minikube/#using-带有http代理的minikube 问题1:在安装了kubectl、virtualbox和minikube之后,我运行了命

  • 当我在Consult服务器和客户端上运行任何时,会出现此错误。端口处于侦听状态,我确保没有防火墙阻止。当在Consult客户端中运行相同内容时,我会出现以下错误:

  • 问题内容: 在Digitalocean的Ubuntu 16.4中安装了Redis。 我已经通过编辑编辑将默认的redis服务器更改为我在Digitalocean中的IP 那之后,我试着和所有回应这样的: 在127.0.0.1:6379无法连接到Redis的:连接被拒绝 但是如果 我得到: 这正常吗?或者该怎么办? 问题答案: 您应该做什么取决于您希望它如何工作… 如果您希望能够通过任何网络接口连接

  • 我使用Docker注册表和Openshift原始映像运行RHEL虚拟机: 我可以成功地从虚拟机本身通过docker拉localhost:5000/cowsay-dockerfile: 2.0 但是,在“源”容器内,与 new-app 等效的命令将失败: 我尝试了新应用程序的各种参数,包括2.0标记和不带2.0标签,以及如下(使用不安全的注册表启动): 我觉得我必须接近将图像放入Openshift

  • 我试图让一个本地kubernetes集群与Minikube和Istio一起运行。我遵循了istio文档中的说明:https://istio.io/docs/tasks/installing-istio.html 然后,我按照以下步骤在此处安装示例BookInfo示例:https://istio.io/docs/samples/bookinfo.html 然而,当我尝试卷曲网关URL时,我得到了一个