【问题标题】:How to map traffic from 127.0.0.1 to Kubernetes Ingress Controller如何将流量从 127.0.0.1 映射到 Kubernetes Ingress Controller
【发布时间】:2021-04-20 06:16:58
【问题描述】:

我正在尝试在没有任何公共云提供商的情况下在我的系统上安装和设置 kubernetes。

我尝试了什么

我能够创建服务并通过入口控制器 ip 访问它们

NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP    PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.102.16.16     192.168.49.2   80:30548/TCP,443:31812/TCP   109m
ingress-nginx-controller-admission   ClusterIP      10.108.137.156   <none>         443/TCP                      109m

这是我的入口

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: odoo-ingress
spec:
  rules:
  - host: myservice.local.com
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: test-service
            port:
              number: 80

我的主机文件包含

192.168.49.2    myservice.local.com

我可以在 myservice.local.com 成功访问我的服务和部署。

我想要什么:

public internet --> Ingress Controller --> Kubernetes Services

我希望我的入口控制器监听 127.0.0.1 并且在主机文件中应该是

127.0.0.1    myservice.local.com

我想要这个,因为我想从公共互联网访问这个集群。我没有为 Kubernetes 使用任何公共云提供商。

【问题讨论】:

  • 如果你想从公共互联网访问这个集群,你希望入口列出的公共 IP 不是吗?
  • 是的,入口应该监听我的公共 IP。但事实并非如此
  • 您是否尝试过从不同的主机访问入口?该远程客户端是否使用 myservice.local.com 访问入口?
  • 你在使用 minikube?
  • @AndriiLitvinov 是的,我尝试从不同的电脑访问。但我无法访问我的电脑(安装了 kubernets)

标签: nginx kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

Minikube 在虚拟机上运行,​​因此在您的机器中还有另一个带有 kuberentes 的虚拟机。 Ingress 工作,但只有当你在你的机器上。你无法访问 Kubernetes 内部,因为你的主机和虚拟机之间没有代理。

public internet ->>> your machine ->>> virtual machine ->> ingress controller

切换到 microk8s(无虚拟机) 或在您的机器上创建 nginx 代理,并使用您的 kubernetes 将所有请求发送到虚拟机。

【讨论】:

  • 或者使用--driver=none运行minikube
猜你喜欢
  • 2020-08-12
  • 1970-01-01
  • 2018-03-04
  • 2020-03-28
  • 2021-12-03
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 2020-01-15
相关资源
最近更新 更多