Google Kubernetes Engine 入口注释

Google Kubernetes Engine ingress annotations

我在 google Kubernetes 引擎上配置 Ingress。我是 ingress 的新手,但据我所知,ingress 可以为不同的负载均衡器提供服务,不同的 LB 应该进行不同的配置。

我已经开始在 GKE 上进行简单的入口配置:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: basic-ingress

spec:
  rules:
  - http:
      paths:
      - path: /*
        backend:
          serviceName: web-np
          servicePort: 8080
      - path: /v2/keys
        backend:
          serviceName: etcd-np
          servicePort: 2379

它工作正常所以我有 2 个不同的 NodePort 服务 web-np 和 etcd-np 。但现在我需要用一些重写规则扩展这个逻辑,以便指向 /service1 的请求 - 将被重定向到另一个 service1-np 服务,但在 /service1/hello.html 之前必须替换为 [=16] =].这就是为什么我有以下问题:

Ingress - API object that manages external access to the services in a cluster, typically HTTP.

Ingress may provide load balancing, SSL termination and name-based virtual hosting.

Kubernetes.io: Ingress

Kubernetes 可以有多个 Ingress 控制器。该控制器彼此不同。您在此特定问题中提到的 Ingress 个控制器是:

您粘贴的

Ingress 配置将使用 Ingress-GCE 控制器。如果你想切换到 Ingress-nginx 一个,你需要部署它并设置一个注释,如:

  • kubernetes.io/ingress.class: "nginx"

How can I configure rewrite in ingress and if it is possible with default load balancer.

这里有一个正在进行的功能请求,以支持使用 Ingress-GCE 进行重写:Github.com: Ingress-GCE: Rewrite

您可以使用 Ingress-nginx 来支持重写。 有一个关于部署它的官方文档:Kubernetes.github.io: Ingress-nginx: Deploy

有关重写的更多资源,您可以使用:


What is default load balancer on GKE.

如果您使用默认 Ingress-GCE 选项创建 Ingress 资源,您将创建一个 L7 HTTP&HTTPS LoadBalancer

如果您在 GKE 中创建 LoadBalancer 类型的服务,您将创建一个 L4 Network Load Balancer

如果您在 GKE 集群中部署一个 Ingress-nginx 控制器,您将创建一个指向 Ingress-nginx 控制器的 L4 网络负载均衡器,之后它将相应地将流量路由到您的 Ingress定义。如果您愿意使用 Ingress-nginx,则需要指定:

  • kubernetes.io/ingress.class: "nginx"

在您的 Ingress 定义中。

请看这篇文章:Medium.com: Google Cloud: Kubernetes Nodeport vs Loadbalancer vs Ingress


Where can I find a list of all annotations to it. I have thought that the full list is on https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/ but there is a completly different list and there is no kubernetes.io/ingress.global-static-ip-name annotation that is widely used in google examples.

您提供的带有注释的 link 是专门针对 Ingress-nginx 的。此注释不适用于 Ingress-GCE

GCP 示例中使用的注释特定于 Ingress-GCE

您可以在 Issuetracker.google.com 上为 Ingress-GCE 创建可用注释列表的功能请求。

回答一个老问题,但希望它能对某人有所帮助。

我在 ingress-gce 的源代码中找到 GCP Ingresslist of annotations