Google Kubernetes Engine 入口注释

Ole*_*leg 2 kubernetes google-kubernetes-engine kubernetes-ingress

我在 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
Run Code Online (Sandbox Code Playgroud)

它工作正常,所以我有 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广泛使用的注释谷歌的例子。

Daw*_*ruk 8

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

Ingress 可以提供负载平衡、SSL 终止和基于名称的虚拟托管。

Kubernetes.io:入口

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

Ingress您粘贴的配置将使用Ingress-GCE控制器。如果您想切换到Ingress-nginx其中一个,则需要部署它并设置注释,例如:

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

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

这里有一个支持重写的持续功能请求Ingress-GCEGithub.com:Ingress-GCE:重写

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

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


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

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

如果您创建 类型的服务,LoadBalancerGKE将创建一个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 注释在 google 示例中广泛使用。

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

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

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

  • 要获取有关“Ingress-GCE”注释的更多信息,您可以查看 github 存储库中的代码:[Github.com: Kubernetes: Ingress-GCE: Annotations](https://github.com/kubernetes/ingress-gce/ tree/master/pkg/annotations) 或查看此处:[Godoc.org: K8S: Ingress-GCE: Annotations](https://godoc.org/k8s.io/ingress-gce/pkg/annotations) (4认同)

小智 6

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

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