gpt4 book ai didi

kubernetes-ingress - 有和没有主机的入口

转载 作者:行者123 更新时间:2023-12-04 16:39:40 25 4
gpt4 key购买 nike

真的很难理解和调试 ingress 的规则。谁能分享一个好的引用?
问题是入口如何在不指定主机的情况下工作?

    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/v1beta1networking.k8s.io/v1beta1

最佳答案

有很好的文档可用 here入门。它可能无法涵盖所有​​方面,但确实可以回答您的问题。 Ingress Controller 基本上是一个反向代理,并遵循类似的想法。

  • 您共享的代码段称为单一后端或 single service ingress . /路径将是默认的。这是唯一的条目,因此公开端口上的每个请求都将由绑定(bind)服务提供服务。
  • 主机入口; host: aws-dns-name.org只要您的 DNS 正在解析 aws-dns-name.org 就应该可以工作到集群中节点的 IP 或集群前端的 LB。对该 DNS 条目执行 ping 操作,看看它是否正确解析到目标 IP。试试 curl -H 'Host: aws-dns-name.org' IP_Address验证入口是否正确响应。 NGINX 正在使用 Host header 决定使用哪个后端服务。如果您使用不同的 Host 向 IP 发送流量条目,它不会连接到正确的服务,而是服务 default-backend .
  • 如果您正在做 path based routing ,也可以与基于主机的路由结合使用,NGINX 将根据截获的路径路由到正确的后端服务。但是,就像任何其他反向代理一样,它会将请求发送到指定的路径 (http://service:80/v1/)。您的应用程序可能没有监听 /v1/路径,所以你最终会得到 404。使用 rewrite-target注释让 NGINX 知道你在 / 服务.
  • API 资源版本确实会在 K8s 中切换,并且很难跟上。现在正确的注释是 networking.k8s.io/v1beta1 ( networking.k8s.io/v1 从 1.19 开始)即使旧版本正在运行但最终将停止运行。我见过集群升级中断应用程序,因为有人忘记更新 API 版本。
  • 关于kubernetes-ingress - 有和没有主机的入口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63474636/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com