Nginx【有与无】【NC-E1】NGINX控制器技术规格

NGINX控制器技术规格

目录

1.NGINX控制器技术规格

1.1.总览

1.2.支持的发行版

1.3.分析,可见性和报告后台程序(AVRD)

1.4.支持的部署环境

1.5.NGINX Plus实例

1.6.NGINX App保护

1.7.支持的浏览器

1.8.硬件规格

1.9.NGINX控制器数据库要求

1.9.1.本地或外部存储

1.9.2.Local Storage

1.9.3.NFS

1.9.4.AWS EBS

1.10.支持的PostgreSQL版本

1.11.防火墙/IP设置

1.12.支持的Python版本

1.13.开源许可证


1.NGINX控制器技术规格

1.1.总览

本指南列出了NGINX Controller v3和NGINX Controller Agent的技术建议。 在安装或更新NGINX控制器或NGINX控制器代理之前,请阅读本指南。

1.2.支持的发行版

NGINX控制器,NGINX控制器代理和NGINX控制器应用程序安全性支持以下发行版和体系结构:

发行版版本

   CPU

体系结构

NGINX Controller
(Control Plane)
Controller Agent
(Data Plane)
备注
Amazon Linux2x86_64 v3.0+ 
Amazon Linux2017.09+x86_64 v3.0+ 
CentOS6.0 (6.5+)i386
x86_64
 v3.0+• 此发行版不支持 AVRD.
CentOS7.0 (7.4+)x86_64v3.0+v3.0+
(App Security supported)
• NGINX Controller App Security需要NGINX Controller 3.12或更高版本.
Debian8i386
x86_64
 v3.0+• 此发行版不支持 AVRD.
Debian9i386
x86_64
v3.0+v3.0+
(App Security supported)
• NGINX Controller App Security需要NGINX Controller 3.12或更高版本.
• 仅NGINX控制器代理支持i386架构。 NGINX控制器和NGINX控制器应用程序安全性支持x86_64.
Red Hat Enterprise Linux6.0 (6.5+)i386
x86_64
 v3.0+ 
Red Hat Enterprise Linux7.0 (7.4+)x86_64v3.5+v3.5+
(App Security supported)
• NGINX Controller App Security需要NGINX Controller 3.12或更高版本.
• SELinux可能会干扰NGINX控制器的安装和操作。 如果确实启用SELinux,则必须使用许可模式。 不支持使用强制模式.
Ubuntu16.04 LTSi386
x86_64
v3.0+v3.0+•仅NGINX控制器代理支持i386架构。 NGINX控制器和NGINX控制器应用程序安全性支持x86_64.
Ubuntu18.04 LTSx86_64v3.0+v3.0+ 
Ubuntu20.04 LTSx86_64 v3.12+

1.3.分析,可见性和报告后台程序(AVRD)

NGINX Controller v3.1和更高版本使用Analytics,Visibility和Reporting守护程序(AVRD)来汇总和报告以应用程序为中心的指标,你可以使用这些指标来跟踪和检查应用程序的运行状况。 要了解有关这些指标的更多信息,请参见NGINX指标目录主题。

1.4.支持的部署环境

你可以将NGINX Controller v3部署到以下环境中:

  • 裸机
  • 公有云:Amazon Web Services,Google Cloud Platform,Microsoft Azure
  • 虚拟机

1.5.NGINX Plus实例

使用控制器代理的NGINX控制器可以监视和管理多达100个NGINX Plus实例。 使用Controller App Security时,NGINX Controller可以监视和管理多达30个安装了NGINX App Protect的NGINX Plus实例。

NGINX控制器支持以下NGINX Plus版本:

NGINX PlusNGINX Controller
R23v3.12+
R22v3.5+
R21v3.3+
R20v3.0+
R19v3.0+

注意:
NGINX Plus R22支持NGINX控制器应用程序安全性。

1.6.NGINX App保护

NGINX控制器应用程序交付模块的应用程序安全性加载项需要NGINX App Protect 2.1.1版和NGINX Plus R22。

  • CentOS/Red Hat Enterprise Linux: app-protect-22+3.243.1-1.el7.ngx.x86_64
  • Debian: app-protect=22+3.243.1-1~stretch

1.7.支持的浏览器

NGINX Controller与启用了JavaScript,Cookie和SSL的这些浏览器的最新版本和最新版本配合使用时效果最佳:

1.8.硬件规格

每个运行NGINX Controller的节点都需要以下最低硬件规格:

  • RAM: 8 GB RAM
  • CPU: 8-Core CPU @ 2.40 GHz 或类似
  • 磁盘空间: 80 GB 可用磁盘空间

NGINX控制器代理消耗的内存和CPU尽可能少。 CPU使用率应低于10%,RSS内存消耗应仅为几十MB。 如果你发现NGINX控制器代理以更高的速度消耗资源,则应联系NGINX支持以寻求帮助。

1.9.NGINX控制器数据库要求

1.9.1.本地或外部存储

安装NGINX Controller v3时,你可以选择用于存储分析数据库的容量的类型。 支持的容量类型为:

1.9.2.Local Storage

将本地存储用于分析数据库时,我们建议以下规格:

  • 100 IOPS
  • 130 GB 可用磁盘空间 (这是本地分析数据库的80 GB + 50 GB的标准建议)
  • 如果启用了NGINX Controller App Security,建议使用230 GB的可用磁盘空间。 这包括80 GB的标准建议和用于本地分析数据库的额外150 GB。

提示:
为了节省IO和/或磁盘空间,可以将单独的磁盘用于本地存储目录/opt/nginx-controller/clickhouse_data

1.9.3.NFS

