8.11. 手动创建安装配置文件


安装集群要求您手动创建安装配置文件。

重要

Cluster Cloud Controller Manager Operator 对提供的主机名或 IP 地址执行连接检查。确保为可访问的 vCenter 服务器指定主机名或 IP 地址。如果您向不存在的 vCenter 服务器提供元数据,集群安装会在 bootstrap 阶段失败。

先决条件

  • 您在本地机器上有一个 SSH 公钥来提供给安装程序。该密钥将用于在集群节点上进行 SSH 身份验证,以进行调试和灾难恢复。
  • 已获取 OpenShift Container Platform 安装程序和集群的 pull secret。
  • 获取命令输出中的 imageContentSources 部分来 镜像存储库。
  • 获取您的镜像 registry 的证书内容。

流程

  1. 创建一个安装目录来存储所需的安装资产:

    $ mkdir <installation_directory>
    重要

    您必须创建一个目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。

  2. 自定义提供的 install-config.yaml 文件模板示例,并将其保存在 <installation_directory> 中。

    注意

    您必须将此配置文件命名为 install-config.yaml

    • 除非使用 RHCOS 默认信任的 registry,如 docker.io,否则必须在 additionalTrustBundle 部分中提供镜像存储库的证书内容。在大多数情况下,您必须为您的镜像提供证书。
    • 您必须包含命令输出中的 imageContentSources 部分,才能镜像存储库。
  3. 备份 install-config.yaml 文件,以便用于安装多个集群。

    重要

    install-config.yaml 文件会在安装过程的下一步中使用。现在必须备份它。

8.11.1. VMware vSphere 的 install-config.yaml 文件示例

您可以自定义 install-config.yaml 文件,以指定有关 OpenShift Container Platform 集群平台的更多详情,或修改所需参数的值。

apiVersion: v1
baseDomain: example.com 1
compute: 2
  name: worker
  replicas: 0 3
controlPlane: 4
  name: master
  replicas: 3 5
metadata:
  name: test 6
platform:
  vsphere:
    vcenter: your.vcenter.server 7
    username: username 8
    password: password 9
    datacenter: datacenter 10
    defaultDatastore: datastore 11
    folder: "/<datacenter_name>/vm/<folder_name>/<subfolder_name>" 12
    resourcePool: "/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>" 13
    diskType: thin 14
fips: false 15
pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 16
sshKey: 'ssh-ed25519 AAAA...' 17
additionalTrustBundle: | 18
  -----BEGIN CERTIFICATE-----
  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  -----END CERTIFICATE-----
imageContentSources: 19
- mirrors:
  - <mirror_host_name>:<mirror_port>/<repo_name>/release
  source: <source_image_1>
- mirrors:
  - <mirror_host_name>:<mirror_port>/<repo_name>/release-images
  source: <source_image_2>
1
集群的基域。所有 DNS 记录都必须是这个基域的子域,并包含集群名称。
2 4
controlPlane 部分是一个单个映射,但 compute 部分是一系列映射。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符(-)开头,controlPlane 部分的第一行不能以它开头。虽然这两个部分目前都定义了单一机器池,但未来的 OpenShift Container Platform 版本可能在安装过程中支持定义多个计算池。仅使用一个 control plane 池。
3
replicas 参数的值必须设置为 0。此参数控制集群为您创建和管理的 worker 数量,在使用用户置备的基础架构时集群不会执行这些功能。在完成 OpenShift Container Platform 安装前,您必须手动为集群部署 worker 机器。
5
您添加到集群的 control plane 机器数量。由于集群使用此值作为集群中的 etcd 端点数量,所以该值必须与您部署的 control plane 机器数量匹配。
6
您在 DNS 记录中指定的集群名称。
7
vCenter 服务器的完全限定主机名或 IP 地址。
重要

