1.5. 创建基础架构环境
您可以使用 Red Hat Advanced Cluster Management for Kubernetes 控制台创建一个基础架构环境,以管理主机并在这些主机上创建集群。
基础架构环境支持以下功能:
- 集群的零接触置备:使用脚本部署集群。如需更多信息,请参阅 Red Hat OpenShift Container Platform 文档中的在断开连接的环境中部署分布式单元。
- 最后绑定:启用主机由基础架构管理员引导,并且集群的创建者可以稍后将集群绑定到该主机。在使用较晚绑定时,集群创建者不需要具有基础架构的管理员特权。
-
双堆栈:部署具有 IPv4 和 IPv6 地址的集群。双堆栈使用
OVN-Kubernetes
网络实现来支持多个子网。 - 添加远程 worker 节点:在集群创建并运行后向集群添加远程 worker 节点,从而提供在其他位置添加节点以进行备份的灵活性。
- 使用 NMState 的静态 IP:使用 NMState API 为您的环境定义静态 IP 地址。
1.5.1. 先决条件
在创建基础架构环境前,请查看以下先决条件:
- 您必须在 hub 集群中部署了 OpenShift Container Platform。
- 对于联网环境,通过互联网访问 Red Hat Advanced Cluster Management hub 集群;对于非联网环境,连接到一个可访问互联网的内部或镜像 registry,以获取创建环境所需的镜像。
- hub 集群中中央基础架构管理 (CIM) 功能配置的实例。请参阅启用中央基础架构管理服务。
- 您需要 OpenShift Container Platform pull secret。如需更多信息,请参阅使用镜像 pull secret。
-
默认情况下,您的 SSH 密钥位于
~/.ssh/id_rsa.pub
文件中。 - 您需要一个配置的存储类。
- 断开连接的环境: 完成 OpenShift Container Platform 文档中的准备断开连接的环境的步骤。
1.5.2. 启用中央基础架构管理服务
Central Infrastructure Management 服务随 {mce-short} 提供,并部署 OpenShift Container Platform 集群。当您在 hub 集群上启用 MultiClusterHub
Operator 时,CIM 被部署,但必须启用。
要启用 CIM 服务,请完成以下步骤:
重要: 只有在以下其中一个平台上安装了 hub 集群:裸机、Red Hat OpenStack Platform、VMware vSphere 或使用用户置备的基础架构(UPI)方法安装,且平台为 None
,请完成以下步骤。如果您的 hub 集群位于任何其他平台上,请跳过这一步。
运行以下命令,修改
Provisioning
资源以允许 Bare Metal Operator 监视所有命名空间:oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'
对于断开连接的环境: 在与基础架构 Operator 相同的命名空间中创建一个
ConfigMap
,为您的镜像 registry 指定ca-bundle.crt
和registry.conf
的值。您的文件ConfigMap
应该类似以下示例:apiVersion: v1 kind: ConfigMap metadata: name: <mirror-config> namespace: "<infrastructure-operator-namespace>" labels: app: assisted-service data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- certificate contents -----END CERTIFICATE----- registries.conf: | unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] prefix = "" location = "quay.io/edge-infrastructure" mirror-by-digest-only = false [[registry.mirror]] location = "mirror1.registry.corp.com:5000/edge-infrastructure"
1.5.2.1. 创建 AgentServiceConfig 自定义资源
通过完成以下步骤来创建 AgentServiceConfig
自定义资源:
仅限断开连接的环境: 在
agent_service_config.yaml
文件中保存以下YAML
内容,并根据需要替换值:apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent spec: databaseStorage: accessModes: - ReadWriteOnce resources: requests: storage: <db_volume_size> filesystemStorage: accessModes: - ReadWriteOnce resources: requests: storage: <fs_volume_size> mirrorRegistryRef: name: <mirror_config> unauthenticatedRegistries: - <unauthenticated_registry> imageStorage: accessModes: - ReadWriteOnce resources: requests: storage: <img_volume_size> osImages: - openshiftVersion: "<ocp_version>" version: "<ocp_release_version>" url: "<iso_url>" rootFSUrl: "<root_fs_url>" cpuArchitecture: "x86_64"
将
mirror_config
替换为包含您的镜像 registry 配置详情的ConfigMap
名称。如果您使用不需要身份验证的镜像 registry,请包含可选的
unauthenticated_registry
参数。此列表上的条目不会被验证,或者需要在 pull secret 中有一个条目。仅限连接的环境: 在
agent_service_config.yaml
文件中保存以下YAML
内容:apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent spec: databaseStorage: accessModes: - ReadWriteOnce resources: requests: storage: <db_volume_size> filesystemStorage: accessModes: - ReadWriteOnce resources: requests: storage: <fs_volume_size> imageStorage: accessModes: - ReadWriteOnce resources: requests: storage: <img_volume_size>
使用
databaseStorage
字段的卷大小替换db_volume_size
,如10Gi
。这个值指定为存储集群分配的存储量,如数据库表和数据库视图。如果有多个集群,您可能需要使用较高的值。将
fs_volume_size
替换为filesystemStorage
字段的卷大小,例如,每个集群200M
和每个支持的 OpenShift Container Platform 版本2-3G
。所需的最小值为100G
。这个值指定为存储集群的日志、清单和kubeconfig
文件分配了多少存储。如果有多个集群,您可能需要使用较高的值。将
img_volume_size
替换为imageStorage
字段的卷大小,例如每个操作系统镜像的2G
。最小值为50G
。这个值指定为集群镜像分配多少存储。您需要为每个运行的 Red Hat Enterprise Linux CoreOS 实例提供 1 GB 的镜像存储。如果 Red Hat Enterprise Linux CoreOS 有多个集群和实例,您可能需要使用更高的值。将
ocp_version
替换为要安装的 OpenShift Container Platform 版本,如4.9
。将
ocp_release_version
替换为特定的安装版本,例如:49.83.202103251640-0
。使用 ISO url 替换
iso_url
,例如https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/rhcos-4.10.3-x86_64-live.x86_64.iso
。您可以在以下位置找到其他值:https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/。使用 root FS 镜像 URL 替换
root_fs_url
,例如https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/rhcos-4.10.3-x86_64-live-rootfs.x86_64.img
。您可以在以下位置找到其他值:https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.10/4.10.3/。运行以下命令来创建
AgentServiceConfig
自定义资源:oc create -f agent_service_config.yaml
输出可能类似以下示例:
agentserviceconfig.agent-install.openshift.io/agent created
您可以通过检查 assisted-service
和 assisted-image-service
部署,确定 pod 已就绪并在运行,来验证其状态是否正常。使用控制台继续创建基础架构环境。
1.5.2.2. 手动创建 Provisioning 自定义资源 (CR)
使用以下命令手动创建 Provisioning
CR 来为自动置备启用服务:
oc create -f provisioning-configuration.yaml
您的 CR 可能类似以下示例:
apiVersion: metal3.io/v1alpha1 kind: Provisioning metadata: name: provisioning-configuration spec: provisioningNetwork: Disabled watchAllNamespaces: true
1.5.2.3. 在 Amazon Web Services 上启用中央基础架构管理
如果您在 Amazon Web Services 上运行 hub 集群并希望启用 CIM 服务,请在 启用 CIM 后完成以下步骤:
确保已在 hub 中登录,并通过运行以下命令查找在
assisted-image-service
上配置的唯一域:oc get routes --all-namespaces | grep assisted-image-service
您的域可能类似以下示例:
assisted-image-service-multicluster-engine.apps.<yourdomain>.com
确保已在 hub 中登录,并使用
NLB
type
参数创建带有唯一域的新IngressController
。请参见以下示例:apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: ingress-controller-with-nlb namespace: openshift-ingress-operator spec: domain: nlb-apps.<domain>.com routeSelector: matchLabels: router-type: nlb endpointPublishingStrategy: type: LoadBalancerService loadBalancer: scope: External providerParameters: type: AWS aws: type: NLB
-
将
<yourdomain>
添加到IngressController
中的domain
参数,方法是使用<yourdomain>
替换nlb-apps.<domain>.com
的<domain>
。 使用以下命令应用新的
IngressController
:oc apply -f ingresscontroller.yaml
运行以下命令来编辑
assisted-image-service
路由以使用nlb-apps
位置:oc edit route assisted-image-service -n <namespace>
提示:默认命名空间是您安装 :mce: 的位置。
在
assisted-image-service
路由中添加以下行:metadata: labels: router-type: nlb name: assisted-image-service
在
assisted-image-service
路由中,找到spec.host
的 URL 值。URL 可能类似以下示例:assisted-image-service-multicluster-engine.apps.<yourdomain>.com
-
将 URL 中的
apps
替换为nlb-apps
,以匹配新IngressController
中配置的域。
要验证 CIM 服务是否在 Amazon Web Services 上启用,请完成以下步骤:
运行以下命令验证 pod 是否健康:
oc get pods -n multicluster-engine | grep assist
-
创建新的基础架构环境,并确保下载 URL 使用新的
nlb-apps
URL。
1.5.3. 使用控制台创建基础架构环境
要从 Red Hat Advanced Cluster Management 控制台创建基础架构环境,请完成以下步骤:
- 在导航菜单中导航到 Infrastructure > Infrastructure environments,再点 Create infrastructure environment。
在您的基础架构环境设置中添加以下信息:
- 名称:您的环境的唯一名称。
- 网络类型:指定可以将哪些类型的主机添加到您的环境中。您只能在使用裸机主机时使用静态 IP 选项。
- 位置:指定主机的地理位置。地理位置可用于在创建集群时轻松确定集群中的数据的存储位置。
- 标签:您可以在基础架构环境中添加标签的可选字段,以便您可以更轻松地将环境与具有特征的其他环境进行分组。您为网络类型和位置所做的选择将自动添加到标签列表中。
- pull secret:用于访问 OpenShift Container Platform 资源的 OpenShift Container Platform pull secret。
-
SSH 公钥:实现与主机安全通信的 SSH 密钥。默认情况下,这通常在您的
~/.ssh/id_rsa.pub
文件中。 如果要在所有集群中启用代理设置,请选择设置来启用它。这要求您输入以下信息:
- HTTP 代理 URL:在访问发现服务时使用的 URL。
-
HTTPS 代理 URL:访问发现服务时应使用的安全代理 URL。请注意,格式必须是
http
,因为尚不支持https
。 -
无代理域:应当绕过代理的以逗号分隔的域列表。使用一个句点 (
.
) 开始的域名,包含该域中的所有子域。添加星号 (*
) 以绕过所有目的地的代理。
现在,您可以通过将主机添加到基础架构环境来继续。
要访问基础架构环境,请在控制台中选择 Infrastructure > Host inventory。从列表中选择您的基础架构环境,以查看该基础架构环境的详细信息和主机。
1.5.4. 将主机添加到基础架构环境中
您可以使用 Red Hat Advanced Cluster Management for Kubernetes 控制台将主机添加到基础架构环境中。通过添加主机,可以在创建集群时选择已配置的主机。
完成以下步骤以添加主机:
- 在 Red Hat Advanced Cluster Management 导航中,选择 Infrastructure > Infrastructure environments。
- 选择您要添加主机以查看其设置的基础架构环境。
- 选择 Hosts 选项卡来查看已添加到该环境中的主机并添加主机。可用主机可能需要几分钟时间才会出现在表中。
- 选择 Discovery ISO 或 Baseboard Management Controller(BMC) 来输入主机的信息。
如果您选择了 Discovery ISO 选项,请完成以下步骤:
- 复制控制台中提供的命令,以下载 ISO 或选择 Download Discovery ISO。
- 在可引导设备上运行 命令,以启动每个主机。
- 若要提高安全性,您需要为每个发现的主机选择批准主机。这一额外步骤可在您的 ISO 文件由未经授权的人员更改并运行时提供一些保护。
-
将主机(即
localhost
)重命名为唯一名称。
如果您选择 Baseboard Management Controller(BMC) 选项,请完成以下步骤:
注:只有 Red Hat Advanced Cluster Management hub 集群平台为裸机、Red Hat OpenStack Platform、VMware vSphere 或是使用用户置备的基础架构(UPI)方法安装的,可以使用添加主机的 BMC 选项,平台为
None
。- 添加主机的 BMC 连接详情。
选择 Add host 以开始引导过程。主机通过使用发现 ISO 镜像自动引导,并在主机启动时添加到主机列表中。
当您使用 BMC 选项添加主机时,该主机会被自动批准。
现在,您可以在此基础架构环境中创建一个内部集群。如需了解更多与创建集群相关的信息,请参阅在内部环境中创建集群。