通过与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。
- 以管理员身份登录OpenShift控制台。
- 在左侧导航栏中,点击“Operators”,然后点击“OperatorHub”。在搜索框中输入nginx,然后点击显示的Nginx Ingress Operator卡片。

- 查看产品信息后,单击“Install”按钮。

- 在打开的“创建操作器订阅”页面上,指定用于安装操作器的集群命名空间(本例中为nginx-ingress)。然后选择“自动”单选按钮(位于“审批策略”下),这样正在运行的操作器实例便可自动更新,无需管理员手动批准。点击“订阅”按钮。

- 安装完成后,在终端中运行以下命令,验证Operator是否正在运行:
# oc get pods –n nginx-ingressNAME READY STATUS RESTARTS AGE
nginx-ingress-operator-dd546d869-xxxxx 1/1 Running 0 7m29s- 在左侧导航栏中点击“已安装的 Operator”。在打开的页面中,点击“提供的 API”列中的 NginxIngressController 链接。NginxIngressController 是一种自定义资源,Operator 使用该资源在 OpenShift 集群上部署 NGINX Plus Ingress Controller。

- 在打开的页面中,将类似以下示例的清单粘贴到文本字段中,然后单击“创建”按钮以部署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- 要验证部署,请在终端中运行以下命令。如输出所示,上一步使用的清单部署了两个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- 运行以下命令,验证NGINX Plus Ingress Controller是否响应请求。请将
public_IP_address替换为用于公开NGINX Plus Ingress Controller的LoadBalancer服务的外部IP地址。请注意,此时该命令会返回404NotFound。这是因为尚未配置和部署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>- 请注意,最终用户可以提交多个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的价值

关于作者
相关博客文章
NGINX Plus R26 正式发布
NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。
使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。
Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。
NGINX Plus R19 正式发布
NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。
NGINX现已正式加入F5
NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。

