为您的 Satellite 主机配置 HTTP 代理
您可以配置一个 HTTP 代理,以便将 Satellite 主机上的所有出站流量都路由到该代理。
仅允许列入白名单的账户设置 HTTP 代理。
使用 HTTP 代理需要什么样的位置?
请考虑以下类型的位置。
- 基于 RHEL 的现有位置
- 要设置代理,必须为 Red Hat CoreOS (RHCOS) 启用您的位置。 如果您的现有站点未启用 RHCOS,则无法配置 HTTP 代理。 创建一个支持 RHCOS 的位置,然后 配置您的 HTTP 代理。
- 具有已连接主机的现有 Red Hat CoreOS 启用位置
- 要设置 HTTP 代理,您必须先从您所在的位置访问 删除您的主机。 删除主机后,请参阅《 配置 HTTP 代理 》。 请注意,您还必须更新构成位置控制平面的主机。 请参阅《 更新 Satellite 位置控制平面主机 》。
- 新的 Red Hat CoreOS 启用位置
- 在将主机关联到您的位置之前,请访问 配置您的 HTTP 代理。
我可以使用哪种类型的主机?
在设置 HTTP 代理时,您可以使用 RHEL 或 Red Hat CoreOS 主机。 您必须编辑连接到位置的每个主机,包括构成控制平面的主机。 请记住在 proxy.conf 文件中包含 http 或 https。
关于 HTTP 代理,我还需要了解什么?
要使 Satellite 位置和集群能够使用代理,部署到 Satellite 位置的控制平面基础结构节点上的 kubelet 必须能够与 IBM Cloud 控制平面节点 API 服务器进行通信。 要启用此通信,必须满足下列其中一个需求。
-
选项 1: 使用减少的防火墙连接脚本。
-
选项 2:当前代理支持长期保持的 TCP 连接( TCP 隧道)。
-
选项 3:您可以在与 Satellite 主机位于同一网络的VSI上创建一个辅助代理,该代理需支持长连接的 TCP 连接。
-
方案 4:您可以打开防火墙的出站端口,以允许 TCP 的连接。 有关更多信息,请参阅 所有区域中主机的必需出站连接,然后查找您所在区域的特定出站网络需求。
您无法配置 HTTP 代理,用于工作节点与主节点之间的通信,或用于连接软件包镜像站点。
配置 TCP 隧道
您的代理必须配置为使用 TCP 隧道。 以下步骤介绍了 TCP 隧道连接的一般设置;有关具体服务商的操作说明,请参阅您所用服务商的文档。
-
配置您的 HTTP 代理,以便为您的四个地理位置的公共服务端点隧道传输流量。 要查找端点,
ibmcloud sat location get --location LOCATION_NAME在输出结果中,找到字段 公共服务端点 URL。 从该字段中,可以派生端点。 例如,如果字段值为
https://c131-e.us-south.satellite.cloud.ibm.com:31726,那么端点为https://c131-1.us-south.satellite.cloud.ibm.com:31726,https://c131-2.us-south.satellite.cloud.ibm.com:31726和https://c131-3.us-south.satellite.cloud.ibm.com:31726。 -
请确保 HTTP 代理上的监听端口与 IBM Cloud 上的监听端口一致。
-
更新所有 Satellite 主机上的
/etc/hosts,以包括位置公共服务端点将流量转发到代理,而不是转发到 IBM Cloud 端点。
具体配置细节因服务提供商而异。 请先在 Satellite 环境之外设置代理,以验证该配置是否适用于您的基础设施,然后在 Satellite 环境中配置代理。 有关设置和配置 HTTP 代理的更多信息,请参阅博客 Proxying In Cluster Kube-APIServer Traffic in IBM Cloud Satellite。
请求对允许列表的访问权
如需将您的域名加入 HTTP 代理的允许列表,请通过 创建工单 联系 IBM 客服。
例如,使用以下请求作为模板。
Title: Request for addition of HTTP_PROXY config to
location <LOCATION_ID>
Request Body:
We are requesting the following HTTP_PROXY info be added to
the location_ID listed in the title of this ticket.
Use the following HTTP_PROXY info
BE SURE to include the protocol (http:// or https://)
AND the port (`:PORT_NUMBER`) in the endpoint.
HTTP_PROXY: https://my-proxy-endpoint.com:PORT_NUMBER
HTTPS_PROXY: https://my-proxy-endpoint.com:PORT_NUMBER
支持团队处理完该工单后,您将收到一条通知,告知您的位置已更新。 如果需要进行更改,请提交一个新工单,并在其中注明新的参数。 要查找您的 LOCATIONID,请运行 ibmcloud sat locations。
配置您的 HTTP 代理
要配置 HTTP 代理,您必须编辑每个主机,包括控制平面中的主机。 如果您的主机已连接到某个位置 (包括构成控制平面的那些主机),那么必须先 从该位置除去这些主机,然后才能对其进行编辑。 配置代理后,将主机重新连接到位置。 有关更新控制平面主机的更多信息,请参阅 《更新 Satellite 位置的控制平面主机》。
-
选择要用于代理的 镜像位置。 此镜像位置在您设置代理时使用。
-
查找
NO_PROXY的值。- 对于控制平面主机,请使用
172.20.0.1for RHCOS 和NO_PROXY=172.20.0.1,$<REDHAT_PACKAGE_MIRROR_LOCATION>for RHEL。 - 对于 Red Hat OpenShift 主机,Red Hat OpenShift 主机的
NO_PROXY必须包含用于 Red Hat OpenShift 集群的服务子网的第一个 IP。 要查找此 IP,请运行cluster get命令。
ibmcloud ks cluster get --cluster <ClusterID> ``` 示例输出 ```sh {: screen} Name: hyp-20220306-1-d2 ID: <ClusterID> ... Service Subnet: 172.21.0.0/16 ... ``` 在此输出中,请注意第一个 IP 为 `172.21.0.1`,这将使与此特定集群相关联的主机在此示例中的完整输出 `NO_PROXY=172.20.0.1,172.21.0.1,$REDHAT_PACKAGE_MIRROR_LOCATION` for RHEL hosts and `NO_PROXY=172.20.0.1,172.21.0.1,.REGION.satellite.appdomain.cloud` for RHCOS hosts。 例如,对于 RHCOS 主机的伦敦镜像位置,`NO_PROXY=172.20.0.1,172.21.0.1,.eu-gb.satellite.appdomain.cloud` 是正确的。 请注意,RHCOS 值在区域之前包含 `.`。 从工作程序节点到集群服务的任何流量都必须包含在 `NO_PROXY` 中。 例如,要使用映像注册表服务来存储映像,请针对每个工作程序节点将 `image-registry.openshift-image-registry.svc` 添加到 `NO_PROXY` ; 此值不需要包含在控制平面中。 - 对于控制平面主机,请使用
-
浏览至主机上的
/etc/systemd/system.conf.d。 如果该文件不存在,请使用以下命令创建它。 从步骤 2 中输入<VALUE>forNO_PROXY。mkdir -p /etc/systemd/system.conf.d cat >"/etc/systemd/system.conf.d/proxy.conf" <<EOF [Manager] DefaultEnvironment="HTTP_PROXY=https://my-proxy-endpoint.com:PORT_NUMBER" "HTTPS_PROXY=https://my-proxy-endpoint.com:PORT_NUMBER" "NO_PROXY=<VALUE>" EOF chmod 0644 /etc/systemd/system.conf.d/proxy.conf -
运行以下命令,创建
ibm-proxy.sh文件。 从步骤 2 中输入<VALUE>forNO_PROXY。mkdir -p /etc/profile.d cat >"/etc/profile.d/ibm-proxy.sh" <<EOF #!/usr/bin/env bash HTTP_PROXY="https://my-proxy-endpoint.com:PORT_NUMBER" HTTPS_PROXY="https://my-proxy-endpoint.com:PORT_NUMBER" NO_PROXY="<VALUE>" export HTTP_PROXY export HTTPS_PROXY export NO_PROXY EOF chmod 0755 /etc/profile.d/ibm-proxy.sh -
重新引导主机以获取此更改。
-
将主机 连接或重新连接 到该位置。
-
将主机分配回 控制平面 或将其分配到先前分配给的服务 。
-
请对每台主机重复这些步骤。
REDHAT_PACKAGE_MIRROR_LOCATION 的值取决于 Red Hat 软件包镜像的位置。 如果使用了多个镜像,那么 REDHAT_PACKAGE_MIRROR_LOCATION 可以是通配符。 有关更多信息,请参阅 如何应用系统范围的代理。
公共镜像位置
以下列表提供了一些公共镜像位置。
- Azure
- 单独定义:
rhui-1.microsoft.com,rhui-2.microsoft.com和rhui-3.microsoft.com baseurl下的/etc/yum.repos.d/rh-cloud.repo- Google Cloud 提供者
cds.rhel.updates.googlecloud.commirrorlist下的/etc/yum.repos.d/rh-cloud.repo- 亚马逊网络服务
- 通配符:
aws.ce.redhat.com rhui3.REGION.aws.ce.redhat.commirrorlist下的/etc/yum.repos.d/redhat-rhui.repo- IBM Cloud
- 通配符:
service.networklayer.com - dal10:
rhncapdal1001.service.networklayer.com baseurl下的/etc/yum.repos.d/redhat.repo