【问题标题】:How to expose a web application via ingress in Kubernetes?如何通过 Kubernetes 中的入口公开 Web 应用程序?
【发布时间】:2019-04-09 11:03:40
【问题描述】:

我想在 Kubernetes 中公开一些可以从外部客户端访问的 Web 服务,很多人建议使用 ingress。我已经按照指南部署了一个入口控制器:https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md

我不明白下一步要做什么,有人可以通过示例帮助解释该步骤吗?

【问题讨论】:

    标签: kubernetes kubernetes-ingress


    【解决方案1】:

    您需要创建与该 Ingress 相关联的 Ingress 资源和服务。例如对于 nginx 入口控制器:

    cat <<EOF
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: nginx
        nginx.ingress.kubernetes.io/rewrite-target: /
      name: foo-boo
      namespace: default
    spec:
      rules:
      - host: foo.domain
        http:
          paths:
          - backend:
              serviceName: http-svc
              servicePort: 80
            path: /mypath
    EOF | kubectl apply -f -
    

    然后你就可以看到入口了:

    $ kubectl get ingress foo-boo
    NAME      HOSTS         ADDRESS                PORTS   AGE
    foo-boo   foo.domain    someloadbalancer.com   80      6d11h
    

    然后你可以用curl这样的东西来测试它:

    $ curl -H 'Host: foo.domain' http://someloadbalancer.com/mypath
    

    更多关于 Kubernetes Ingress here

    【讨论】:

    • 如何从浏览器访问,"foo.domain/mypath" 可以吗?
    • 您必须在/etc/hosts 文件中添加一个条目,如果它不是有效的 DNS。
    • @Rico,someloadbalancer.com 来自哪里?如何在 minikube 中做到这一点?
    • 如果您使用的是 AWS 或云提供商。我相信使用 minikube 你会得到一个 IP 地址
    猜你喜欢
    • 2020-06-11
    • 2020-03-09
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 2012-07-15
    相关资源
    最近更新 更多