【问题标题】:curl: (7) Failed to connect to 192.168.99.100 port 30790: Connection refusedcurl: (7) 连接 192.168.99.100 端口 30790 失败:连接被拒绝
【发布时间】:2019-10-31 01:14:31
【问题描述】:

我正在编写有关创建 Kubernetes 服务以指向大使部署的教程。

教程:https://www.bogotobogo.com/DevOps/Docker/Docker-Envoy-Ambassador-API-Gateway-for-Kubernetes.php

在运行命令时

curl $(minikube service --url ambassador)/httpbin/ip

我遇到了错误

curl: (7) Failed to connect to 192.168.99.100 port 30790: Connection refused
curl: (3) <url> malformed 

我其实可以消除的错误

curl: (3) <url> malformed

通过运行

minikube service --url ambassador
http://192.168.99.100:30790

然后

curl http://192.168.99.100:30790/httpbin/ip

我已经尝试过这个答案curl: (7) Failed to connect to 192.168.99.100 port 31591: Connection refused 并且这个答案中提到的步骤已经在博客中,它没有工作。

这是来自博客的代码,用于 Ambassador-svc.yaml

---
apiVersion: v1
kind: Service
metadata:
  labels:
    service: ambassador
  name: ambassador
  annotations:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v0
      kind:  Mapping
      name:  httpbin_mapping
      prefix: /httpbin/
      service: httpbin.org:80
      host_rewrite: httpbin.org
spec:
  type: LoadBalancer
  ports:
  - name: ambassador
    port: 80
    targetPort: 80
  selector:
    service: ambassador

这可能是与 VM 相关的问题吗?

另外,我尝试先学习this 教程,但不幸的是,遇到了同样的错误。

如果我还需要其他任何事情,请告诉我。

编辑:

1.正如评论中所问的,这里是

的输出
kubectl get pods --namespace=kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-fb8b8dccf-qkxwm            1/1     Running   0          5h16m
coredns-fb8b8dccf-rrn4f            1/1     Running   0          5h16m
etcd-minikube                      1/1     Running   0          5h15m
kube-addon-manager-minikube        1/1     Running   4          5h15m
kube-apiserver-minikube            1/1     Running   0          5h15m
kube-controller-manager-minikube   1/1     Running   0          3h17m
kube-proxy-wfbxs                   1/1     Running   0          5h16m
kube-scheduler-minikube            1/1     Running   0          5h15m
storage-provisioner                1/1     Running   0          5h16m

运行后

kubectl apply -f https://docs.projectcalico.org/v3.7/manifests/calico.yaml
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-78f8f67c4d-zqtl2   1/1     Running   0          65s
calico-node-27lcq                          1/1     Running   0          65s
coredns-fb8b8dccf-qkxwm                    1/1     Running   2          22h
coredns-fb8b8dccf-rrn4f                    1/1     Running   2          22h
etcd-minikube                              1/1     Running   1          22h
kube-addon-manager-minikube                1/1     Running   5          22h
kube-apiserver-minikube                    1/1     Running   1          22h
kube-controller-manager-minikube           1/1     Running   0          8m27s
kube-proxy-wfbxs                           1/1     Running   1          22h
kube-scheduler-minikube                    1/1     Running   1          22h
storage-provisioner                        1/1     Running   2          22h

【问题讨论】:

  • 检查 DNS pod 是否准备就绪...添加 kubectl get pods --namespace=kube-system 的输出
  • 你用的是哪个网络服务?Calico ,fannel?
  • 我在我的系统上本地运行该服务,即通过 minikube。我不认为 Calico 和 fannel 在本地使用。如果是的话,你能告诉我如何在本地找到这个网络服务吗?

标签: kubernetes kubectl minikube ambassador


【解决方案1】:

kubectl get pods --namespace=kube-system 应该有网络服务 pod

所以您还没有设置用于 DNS 的网络策略。

尝试使用网络策略 Calico 通过使用命令

