【问题标题】:Kubernetes - Ingress with MinikubeKubernetes - Minikube 的入口
【发布时间】:2019-04-14 16:19:12
【问题描述】:

我正在通过玩 minikube 来学习 kubernetes。

这是我的 pod 部署文件,很好。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      component: web
  template:
    metadata:
      labels:
        component: web
    spec:
      containers:
        - name: myapp
          image: myid/myimage

我正在使用 NodePort 公开上述 pod。我可以在 30002 端口使用 minikube IP 访问。

apiVersion: v1
kind: Service
metadata:
  name: my-ip-service
spec:
  type: NodePort
  externalIPs:
  - 192.168.99.100
  selector:
    component: web
  ports:
    - port: 3000
      nodePort: 30002
      targetPort: 8080

现在我想使用 ingress 访问端口 80 的应用程序,它将请求转发到端口 3000 的 ip-service。它不起作用

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: my-ip-service
    servicePort: 3000

如果我尝试访问入口,地址为空白。

NAME           HOSTS   ADDRESS   PORTS   AGE
test-ingress   *                 80      41m

如何在 minikube 中使用 ingress?或者如何将 minikube ip 与入口服务绑定 - 以便应用程序可以在不使用 nodeport 的情况下暴露在外面

【问题讨论】:

  • 请检查此问题是否与您的问题有关:stackoverflow.com/questions/51243717/…
  • 谢谢 Mr.Seth,我已经看到了这个答案。它不起作用。我确实在 /etc/hosts 中添加了一个条目 -
  • @SethDifley ,谢谢 Seth,正如您所提到的,如果我们需要使用入口,k8s 似乎只能与某种外部负载均衡器一起使用。 blog.getambassador.io/…。我不知道你为什么删除你的答案

标签: kubernetes minikube kubernetes-ingress


【解决方案1】:

我认为您缺少 minikube 本身的入口控制器资源。在 K8s 上创建 ingress-controller 资源有很多可能的方法,但我认为对您而言,开始使用 minikube 的最佳方法是遵循this 文档。

一旦你开始工作,不要忘记阅读Ingress

【讨论】:

    【解决方案2】:

    您可以通过以下方式获取 minikube 节点的 IP 地址:

    minikube ip
    

    入口的 IP 地址不会填充到 minikube 中,因为 minikube 缺少负载平衡器。如果您希望为您的 minikube 集群提供类似于负载均衡器的功能,https://github.com/knative/serving/blob/master/docs/creating-a-kubernetes-cluster.md#loadbalancer-support-in-minikube 建议运行以下命令来修补您的集群:

    sudo ip route add $(cat ~/.minikube/profiles/minikube/config.json | jq -r ".KubernetesConfig.ServiceCIDR") via $(minikube ip)
    kubectl run minikube-lb-patch --replicas=1 --image=elsonrodriguez/minikube-lb-patch:0.1 --namespace=kube-system
    

    【讨论】:

    • 感谢您的宝贵时间。它没有回答这个问题。我知道如何获得 minkube ip。我的问题是如何使用入口而不是 nodeport 来公开应用程序
    • 链接失效
    猜你喜欢
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2022-01-11
    • 2017-07-24
    • 2020-06-19
    • 2016-12-05
    • 2021-12-10
    相关资源
    最近更新 更多