要将NFS用于分析数据库的外部存储,请考虑以下事项:

  • 确保要安装NGINX Controller的客户端系统支持服务器使用的NFS版本。
  • 如果你在NFS服务器上使用NFS v4文件锁定或网络锁定管理器(NLM),请确保运行NGINX控制器的客户端系统可以访问安装点。
  • 在将要安装NGINX控制器的所有主机上安装nfs-common(在Ubuntu/Debian上)或nfs-utils(在CentOS/RedHat)上)软件包。
  • 必须为NFS服务器上的挂载点设置no_root_squash选项。 如果不允许这样做,则必须将用于分析数据库的路径的所有者设置为101:101,并将配置数据库的路径的所有者设置为70:70

1.9.4.AWS EBS

(可选)要在将EBS 容量用于分析and/or配置数据库的AWS EC2实例上安装NGINX Controller,并允许自动创建ELB,请配置IAM角色,类似于以下示例。

重要:
如果你打算在AWS EC2实例上运行NGINX Controller,我们建议对外部容量使用NFS共享。 由于EBS可用区限制,不建议将EBS共享用于多节点群集。 例如,要求在同一可用区中具有EC2实例和EBS卷。

调整政策以满足你的需求。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "autoscaling:DescribeAutoScalingGroups",
        "autoscaling:DescribeLaunchConfigurations",
        "autoscaling:DescribeTags",
        "ec2:DescribeInstances",
        "ec2:DescribeRegions",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVolumes",
        "ec2:CreateSecurityGroup",
        "ec2:CreateTags",
        "ec2:CreateVolume",
        "ec2:ModifyInstanceAttribute",
        "ec2:ModifyVolume",
        "ec2:AttachVolume",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateRoute",
        "ec2:DeleteRoute",
        "ec2:DeleteSecurityGroup",
        "ec2:DeleteVolume",
        "ec2:DetachVolume",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:DescribeVpcs",
        "elasticloadbalancing:AddTags",
        "elasticloadbalancing:AttachLoadBalancerToSubnets",
        "elasticloadbalancing:ApplySecurityGroupsToLoadBalancer",
        "elasticloadbalancing:CreateLoadBalancer",
        "elasticloadbalancing:CreateLoadBalancerPolicy",
        "elasticloadbalancing:CreateLoadBalancerListeners",
        "elasticloadbalancing:ConfigureHealthCheck",
        "elasticloadbalancing:DeleteLoadBalancer",
        "elasticloadbalancing:DeleteLoadBalancerListeners",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeLoadBalancerAttributes",
        "elasticloadbalancing:DetachLoadBalancerFromSubnets",
        "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
        "elasticloadbalancing:ModifyLoadBalancerAttributes",
        "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
        "elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer",
        "elasticloadbalancing:AddTags",
        "elasticloadbalancing:CreateListener",
        "elasticloadbalancing:CreateTargetGroup",
        "elasticloadbalancing:DeleteListener",
        "elasticloadbalancing:DeleteTargetGroup",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:DescribeLoadBalancerPolicies",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeTargetHealth",
        "elasticloadbalancing:ModifyListener",
        "elasticloadbalancing:ModifyTargetGroup",
        "elasticloadbalancing:RegisterTargets",
        "elasticloadbalancing:DeregisterTargets",
        "elasticloadbalancing:SetLoadBalancerPoliciesOfListener",
        "iam:CreateServiceLinkedRole",
        "kms:DescribeKey"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

1.10.支持的PostgreSQL版本

NGINX控制器支持以下版本的PostgreSQL:

  • PostgreSQL 12.3 – 与NGINX Controller 3.9及更高版本一起使用。
  • PostgreSQL 9.5 – 与NGINX Controller 3.0及更高版本一起使用。

对于监视100个NGINX Plus实例的系统,我们建议至少32 GB的数据库存储。 数据库存储要求可能会有所不同,具体取决于NGINX Plus实例的数量,组件,已发布的API规范以及配置更改的流失率。 对于仅监视的实现,数据库存储需求很小; 对于生产中的API管理(APIM)and/or应用交付控制器(ADC)实施,存储需求更大。

重要:
如果你使用的是PostgreSQL 12,建议你禁用即时(JIT)编译,以提高NGINX控制器的性能。 要禁用JIT,请编辑postgresql.conf文件并设置jit = off。

1.11.防火墙/IP设置

使用以下防火墙设置配置NGINX Controller:

  • DB: Port 5432 TCP – 从NGINX Controller主机传入数据库
  • NGINX Controller: Port 443 TCP – 从你从浏览器(例如,内部网络和NGINX Plus实例)访问的位置传入
  • NGINX Controller: Port 8443 TCP – 从NGINX Plus实例传入

注意:
如果你的防火墙在NGINX控制器主机上运行,请启用NAT(伪装)并打开以下端口。 这些端口仅用于内部流量,不需要向外开放。

  • NGINX控制器:6443 TCP,2379 TCP,2380 TCP – 向Kubernetes主节点的传入请求; 用于Kubernetes API服务器和etcd
  • NGINX控制器:10250 TCP – Kubernetes工作节点的传入请求; 用于Kubelet API

有关这些端口的更多信息,请参阅Kubernetes指南安装kubeadm

1.12.支持的Python版本

NGINX控制器和NGINX控制器代理版本3.6及更低版本需要Python 2.6或2.7。 NGINX控制器或NGINX控制器代理3.7及更高版本不需要Python。

1.13.开源许可证

NGINX Controller使用的开源软件包及其许可证的列表可以在NGINX Controller软件包的下载文件中找到。 在你的NGINX控制器主机上,请参阅controller-installer/files/license-controller.md。

此外,请参阅AskF5 KB文章NGINX Controller控制器数据收集组件的第三方软件,了解可能由controller-datacollection组件使用或与之一起分发的第三方软件包。 上述信息未包含在上述license-controller.md 中。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴 韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值