Google Kubernetes Engine ingress annotations



我在google Kubernetes引擎上配置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替换为/hello.html之前。这就是为什么我有以下问题:

  • 如何在入口中配置重写,以及是否可以使用默认负载均衡器。
  • 什么是 GKE 上的默认负载均衡器。
  • 在哪里可以找到所有注释的列表。我以为完整列表在 https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/但有一个完全不同的列表,并且没有在谷歌示例中广泛使用kubernetes.io/ingress.global-static-ip-name注释。

Ingress- 用于管理对集群中服务的外部访问的 API 对象,通常是 HTTP。

入口可以提供负载平衡、SSL 终止和基于名称的虚拟主机。

Kubernetes.io:入口

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

  • Ingress-GCE-GKE群集的默认Ingress资源:
    • Github.com:Kubernetes:Ingress GCE
  • Ingress-nginx- 可以部署到GKE集群的替代Ingress控制器:
    • Github.com:Kubernetes:Ingress-nginx

粘贴Ingress配置将使用Ingress-GCE控制器。如果要切换到Ingress-nginx,则需要部署它并设置注释,如下所示:

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

如何在入口中配置重写,以及是否可以使用默认负载均衡器。

有一个正在进行的功能请求支持使用Ingress-GCE重写:Github.com:入口GCE:重写。

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

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

  • Kubernetes.github.io:入口 nginx:示例:重写
  • Stackoverflow.com:入口nginx如何为应用程序提供服务 - 这是一个答案,显示了如何配置游乐场以尝试重写
  • 的示例

什么是 GKE 上的默认负载均衡器。

如果使用默认Ingress-GCE选项创建Ingress资源,则将创建 L7 HTTP&HTTPS 负载均衡器。

如果在GKE中创建类型LoadBalancer的服务,则将创建 L4 网络负载均衡器

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

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

在您的Ingress定义中。

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


在哪里可以找到所有注释的列表。我以为完整列表在 https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/,但有一个完全不同的列表,并且没有在谷歌示例中广泛使用的 kubernetes.io/ingress.global-static-ip-name 注释。

您提供的注释链接专门用于Ingress-nginx。此注释不适用于Ingress-GCE

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

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

回答一个老问题,但希望它可以帮助某人。

我在 ingress-gce 的源代码中找到了GCP Ingress注释的列表。

相关内容

  • 没有找到相关文章

最新更新