我在google云上的Kubernetes集群中创建了一个入口资源。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gordion
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.global-static-ip-name: gordion-ingress
networking.gke.io/managed-certificates: gordion-certificate,gordion-certificate-backend
spec:
rules:
- host: backend.gordion.io
http:
paths:
- path: /
backend:
serviceName: backend
servicePort: 80一切都正常。但是,我没有创建任何ingress-controller。官方文件,它必须拥有它。
您必须有一个入口控制器来满足一个侵入。只创建一个侵入资源没有任何效果。
那么,如果我的路由确实有效的话,我的入口控制器在哪里?我如何看待它的配置?
发布于 2019-10-14 18:29:28
在Google引擎( GKE )中,当您创建一个侵入对象时,内置的GKE入口控制器将负责创建适当的HTTP(S)负载均衡器,它符合您的入侵及其服务。有关更多信息,请查看"HTTP(S) Google云文档负载平衡与侵入“上的此。
发布于 2019-10-14 20:48:19
在GKE中,如果不指定kubernetes.io/ingress.class: nginx注释,默认情况下将使用GCE L7负载均衡器控制器(GLBC) (实际上相当于设置kubernetes.io/ingress.class: gce)。此控制器将自动配置,并将依赖GCP的全局HTTP(s)负载均衡器。
您可以在GLBC GitHub网页和在这篇文章中上找到有关此主题的更多信息。
发布于 2019-10-14 08:09:16
是的,如果你给它一个NodePort服务和一个后面的服务,你的入口就会这样工作.但是,您可能只创建了一个LoadBalancer服务,并且得到了相同的结果。
如果您没有任何入口控制器,那么您的一些配置是不好的,因为您正在引用一些nginx入口控制器配置(重写)。
入口控制器的目的是为集群中的多个应用程序负载平衡http-流量,这意味着您只能为多个域/路径创建一个提供者(这里是GCP) LB。这允许您制作一些鳍,而不是为每个应用程序创建多个公共IP和LB资源。
在您在您提到的前提条件中发布的文档中,有一个可用解决方案的列表,如nginx-ingress控制器,traefik.
如何使用:
https://stackoverflow.com/questions/58372022
复制相似问题