代码之家  ›  专栏  ›  技术社区  ›  Dan

带主机和不带主机的入口

  •  0
  • Dan  · 技术社区  · 4 年前

    很难理解和调试入口规则。谁能分享一个好的推荐信吗?

        apiVersion: extensions/v1beta1
        kind: Ingress
        metadata:
          annotations:
             nginx.ingress.kubernetes.io/force-ssl-redirect: \"false\"
          name: my-app
        spec:
          rules:
            http:
              paths:
              - backend:
                path: /
                  serviceName: my-app
                  servicePort: http
    

    在分配主机时(例如。 - host: aws-dsn-name.org )它不起作用。 path: /v1/ 它也不起作用:(。

    如何调试/检查映射是否正确完成?

    extensions/v1beta1 networking.k8s.io/v1beta1

    0 回复  |  直到 4 年前
        1
  •  4
  •   Faheem    4 年前

    有相当好的文档可用 here 开始吧。它可能不包括所有方面,但它确实回答了你的问题。入口控制器基本上是一个反向代理,遵循类似的思想。

    1. single service ingress . /

    2. 主机入口; host: aws-dns-name.org aws-dns-name.org 到群集中某个节点的IP或群集前面的LB。对该DNS条目执行ping操作,查看它是否正确解析到目标IP。尝试 curl -H 'Host: aws-dns-name.org' IP_Address Host 标头以决定要使用哪个后端服务。如果你用不同的 Host 入口,它将无法连接到正确的服务,并将服务 default-backend .

    3. 如果你在做 path based routing ,也可以与基于主机的路由相结合,NGINX会根据截获的路径路由到正确的后端服务。但是,就像任何其他反向代理一样,它会将请求发送到指定的路径(http://服务:80/v1/)。您的应用程序可能没有监听 /v1/ 所以你会得到一个404。使用 rewrite-target /

    4. API资源版本在K8s中确实会切换,很难跟上。现在正确的注释是 networking.k8s.io/v1beta1 ( networking.k8s.io/v1