Red Hat OpenShift 上的 NGINX Ingress Operator 入门

NGINX | 2020年4月30日

通过与Red Hat的合作,我们继续专注于为企业用户提供支持,满足其在OpenShift中实现兼容DevOps的服务交付时,对高性能、可扩展长期解决方案的需求。OpenShift版NGINX Ingress Operator是一种经过支持和认证的部署机制,可在OpenShift环境中将Kubernetes版NGINX Plus Ingress Controller与默认路由器一同部署,并支持点击式安装和自动升级。可以利用Operator Lifecycle Manager(OLM)安装、升级和配置NGINX Ingress Operator。

想知道为什么除了默认路由器之外,还要使用NGINX Plus Ingress Controller?请阅读我们的《Red Hat + NGINX的价值》博客,了解双方的合作如何实现安全、可扩展且有支持保障的应用交付。

本分步指南提供开始使用 NGINX Ingress Operator 所需的全部信息。开始前,请确保您拥有运行 OpenShift 4.3 或更高版本的 OpenShift 集群环境的管理员访问权限。

安装Operator

以下视频演示了如何安装NGINX Ingress Operator,随后还提供了包含屏幕截图的文字摘要。

我们从OpenShift控制台安装NGINX Ingress Operator。

  1. 以管理员身份登录OpenShift控制台。
  2. 在左侧导航栏中,点击“Operators”,然后点击“OperatorHub”。在搜索框中输入nginx,然后点击显示的Nginx Ingress Operator卡片。
  3. 查看产品信息后,单击“Install”按钮。
  4. 在打开的“创建操作器订阅”页面上,指定用于安装操作器的集群命名空间(本例中为nginx-ingress)。然后选择“自动”单选按钮(位于“审批策略”下),这样正在运行的操作器实例便可自动更新,无需管理员手动批准。点击“订阅”按钮。
  5. 安装完成后,在终端中运行以下命令,验证Operator是否正在运行:
# oc get pods –n nginx-ingressNAME                                     READY   STATUS    RESTARTS   AGE
nginx-ingress-operator-dd546d869-xxxxx   1/1     Running   0          7m29s
  1. 在左侧导航栏中点击“已安装的 Operator”。在打开的页面中,点击“提供的 API”列中的 NginxIngressController 链接。NginxIngressController 是一种自定义资源,Operator 使用该资源在 OpenShift 集群上部署 NGINX Plus Ingress Controller。
  2. 在打开的页面中,将类似以下示例的清单粘贴到文本字段中,然后单击“创建”按钮以部署NGINX Plus Ingress Controller for Kubernetes。请注意,我们在Secret的defaultSecret和wildcardTLS字段中嵌入了TLS证书和密钥。这样无需在Ingress策略中包含Secret,即可实现TLS终止和直通。配置NGINX Plus Ingress Controller for Kubernetes时,可以设置多种选项,具体请参阅我们的GitHub存储库。
apiVersion: k8s.nginx.org/v1alpha1kind: NginxIngressController
metadata:
  name: my-nginx-ingress-controller
  namespace: nginx-ingress
spec:
  enableCRDs: true
  image:
    pullPolicy: Always
    repository: registry.hub.docker.com/nginx/nginx-ingress
    tag: edge
  nginxPlus: false
  serviceType: LoadBalancer
  type: deployment
  replicas: 2
  defaultSecret: nginx-ingress/default-server-secret
  wildcardTLS: default/app-secret
  configMapData:
    error-log-level: debug
  enableTLSPassthrough: true
  globalConfiguration: nginx-ingress/nginx-configuration
  1. 要验证部署,请在终端中运行以下命令。如输出所示,上一步使用的清单部署了两个NGINX Plus Ingress Controller副本,并通过LoadBalancer服务将其公开。(为便于阅读,get命令的输出分为多行显示。)
# oc get pods -n nginx-ingressNAME                                          READY  STATUS   RESTARTS  AGE
my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
nginx-ingress-operator-dd546d869-xxxxx        1/1    Running  0         56m

# oc get svc –n nginx-ingress
my-nginx-ingress-controller      LoadBalancer   172.xx.48.254    <pending>  ...   
nginx-ingress-operator-metrics   ClusterIP      172.xx.209.190   <none>     ...   

    ... 80:32028/TCP,443:31973/TCP   10m
    ... 80:32028/TCP,443:31973/TCP   10m
  1. 运行以下命令,验证NGINX Plus Ingress Controller是否响应请求。请将public_IP_address替换为用于公开NGINX Plus Ingress Controller的LoadBalancer服务的外部IP地址。请注意,此时该命令会返回404 Not Found。这是因为尚未配置和部署Ingress资源,无法将流量路由到后端Pod。有关详细信息,请参阅文档。
# curl public_IP_address <html> 
<head><title>404 Not Found</title></head> 
<body bgcolor="white"> 
<center><h1>404 Not Found</h1></center> 
<hr><center>nginx/1.13.4</center> 
</body> 
</html>
  1. 请注意,最终用户可以提交多个NginxIngressController资源清单,系统会为每个清单分别创建一个部署。Operator还支持跨不同命名空间进行部署。可以在清单的metadata部分指定命名空间。

后续步骤

NGINX Ingress Operator可帮助您管理NGINX Plus Ingress Controller部署,尤其适用于以下方面:

  • 配置:只需几个输入参数和一个清单,即可启动基本部署
  • 扩缩容:无缝添加和移除副本
  • 升级:利用滚动更新实现零停机
  • 卸载:确保正确、安全地移除所有Operator和Kubernetes Ingress Controller对象

NGINX Plus Ingress Controller现已准备就绪并完成部署,请参阅我们的文档和GitHub存储库,了解如何在OpenShift中使用NGINX Plus的高级功能。

还不是客户?如需试用NGINX Plus和Ingress Controller,可立即开始30天免费试用,或联系我们,讨论您的使用场景。

Red Hat与NGINX的价值

图中展示了同时部署Red Hat和NGINX解决方案的三项优势:保护应用、扩展业务并助力实现愿景


分享
标签: F5 NGINX, 2020, Tech

关于作者

相关博客文章

NGINX Plus R26 正式发布
NGINX | 2022/02/15

NGINX Plus R26 正式发布

NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
NGINX | 2022/02/10

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击

gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
NGINX | 2021/09/13

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划

了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。

NGINX Plus R19 正式发布
NGINX | 2019/09/03

NGINX Plus R19 正式发布

NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。

NGINX现已正式加入F5
NGINX | 2019/05/09

NGINX现已正式加入F5

NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。

使用NGINX和NGINX Plus实现高性能缓存
NGINX | 2016/08/24

使用NGINX和NGINX Plus实现高性能缓存

我将介绍NGINX在内容缓存和性能方面的工作原理,并分享一些控制NGINX内容缓存方式的技巧。