如何将流量从 127.0.0.1 映射到 Kubernetes Ingress Controller

How to map traffic from 127.0.0.1 to Kubernetes Ingress Controller

我正在尝试在没有任何 public 云提供商的情况下在我的系统上安装和设置 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

我想要这个是因为我想从 public 互联网访问这个集群。我没有为 kubernetes 使用任何 public 云提供商。

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

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

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