kubectl apply -f https://docs.projectcalico.org/v3.7/manifests/calico.yaml

立即检查kubectl get pods --namespace=kube-system

你应该得到这样的输出:-

NAMESPACE    NAME                                       READY  STATUS   RESTARTS  AGE
kube-system  calico-kube-controllers-6ff88bf6d4-tgtzb   1/1    Running  0         2m45s
kube-system  calico-node-24h85                          1/1    Running  0         2m43s
kube-system  coredns-846jhw23g9-9af73                   1/1    Running  0         4m5s
kube-system  coredns-846jhw23g9-hmswk                   1/1    Running  0         4m5s
kube-system  etcd-jbaker-1                              1/1    Running  0         6m22s
kube-system  kube-apiserver-jbaker-1                    1/1    Running  0         6m12s
kube-system  kube-controller-manager-jbaker-1           1/1    Running  0         6m16s
kube-system  kube-proxy-8fzp2                           1/1    Running  0         5m16s
kube-system  kube-scheduler-jbaker-1                    1/1    Running  0         5m41s

【讨论】:

  • 我按照你说的运行了命令,但还是出现同样的错误。
  • kubectl get pods --namespace=kube-system 的输出如上所示?calico pod running?
  • 输出太大,无法评论,请查看编辑。
  • 这个问题与 kubectl expose 命令有关吗?因为它没有在博客中使用。
  • 其实我做的是与外界连接..即尝试ping www.google.com,它会发送数据包并接收。
【解决方案2】:

以下是解决问题的清单:

  1. 您是否至少创建了一个侦听器 (CRD)?

    如果您没有创建至少一个侦听器,则边缘堆栈 pod 不会在任何端口上响应请求。因此,按照官方文档中的报告创建 Listeners 对象:
    https://www.getambassador.io/docs/edge-stack/latest/tutorials/getting-started/
    请注意,大使部署中定义的默认端口以及 edge-stack pod 中定义的默认端口是 80808443,因此请避免更改它们,除非你知道你在做什么。您可以使用以下命令检查是否定义了任何现有侦听器:kubectl get Listener -n ambassador 或仅kubectl get Listener,如果您可能错误地使用了默认命名空间。

  2. 您是否定义了至少一个 LoadBalancer 类型的服务,它引用了大使服务?

    通常不需要这样做,因为一旦您在节点上部署了 Ambassador,您应该在命名空间 ambassador 中拥有服务 edge-stack,该服务配置为 LoadBalancer 因此它会暴露 30000-32767 范围内的一些端口,并将流量重定向到 80808443。如果您手动创建了 LoadBalancer 类型的 Service,请确保在 porttargetPort 字段中使用正确的端口.这些端口是 edge-stack 部署使用的端口,默认情况下是 80808443

  3. 检查 edge-stack pod 是否正在响应其端口上的请求

    最简单的方法是使用 Kubernates 或您的云提供商的基于 Web 的 UI,然后在 edge-stack pod 中执行 bash。使用默认的 Kubernetes 仪表板,您只需到达 pod,单击垂直的三个点 -> Exec。

    如果您在本地运行ambassador,您可以使用eval $(minikube docker-env),使用docker ps | grep edge-stack 搜索相关容器,一旦获得其ID,您就可以使用命令docker exec -it &lt;id&gt; bash 执行bash

    最后运行curl -Lki http://127.0.0.1:8080

    你应该得到这样的东西:

    HTTP/1.1 404 Not Found
    date: Tue, XX Xxx XXXX XX:XX:XX XXX
    server: envoy
    content-length: 0

    如果 curl 得到响应而不是“连接被拒绝”,则服务在 pod 上成功运行,并且问题必须在服务、部署或侦听器配置中。您可以尝试使用服务的集群 IP edge-stack 而不是 127.0.0.1,但您需要从不同于 edge-stack 的 pod 运行 curl 命令。您可以使用自己的 pod 或 exec 到其他大使 pod,它们是:edge-stack-agentedge-stack-redis

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多