Cluster Cloud Controller Manager Operator 对提供的主机名或 IP 地址执行连接检查。确保为可访问的 vCenter 服务器指定主机名或 IP 地址。如果您向不存在的 vCenter 服务器提供元数据,集群安装会在 bootstrap 阶段失败。

8
用于访问服务器的用户的名称。
9
与 vSphere 用户关联的密码。
10
vSphere 数据中心.
11
要使用的默认 vSphere 数据存储。
12
可选参数:对于安装程序置备的基础架构,安装程序创建虚拟机的现有文件夹的绝对路径,如 /<datacenter_name>/vm/<folder_name>/<subfolder_name>。如果没有提供这个值,安装程序会在数据中心虚拟机文件夹中创建一个顶层文件夹,其名称为基础架构 ID。如果您为集群提供基础架构,且您不想使用默认的 StorageClass 对象(名为 thin),您可以从 install-config.yaml 文件中省略 folder 参数。
13
可选参数:对于安装程序置备的基础架构,安装程序创建虚拟机的现有文件夹的绝对路径,如 /<datacenter_name>/vm/<folder_name>/<subfolder_name>。如果没有提供这个值,安装程序会在数据中心虚拟机文件夹中创建一个顶层文件夹,其名称为基础架构 ID。如果您为集群提供基础架构,请省略此参数。
14
vSphere 磁盘置备方法。
15
是否启用或禁用 FIPS 模式。默认情况下不启用 FIPS 模式。如果启用了 FIPS 模式,运行 OpenShift Container Platform 的 Red Hat Enterprise Linux CoreOS(RHCOS)机器会绕过默认的 Kubernetes 加密套件,并使用由 RHCOS 提供的加密模块。
重要

要为集群启用 FIPS 模式,您必须从配置为以 FIPS 模式操作的 Red Hat Enterprise Linux (RHEL) 计算机运行安装程序。有关在 RHEL 中配置 FIPS 模式的更多信息,请参阅在 FIPS 模式中安装该系统。只有在 x86_64ppc64les390x 架构的 OpenShift Container Platform 部署中才支持使用 FIPS 验证的或Modules In Process 加密库。

16
对于 <local_registry>,请指定 registry 域名,以及您的镜像 registry 用来提供内容的可选端口。例如 registry.example.com 或 registry.example.com:5000。对于 <credentials>,请为您的镜像 registry 指定 base64 编码的用户名和密码。
17
Red Hat Enterprise Linux CoreOS(RHCOS)中 core 用户的默认 SSH 密钥的公钥部分。
注意

对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 ssh-agent 进程使用的 SSH 密钥。

18
提供用于镜像 registry 的证书文件内容。
19
提供命令输出中的 imageContentSources 部分来 镜像存储库。

8.11.2. 在安装过程中配置集群范围的代理

生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。

先决条件

  • 您有一个现有的 install-config.yaml 文件。
  • 您检查了集群需要访问的站点,并确定它们中的任何站点是否需要绕过代理。默认情况下,所有集群出口流量都经过代理,包括对托管云供应商 API 的调用。如果需要,您将在 Proxy 对象的 spec.noProxy 字段中添加站点来绕过代理。

    注意

    Proxy 对象 status.noProxy 字段使用安装配置中的 networking.machineNetwork[].cidrnetworking.clusterNetwork[].cidrnetworking.serviceNetwork[] 字段的值填充。

    对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装,Proxy 对象 status.noProxy 字段也会使用实例元数据端点填充(169.254.169.254)。

