我在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
必须将其替换为/hello.html
。这就是为什么我有以下问题:
kubernetes.io/ingress.global-static-ip-name
广泛使用的注释谷歌的例子。
Ingress
-API对象,用于管理对集群中服务的外部访问,通常是HTTP。入口可以提供负载平衡,SSL终止和基于名称的虚拟主机。
Kubernetes可以有多个Ingress
控制器。该控制器彼此不同。Ingress
您在此特定问题中提到的控制器是:
Ingress-GCE
-群集的默认Ingress
资源GKE
:
Ingress-nginx
-Ingress
可以部署到GKE
集群的备用控制器:
Ingress
您粘贴的配置将使用Ingress-GCE
控制器。如果要切换到Ingress-nginx
一个,则需要部署它并设置如下注释:
kubernetes.io/ingress.class: "nginx"
如果在默认的负载均衡器中可以进行重写,那么如何配置入站重写。
正在进行的功能请求支持使用Ingress-GCE
此处的重写:Github.com:Ingress-GCE:Rewrite。
您可以Ingress-nginx
用来支持重写。有一个有关部署它的官方文档:Kubernetes.github.io:Ingress-nginx:部署
有关重写的更多资源,可以使用:
什么是GKE上的默认负载均衡器。
如果Ingress
使用默认Ingress-GCE
选项创建资源,则将创建L7 HTTP&HTTPS LoadBalancer。
如果创建类型的服务LoadBalancer
中GKE
,您将创建一个L4网络负载平衡器
如果Ingress-nginx
在GKE
群集中部署控制器,则将创建一个指向该Ingress-nginx
控制器的L4网络负载平衡器,此后,它将相应地将流量路由到您的Ingress
定义。如果您愿意使用Ingress-nginx
,则需要指定:
kubernetes.io/ingress.class: "nginx"
在您的Ingress
定义中。
请看一下这篇文章:Medium.com:Google Cloud:Kubernetes Nodeport vs负载均衡器vs Ingress
在哪里可以找到所有注释的列表。我以为完整列表在https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/上,但是有一个完全不同的列表,没有kubernetes.io/ingress。在Google示例中广泛使用的global-static-ip-name批注。
您提供的带有注释的链接专门用于Ingress-nginx
。此注释不适用于Ingress-GCE
。
GCP
示例中使用的注释特定于Ingress-GCE
。
您可以为Issuetracker.google.comIngress-GCE
上的可用注释列表创建功能请求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句