在与 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 集群环境的管理员访问权限。
以下视频展示了如何安装 NGINX Ingress Operator,后面是带有屏幕截图的书面摘要。
我们从 OpenShift 控制台安装 NGINX Ingress Operator。
在左侧导航栏中,单击Operators ,然后单击 OperatorHub 。 在搜索框中输入nginx ,然后单击出现的Nginx Ingress Operator框。
查看产品信息后,单击“安装”按钮。
在打开的创建操作员订阅页面上,指定要安装操作员的集群命名空间(在此示例中为nginx-ingress )。 还可以单击“批准策略”下的“自动”单选按钮,以启用正在运行的 Operator 实例的自动更新,而无需管理员手动批准。 单击“订阅”按钮。
安装完成后,在终端中运行此命令以验证 Operator 是否正在运行:
# oc get pods –n nginx-ingress NAME READY STATUS RESTARTS AGE nginx-ingress-operator-dd546d869- xxxxx 1/1 运行 0 7m29s
单击左侧导航栏中的“已安装的操作员” 。 在打开的页面中,单击提供的API列中的NginxIngressController链接。 NginxIngressController 是一个自定义资源,操作员使用它在 OpenShift 集群上部署 NGINX Plus Ingress Controller。
在打开的页面上,将类似以下示例的清单粘贴到文本字段中,然后单击“创建”按钮以部署用于 Kubernetes 部署的 NGINX Plus Ingress Controller。
请注意,我们在defaultSecret
和wildcardTLS
字段中嵌入了带有 TLS 证书和密钥的Secret 。 这使得 TLS 终止和传递成为可能,而不需要将 Secret 包含在 Ingress 策略中。
在为 Kubernetes 配置 NGINX Plus Ingress Controller 时,您可以设置许多选项,如我们的GitHub repo中所列。
api版本:k8s.nginx.org/v1alpha1kind: NginxIngressController
元数据:
名称:my-nginx-ingress-controller
命名空间:nginx-ingress
规范:
enableCRDs:true
图像:
pullPolicy: 始终
存储库:registry.hub.docker.com/nginx/nginx-ingress
标签:edge
nginxPlus:false
serviceType: LoadBalancer
类型:部署
副本: 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 获取 pods -n nginx-ingress名称 就绪状态 重新启动 年龄
my-nginx-ingress-controller-579f455d7d-xxxxx 1/1 正在运行 0 5 分 53 秒
my-nginx-ingress-controller-579f455d7d-xxxxx 1/1 正在运行 0 5 分 53 秒
nginx-ingress-operator-dd546d869-xxxxx 1/1 跑步 0 56m
# oc 获取 svc –n nginx-ingress
my-nginx-ingress-controller 负载均衡器 172。二十.48.254 <待处理> ...
nginx-ingress-operator-metrics ClusterIP 172.二十.209.190 <无> ...
... 80:32028/TCP,443:31973/TCP 10 米... 80:32028/TCP,443:31973/TCP 10 米
运行以下命令来验证NGINX Plus Ingress Controller是否响应请求。 将public_IP_address
替换为公开 NGINX Plus Ingress Controller 的LoadBalancer
服务的外部 IP 地址。
请注意,此时命令返回404
未
找到
。 这是因为我们尚未配置和部署 Ingress 资源来将流量路由到后端 Pod。 欲了解更多信息,请参阅我们的文档。
# 卷曲 公共 IP 地址 <html>
<head><title>404 未找到</title></head>
<body bgcolor="white">
<center><h1>404 未找到</h1></center>
<hr><center>nginx/1.13.4</center>
</body>
</html>
请注意,最终用户可以提交 NginxIngressController 资源的多个清单,并为每个清单创建一个单独的部署。 该操作员还支持跨不同命名空间的部署。 可以在清单的元数据
部分中指定命名空间。
NGINX Ingress Operator 可帮助您管理 NGINX Plus Ingress Controller 部署,特别是:
现在您已经准备好并部署了 NGINX Plus Ingress Controller,请参阅我们的文档和GitHub 存储库以在 OpenShift 中使用 NGINX Plus 的高级功能。
还不是客户? 要试用 NGINX Plus 和 Ingress Controller,请立即开始30 天免费试用或联系我们讨论您的用例。
“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”