流程

  1. 编辑 install-config.yaml 文件并添加代理设置。例如:

    apiVersion: v1
    baseDomain: my.domain.com
    proxy:
      httpProxy: http://<username>:<pswd>@<ip>:<port> 1
      httpsProxy: https://<username>:<pswd>@<ip>:<port> 2
      noProxy: example.com 3
    additionalTrustBundle: | 4
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 5
    1
    用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是 http
    2
    用于创建集群外 HTTPS 连接的代理 URL。
    3
    要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加上 . 以仅匹配子域。例如,.y.com 匹配 x.y.com,但不匹配 y.com。使用 * 绕过所有目的地的代理。您必须包含 vCenter 的 IP 地址以及用于其机器的 IP 范围。
    4
    如果提供,安装程序会在 openshift-config 命名空间中生成名为 user-ca-bundle 的配置映射,其包含代理 HTTPS 连接所需的一个或多个额外 CA 证书。然后,Cluster Network Operator 会创建 trusted-ca-bundle 配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS(RHCOS)信任捆绑包合并, Proxy 对象的 trustedCA 字段中也会引用此配置映射。additionalTrustBundle 字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
    5
    可选:决定 Proxy 对象的配置以引用 trustedCA 字段中 user-ca-bundle 配置映射的策略。允许的值是 ProxyonlyAlways。仅在配置了 http/https 代理时,使用 Proxyonly 引用 user-ca-bundle 配置映射。使用 Always 始终引用 user-ca-bundle 配置映射。默认值为 Proxyonly
    注意

    安装程序不支持代理的 readinessEndpoints 字段。

    注意

    如果安装程序超时,重启并使用安装程序的 wait-for 命令完成部署。例如:

    $ ./openshift-install wait-for install-complete --log-level debug
  2. 保存该文件并在安装 OpenShift Container Platform 时引用。

安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用 提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec

注意

只支持名为 clusterProxy 对象,且无法创建额外的代理。

8.11.3. 为 VMware vCenter 配置区域和区域

您可以修改默认安装配置文件,将 OpenShift Container Platform 集群部署到在单个 VMware vCenter 中运行的多个 vSphere 数据中心。

重要

VMware vSphere 区域和区启用只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

重要

这个示例使用 govc 命令。govc 命令是 VMware 提供的开源命令。红帽没有提供 govc 命令。红帽支持不维护 govc 命令。有关下载和安装 govc 的说明,请参阅 VMware 文档网站。

先决条件

  • 您有一个现有的 install-config.yaml 安装配置文件。

    重要

    您必须为 OpenShift Container Platform 集群指定一个故障域,以便您可以为 VMware vCenter 服务器置备数据中心对象。如果您需要在不同的数据中心、集群、数据存储和其他组件中置备虚拟机节点,请考虑指定多个故障域。要启用区域和区域,您必须为 OpenShift Container Platform 集群定义多个故障域。

    注意

    在 VMware vSphere 平台上安装 OpenShift Container Platform 集群后,您无法更改故障域。您可以在集群安装后添加额外的故障域。

流程

  1. 输入以下 govc 命令行工具命令,以创建 openshift-regionopenshift-zone vCenter 标签类别:

    重要

    如果为 openshift-regionopenshift-zone vCenter 标签类别指定不同的名称,OpenShift Container Platform 集群的安装会失败。

    $ govc tags.category.create -d "OpenShift region" openshift-region
    $ govc tags.category.create -d "OpenShift zone" openshift-zone
  2. 要为您要部署集群的每个区域 vSphere 数据中心创建一个 region 标签,请在终端中输入以下命令:

    $ govc tags.create -c <region_tag_category> <region_tag>
  3. 要为您要部署集群的每个 vSphere 集群创建一个区标签,请输入以下命令:

    $ govc tags.create -c <zone_tag_category> <zone_tag>
  4. 输入以下命令将区域标签附加到每个 vCenter 数据中心对象:

    $ govc tags.attach -c <region_tag_category> <region_tag_1> /<datacenter_1>
  5. 输入以下命令将区标签附加到每个 vCenter 数据中心对象:

    $ govc tags.attach -c <zone_tag_category> <zone_tag_1> /<datacenter_1>/host/vcs-mdcnc-workload-1
  6. 进入包含安装程序的目录,并根据您选择的安装要求初始化集群部署。

在 vSphere 数据中心中定义的多个数据中心的 install-config.yaml 文件示例

