跳转到主要内容
Chinese, Simplified

Kubernetes是一个开源的容器调度和编制系统,最初由谷歌创建,然后捐赠给云计算基金会。Kubernetes自动安排容器在服务器集群中均匀运行,从开发人员和操作人员中抽象出这个复杂的任务。最近,Kubernetes已经成为最受欢迎的容器协调器和调度器。

Kubernetes的NGINX Ingress Controller为Kubernetes应用程序提供企业级交付服务,为开源NGINX和NGINX Plus的用户带来好处。使用Kubernetes的NGINX Ingress控制器,您可以获得基本的负载平衡、SSL/TLS终止、对URI重写的支持以及上游的SSL/TLS加密。NGINX Plus用户还为有状态应用程序获得会话持久性,为api获得JSON Web Token (JWT)认证。

注:对于NGINX Plus客户,Kubernetes的NGINX Ingress Controller支持不含额外费用。

Kubernetes的NGINX入口控制器是如何工作的

默认情况下,Kubernetes服务的豆荚不能从外部网络访问,只能通过Kubernetes集群中的其他豆荚访问。Kubernetes有一个内建的HTTP负载平衡配置,称为Ingress,它定义了Kubernetes服务的外部连接规则。需要提供对Kubernetes服务的外部访问的用户创建一个定义规则的入口资源,包括URI路径、支持服务名称和其他信息。进入控制器然后可以自动编程一个前端负载均衡器,以启用进入配置。Kubernetes的NGINX入口控制器使Kubernetes能够配置NGINX和NGINX Plus来平衡Kubernetes服务的负载。

注意:有关安装说明,请参阅我们的GitHub存储库。

下面的例子。yml文件创建一个Kubernetes入口资源,根据请求URI和主机报头将客户端请求路由到不同的服务。对于带有主机报头cafe.example.com的客户机请求,带有/tea URI的请求被路由到tea服务,而带有/coffee URI的请求被路由到coffee服务。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress
  annotations:
    nginx.org/sticky-cookie-services: "serviceName=coffee-svc srv_id expires=1h path=/coffee"
    nginx.com/jwt-realm: "Cafe App"  
    nginx.com/jwt-token: "$cookie_auth_token"
    nginx.com/jwt-key: "cafe-jwk" 
spec:
  tls:
  - hosts:
    - cafe.example.com
    secretName: cafe-secret
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea
        backend:
          serviceName: tea-svc
          servicePort: 80
      - path: /coffee
        backend:
          serviceName: coffee-svc
          servicePort: 80

要终止SSL/TLS通信,使用SSL/TLS证书和密钥创建Kubernetes Secret对象,并将其分配给Kubernetes Ingress资源(Secret包含少量敏感数据,如用于加密数据的证书和密钥)。有关机密的更多信息,请参见Kubernetes文档。

通过在Ingress资源YAML文件中指定注释或将Kubernetes资源(如ConfigMaps)映射到Ingress控制器,可以很容易地定制Ingress控制器。在上面的示例中,我们使用注释来定制Ingress控制器,方法是启用对咖啡服务的会话持久性,并配置JWT验证。我们的GitHub库提供了许多使用NGINX Plus部署Kubernetes Ingress控制器的完整示例。

有关可以使用NGINX和NGINX Plus在Ingress控制器上配置的所有附加功能的详细列表,请参阅存储库。

比较版本

Features OSS Plus
SSl/TLS termination Y Y
WebSocket Y Y
URL rewrites Y Y
HTTP/2 Y Y
Prometheus exporter Y Y
Helm charts Y Y
Real-time monitoring   Y
Health checks   Y
Session persistence   Y
Dynamic reconfiguration   Y
24x7 support   Y

 

本文:https://pub.intelligentx.net/node/794

原文:https://www.nginx.com/products/nginx/kubernetes-ingress-controller

讨论:请加入知识星球或者小红圈【首席架构师圈】

 

Article
知识星球
 
微信公众号
 
视频号