安装之前
- 在 Red Hat 中设置帐户,并在瞻博网络建立帐户。
您需要有红帽帐户才能使用托管辅助安装服务,而需要瞻博网络帐户才能下载 CN2 清单、容器包和工具。
- 根据是使用用户托管网络(图 1)还是使用群集托管网络(图 1)安装,设置交换矩阵并将节点连接到交换矩阵。
- 配置辅助安装客户端计算机。
- 在辅助安装器客户端上安装新操作系统,对操作系统进行最小配置以用于以下方面:
- 静态 IP 地址和掩码(例如,172.16.0.10/24)和网关
- 访问一个或多个 DNS 服务器
- SSH 连接,包括根 SSH 接入
- Ntp
- 卷曲
- jq
- 安装 Helm 3.0 或更高版本(可选)。如果要安装 Contrail Analytics,需要 Helm。
为方便起见,将从 https://helm.sh/docs/intro/install/ 复制以下步骤:
-
下载 get_helm.sh 脚本:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
-
安装 Helm。
chmod 700 get_helm.sh
./get_helm.sh
-
- 在辅助安装器客户端上安装新操作系统,对操作系统进行最小配置以用于以下方面:
- 从瞻博网络下载 CN2 网络清单和工具包。
- 将 CN2 网络清单和工具包(请参阅清单和工具)下载到本地计算机。
- 将下载的清单和工具包复制到辅助安装客户端计算机并提取。
user@ai-client~/tmp$ tar -xzvf contrail-manifests-openshift-<version>.tgz
- 确定您想要使用的清单并将其复制到单独的目录中。有关清单的说明,请参阅版本清单和工具。
请确保复制计划使用的所有清单,包括子目录中的清单(如果适用)。在我们的示例中,我们会将清单复制到 清单 目录中。不要自行复制子目录。 清单 目录应该是平面目录。
- 用存储库登录凭据填写清单。
将您的存储库登录凭据添加到 contrail-manifests-openshift/auth-registry 清单中。请参阅 配置存储库凭据。
- 根据需要为您的环境自定义清单。
如果在虚拟机上运行群集节点,请编辑以下文件以参考接口的实际名称。这些清单禁用虚拟机上指定接口上的校验和卸载。(校验和卸载通常仅在裸机服务器上的实际 NIC 上受支持。)
- 99-disable-offload-master.yaml - 此清单禁用用于 Kubernetes 控制平面流量的接口上的控制平面节点上的卸载。在我们的示例中,这是连接到 172.16.0.0/24 网络的接口。
- 99-disable-offload-worker.yaml - 此清单禁用用于 Kubernetes 控制平面流量的接口上工作线程节点上的分载。在我们的示例中,这是连接到 172.16.0.0/24 网络的接口。
- 99-disable-offload-master-vrrp.yaml - 此清单用于禁用用于 Contrail 控制平面和用户数据平面流量的接口上的控制平面节点上的卸载。仅当为 Contrail 控制和数据流量运行单独的接口时(例如,在使用群集托管网络时),才包括此功能。这是我们在群集托管网络示例中连接到 10.16.0.0/24 网络的接口。
- 99-disable-offload-worker-vrrp.yaml - 此清单禁用用于 Contrail 控制平面和用户数据平面流量的接口上工作线程节点上的卸载。仅当为 Contrail 控制和数据流量运行单独的接口时(例如,在使用群集托管网络时),才包括此功能。这是我们在群集托管网络示例中连接到 10.16.0.0/24 网络的接口。
查找这些清单中的行
ExecStart=/sbin/ethtool -K ens3 tx off
ExecStart=/sbin/ethtool -K ens4 tx off
,并根据需要更改接口名称,以便与控制平面或辅助角色节点上的接口名称匹配。 - 如果使用群集托管网络,请指定 Contrail 控制和数据网络。
编辑以下文件以引用用于 Contrail 控制平面和用户数据平面流量的子网和网关:
- 99-network-configmap.yaml - 此清单为 Contrail 控制平面和用户数据平面流量指定网络。取消对清单中的 contrail-network-config ConfigMap 规范的注释,并指定适当的子网和网关(例如 10.16.0.0/24 和 10.16.0.254)。
- 如果要将 CN2 与 Juniper Apstra 集成,请配置您的 Juniper Apstra 登录凭据。
在 contrail-manifests-openshift/plugins/111-apstra-secret.yaml 清单中配置您的 Apstra 登录凭据。确保您指定的用户名和密码采用 base64 编码。有关更多信息,请参阅 https://www.juniper.net/documentation/us/en/software/cn-cloud-native22.4/cn-cloud-native-feature-guide/index.html。
- 在辅助安装程序客户端机器上安装 contrailstatus。Contrailstatus 是一个 kubectl 插件,可用来查询 CN2 微服务和特定于 CN2 的资源。
Contrailstatus 可执行文件打包在下载的工具包中。提取 kubectl-contrailstatus 可执行文件并将其复制到 /usr/local/bin。
- 安装负载平衡器(如果您使用用户托管的网络运行)。使用群集托管网络运行时,不需要执行这一步。
在此示例中,我们在辅助安装客户端机器上运行 haxproxy。您可以选择为安装运行不同的负载平衡器。
- 安装负载平衡器。
例如:
sudo dnf install haproxy
- 配置负载平衡器。
我们使用单个 IP 地址 (172.16.0.10),用于将 API 和入口流量分发到群集中的节点。
表 1:负载平衡器条目示例 流量前端 后端 类型 Api
172.16.0.10:6443
172.16.0.11:6443
172.16.0.12:6443
172.16.0.13:6443
api-int 172.16.0.10:22623
172.16.0.11:22623
172.16.0.12:22623
172.16.0.13:22623
https 172.16.0.10:443
172.16.0.14:443
172.16.0.15:443
http 172.16.0.10:80
172.16.0.14:80
172.16.0.15:80
frontend api bind 172.16.0.10:6443 default_backend controlplaneapi frontend apiinternal bind 172.16.0.10:22623 default_backend controlplaneapiinternal frontend secure bind 172.16.0.10:443 default_backend secure frontend insecure bind 172.16.0.10:80 default_backend insecure backend controlplaneapi balance roundrobin server cp0 172.16.0.11:6443 check server cp1 172.16.0.12:6443 check server cp2 172.16.0.13:6443 check backend controlplaneapiinternal balance roundrobin server cp0 172.16.0.11:22623 check server cp1 172.16.0.12:22623 check server cp2 172.16.0.13:22623 check backend secure balance roundrobin server worker0 172.16.0.14:443 check server worker1 172.16.0.15:443 check backend insecure balance roundrobin server worker0 172.16.0.14:80 check server worker1 172.16.0.15:80 check
- 启动负载平衡器。
例如:
systemctl start haproxy
注意:如果运行 selinux,则可能需要显式允许 haproxy 侦听端口 (
setsebool -P haproxy_connect_any 1)
.
- 安装负载平衡器。
- 在您的网络中安装 DNS/DHCP 服务器,为 Kubernetes 节点提供服务。
在此示例中,我们在辅助安装客户端机器上运行 dnsmasq。您可以选择运行不同的 DNS/DHCP 服务器进行安装。
- 安装 DNS/DHCP 服务器。
Dnsmasq 预装在一些 RHEL OS 软件包上。如果未预安装,可按如下所示安装:
sudo dnf install dnsmasq
- 配置域名和 DHCP 条目。
表 2:DHCP 分配示例 完全限定的域名 IP 地址 ocp1.mycluster.contrail.lan 172.16.0.11 ocp2.mycluster.contrail.lan 172.16.0.12 ocp3.mycluster.contrail.lan 172.16.0.13 ocp4.mycluster.contrail.lan 172.16.0.14 ocp5.mycluster.contrail.lan 172.16.0.15 注意:使用辅助安装服务时,完全限定的域名构造如下:
<hostname>.<cluster name>.<domain name>
在此示例中,我们用作 ocpn 主机名、 mycluster 群集名称和 contrail.lan 域名。
- 配置 DNS 条目。
表 3:DNS 条目示例 主机名 IP 地址 说明 ocp1.mycluster.contrail.lan 172.16.0.11 与 DHCP 分配相同 ocp2.mycluster.contrail.lan 172.16.0.12 与 DHCP 分配相同 ocp3.mycluster.contrail.lan 172.16.0.13 与 DHCP 分配相同 ocp4.mycluster.contrail.lan 172.16.0.14 与 DHCP 分配相同 ocp5.mycluster.contrail.lan 172.16.0.15 与 DHCP 分配相同 api.mycluster.contrail.lan 172.16.0.10 外部 API 流量负载平衡器。仅适用于用户托管的网络。 api-int.mycluster.contrail.lan 172.16.0.10 用于内部 API 流量的负载平衡器。仅适用于用户托管的网络。 app.mycluster.contrail.lan 172.16.0.10 入口流量负载平衡器。仅适用于用户托管的网络。 *.apps.mycluster.contrail.lan 172.16.0.10 入口流量负载平衡器。仅适用于用户托管的网络。 dhcp-host=52:54:00:00:11:11,ocp1.mycluster.contrail.lan,172.16.0.11 dhcp-host=52:54:00:00:11:22,ocp2.mycluster.contrail.lan,172.16.0.12 dhcp-host=52:54:00:00:11:33,ocp3.mycluster.contrail.lan,172.16.0.13 dhcp-host=52:54:00:00:11:44,ocp4.mycluster.contrail.lan,172.16.0.14 dhcp-host=52:54:00:00:11:55,ocp5.mycluster.contrail.lan,172.16.0.15 host-record=api.mycluster.contrail.lan,172.16.0.10 address=/.apps.mycluster.contrail.lan/172.16.0.10 address=/api-int.mycluster.contrail.lan/172.16.0.10
- 启动 DNS/DHCP 服务器。
例如:
systemctl start dnsmasq
- 安装 DNS/DHCP 服务器。
- 从 Red Hat 下载 OpenShift 命令行界面工具 (oc)。此软件包包含 kubectl。
- 在本地计算机的浏览器上,转至 https://console.redhat.com/openshift/downloads#tool-oc 并下载 OpenShift 命令行界面工具 (oc)。
- 将下载的软件包复制到辅助安装客户端计算机并解开。
user@ai-client:~/$ tar -xzvf openshift-client-linux.tar.gz README.md oc kubectl
- 将 oc 和 kubectl 可执行文件复制到路径中的目录中(例如 /usr/local/bin)。