apiVersion: v1
baseDomain: example.com
featureSet: TechPreviewNoUpgrade 1
compute:
  name: worker
  replicas: 3
  vsphere:
    zones: 2
      - "<machine_pool_zone_1>"
      - "<machine_pool_zone_2>"
controlPlane:
  name: master
  replicas: 3
  vsphere:
    zones: 3
      - "<machine_pool_zone_1>"
      - "<machine_pool_zone_2>"
metadata:
  name: cluster
platform:
  vsphere:
    vcenter: <vcenter_server> 4
    username: <username> 5
    password: <password> 6
    datacenter: datacenter 7
    defaultDatastore: datastore 8
    folder: "/<datacenter_name>/vm/<folder_name>/<subfolder_name>" 9
    cluster: cluster 10
    resourcePool: "/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>" 11
    diskType: thin
    failureDomains: 12
    - name: <machine_pool_zone_1> 13
      region: <region_tag_1> 14
      zone: <zone_tag_1> 15
      topology: 16
        datacenter: <datacenter1> 17
        computeCluster: "/<datacenter1>/host/<cluster1>" 18
        resourcePool: "/<datacenter1>/host/<cluster1>/Resources/<resourcePool1>" 19
        networks: 20
        - <VM_Network1_name>
        datastore: "/<datacenter1>/datastore/<datastore1>" 21
    - name: <machine_pool_zone_2>
      region: <region_tag_2>
      zone: <zone_tag_2>
      topology:
        datacenter: <datacenter2>
        computeCluster: "/<datacenter2>/host/<cluster2>"
        networks:
        - <VM_Network2_name>
        datastore: "/<datacenter2>/datastore/<datastore2>"
        resourcePool: "/<datacenter2>/host/<cluster2>/Resources/<resourcePool2>"
        folder: "/<datacenter2>/vm/<folder2>"
# ...

1
您必须将 TechPreviewNoUpgrade 定义为此参数的值,以便您可以使用 VMware vSphere 区域和区启用功能。
2 3
用于指定 vCenter 集群的可选参数。您可以使用 openshift-zone 标签类别中的标签来定义区。如果没有定义此参数,节点将分布到所有定义的 failure-domains 中。
4 5 6 7 8 9 10 11
默认 vCenter 拓扑。安装程序使用此拓扑信息来部署 bootstrap 节点。另外,拓扑定义了 vSphere 持久性卷的默认数据存储。
12
建立地区和区域之间的关系。您可以使用 vCenter 对象(如数据存储对象)定义故障域。故障域定义 OpenShift Container Platform 集群节点的 vCenter 位置。如果没有定义此参数,安装程序将使用默认 vCenter 拓扑。
13
定义故障域的名称。在 zones 参数中引用每个故障域,将机器池范围到故障域。
14
您可以使用 openshift-region 标签类别中的标签来定义区域。标签必须附加到 vCenter 数据中心。
15
您可以使用 openshift-zone tag 类别中的标签来定义区。标签必须附加到 vCenter 数据中心。
16
指定与故障域关联的 vCenter 资源。
17
用于定义与故障域关联的 vSphere 数据中心的可选参数。如果没有定义此参数,安装程序将使用默认 vCenter 拓扑。
18
可选参数,用于指示与故障域关联的计算集群的绝对路径。如果没有定义此参数,安装程序将使用默认 vCenter 拓扑。
19
安装程序置备的基础架构的可选参数。参数设置安装程序创建虚拟机的现有资源池的绝对路径,例如 /<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name>。如果没有指定值,则会在集群 /example_datacenter/host/example_cluster/Resources 根中安装资源。
20
列出 vCenter 实例中包含您配置的虚拟 IP 地址和 DNS 记录的任何网络的可选参数。如果没有定义此参数,安装程序将使用默认 vCenter 拓扑。
21
用于指定用于置备卷的数据存储的可选参数。如果没有定义此参数,安装程序将使用默认 vCenter 拓扑。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.