Openflow BYOC – 设置自定义入口¶
本主题介绍了在您自己的 AWS 账户中设置 Openflow BYOC 部署并使用自定义入口解决方案时需要考虑的事项和所需步骤。
优势¶
Openflow BYOC 部署的自定义入口为您的组织提供以下优势:
更强的安全性,通过网络级限制,可将访问权限仅限于您的 VPN 或私有网络。
完全控制用于访问 Openflow 的 URL 和 TLS 证书,以满足您的安全与合规要求。
注意事项¶
使用 Snowflake 托管的入口时,Openflow 会为您的 BYOC 部署中的 Openflow 运行时创建必要的 DNS 记录、公共负载均衡器,并管理 TLS 证书。
当您启用自定义入口时,Openflow 将不再自动管理外部 DNS 记录,不会自动创建公共负载均衡器,也将不再管理 Openflow 运行时的证书。您必须在您自己的 AWS 账户中管理这些资源。
在 Snowflake Openflow 中配置自定义入口¶
在部署创建过程中启用自定义入口。
在部署创建过程中,启用 Custom ingress 选项并在 Hostname 字段中指定首选完全限定域名 (FQDN)。
您必须能够管理此 DNS 记录并为此 FQDN 创建 TLS 证书。不要使用
snowflakecomputing.cn的子域。FQDN 中不得包含协议 https:// 或尾部斜杠 /。
例如,如果您指定
openflow01.your-domain.org,您将通过https://openflow01.your-domain.org/my-runtime/nifi/访问名为“My Runtime”的运行时。
下载 CloudFormation 模板。此文件包含 Openflow 作为自定义入口域运行所需的所有设置。
在 AWS 中配置自定义入口¶
备注
{deployment-key} 表示 Openflow 为特定部署创建并托管的云资源所使用的 Openflow 唯一标识符。
该信息位于 CloudFormation 模板的 DataPlaneKey 参数中,也可以通过 Openflow 中部署的 View Details 菜单选项查看。
将以下标签添加到 Openflow 部署的专用子网中:
键:kubernetes.io/role/internal-elb
值:
1
如果您的私有子网被其他 EKS 集群使用,您还必须使用 Openflow 集群的名称来标记它们。这允许 Openflow 与其他负载均衡器一起创建负载均衡器。
键:kubernetes.io/cluster/{deployment-key}
值:
1
上传 CloudFormation 模板。等待大约 30 分钟,让 Openflow 创建内部网络负载均衡器。
您可以在 AWS 控制台中的 EC2 » Load Balancers 下找到内部网络负载均衡器。
负载均衡器将被命名为
runtime-ingress-{deployment-key}。
获取 Openflow 管理的 AWS 内部网络负载均衡器的内部 IP 地址。
在 EC2 » Load Balancers 下,进入详情页面并复制负载均衡器的 DNS name。
登录代理 EC2 实例(标识为 openflow-agent-{deployment-key}),并运行命令
nslookup {openflow-load-balancer-dns-name}。复制 Openflow 管理的 AWS 内部网络负载均衡器的 IP 地址。这些是您将在后续步骤中创建的负载均衡器目标组的目标。
提供 TLS 证书。
为负载均衡器获取 TLS 证书,该负载均衡器将处理 Openflow 运行时 UIs 的流量。您可以使用 AWS 证书管理器 (ACM) 生成证书或导入现有的证书。
创建一个网络负载均衡器,用于将流量路由到 Openflow 管理的 AWS 内部网络负载均衡器。
在 AWS 账户中,使用以下配置创建网络负载均衡器:
名称:我们推荐的命名约定是
custom-ingress-external-{deployment-key},其中{deployment-key}是 Openflow 部署的关键。类型:Network Load Balancer
方案:Internal 或 Internet-facing,具体取决于您的要求。
VPC:选择部署的 VPC
可用区:选择 Openflow 部署正在运行的两个可用区。
子网:为 Internal 负载均衡器选择您的 VPC 的私有子网,或为 Internet-facing 负载均衡器选择您的 VPC 的公共子网。
安全组:选择或创建允许流量经过端口
443的安全组默认 SSL/TLS 服务器证书:导入 SSL/TLS 证书
目标组:使用以下设置创建新的目标组:
目标类型:IP addresses
协议:TLS
端口:443
VPC:验证 VPC 是否与您的部署匹配
将上一步中获取的 Openflow 创建的内部网络负载均衡器的 IP 地址作为目标输入,并选择 Include as pending below。
创建负载均衡器后,复制要在下一步中使用的负载均衡器的 DNS 名称。
有关如何创建网络负载均衡器的更多信息,请参阅 创建网络负载均衡器 (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html)。
创建一个 DNS CNAME 记录,将您的自定义入口 FQDN 映射到 AWS 负载均衡器的 DNS 名称。
有关 Route 53 中的详细 DNS 配置说明,请参阅 在 Route 53 中创建记录 (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html)。
验证¶
Openflow 部署在 Deployments 页面中显示状态为 Active。
在 Openflow 部署中创建运行时。
一旦运行时状态为 Active,点击运行时名称或使用 View canvas 菜单选项即可访问该运行时的 UI。
Openflow 会将您定向到具有在创建部署期间指定的主机名的运行时。例如
https://openflow01.your-domain.org/my-runtime/nifi/。
故障排除¶
以下部分提供了自定义入口常见问题的故障排除步骤。如果在执行这些检查后仍然遇到问题,请提交 Snowflake 支持 工单。
负载均衡器目标运行状况检查¶
网络负载均衡器的目标组应列出 Openflow 管理的内部网络负载均衡器的 IP 地址作为目标。所有这些目标应显示为 Healthy。如果目标是 Unhealthy,使用以下检查项来缩小流量故障发生的范围。
在 AWS 控制台中,打开 EC2 » Load Balancers。
找到管理 Kubernetes 集群入口的 Openflow 管理的负载均衡器。此负载均衡器名为
runtime-ingress-{deployment-key}。在 Resource map 选项卡下查看该负载均衡器的目标运行状况。
如果 Openflow 管理的负载均衡器未处于活动状态或具有 Unhealthy 目标:
Openflow 管理的负载均衡器与 BYOC 集群之间的流量可能被阻断,或者集群内部的某个服务尚未就绪。
通过在 openflow-agent-{deployment-key} EC2 实例上运行
./diagnostics.sh来生成诊断捆绑包,并将其附加到 Snowflake 支持 工单。
如果 Openflow 管理的负载均衡器处于活动状态且具有运行状况良好的目标,请检查负载均衡器的目标运行状况。
如果负载均衡器的目标为 Unhealthy,则从您的负载均衡器到 Openflow 管理的负载均衡器的路径极有可能是问题所在:
目标组中的 IP 地址不正确或已过时。 Openflow 管理的负载均衡器会公开多个可能随时间变化的 IP 地址。要获取最新值,请结合 Openflow 管理的负载均衡器的 DNS name 运行
nslookup。请根据需要更新负载均衡器的目标。安全组规则。 确认 Openflow 管理的负载均衡器安全组的入站规则允许来自您负载均衡器的 TCP
443。如果您的负载均衡器无法通过端口443访问 Openflow 负载均衡器,则流量可能会失败。
浏览器安全拦截¶
自定义入口的某些问题是由公司浏览器安全策略、防火墙或 Web 代理拦截或检查发往自定义主机名的流量引起的。这些策略与 AWS 负载均衡器配置是相互独立的。您可能会发现,即使 AWS 负载均衡器报告目标运行状况良好,用户也无法打开 Openflow UI。
要验证通过负载均衡器与 Openflow 服务的连接,请执行以下操作:
在 AWS 控制台,打开 EC2 » Load Balancers 以获取处理流量的负载均衡器的 DNS 名称,以及自定义 Ingress 域名的 TLS 证书。
这 不是 runtime-ingress-{deployment-key} 负载均衡器。
从 openflow-agent-{deployment-key} EC2 实例出发,通过负载均衡器验证与 Openflow 部署的连通性。运行命令:
如果该命令输出预期的证书信息和成功的 404 状态代码响应,则表示您已成功验证与 Openflow 部署的连接性。
如果命令超时或返回错误,请创建 Snowflake 支持 工单,并附上在 Openflow Agent 实例上运行
./diagnostics.sh所生成的诊断包。
在 Openflow Agent 实例中,您还可以验证自定义入口 FQDN 的 DNS CNAME 记录运行命令:
如果该命令返回为自定义入口域名执行 TLS 终止的负载均衡器的 IP 地址,则说明您已成功验证 DNS CNAME 记录。
如果该命令未返回任何结果,则 DNS CNAME 记录配置不正确。检查自定义入口 FQDN 的 DNS 记录,并确保它指向您的负载均衡器的 DNS 名称。
如果 Openflow Agent 已通过负载均衡器的 DNS 成功连接,并且您已验证 DNS CNAME 记录,安全策略或防火墙可能会阻止从您的浏览器到 Openflow BYOC 部署的流量。与安全团队合作,将自定义入口 FQDN 列入允许列表。