我在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
注释的列表。