×

在 OpenShift Container Platform 4.17 版本中,您可以安装具有自定义网络配置的集群,该集群在安装程序在 Azure Stack Hub 上配置的基础架构上运行。通过自定义您的网络配置,您的集群可以与环境中现有的 IP 地址分配共存,并与现有的 MTU 和 VXLAN 配置集成。

虽然在使用安装程序部署使用安装程序配置的基础架构的集群时可以选择 `azure`,但此选项仅支持 Azure 公有云。

先决条件

上传 RHCOS 集群映像

您必须下载 RHCOS 虚拟硬盘 (VHD) 集群映像并将其上传到您的 Azure Stack Hub 环境,以便在部署过程中可以访问它。

先决条件
  • 为您的集群生成 Ignition 配置文件。

步骤
  1. 获取 RHCOS VHD 集群映像

    1. 将 RHCOS VHD 的 URL 导出到环境变量。

      $ export COMPRESSED_VHD_URL=$(openshift-install coreos print-stream-json | jq -r '.architectures.x86_64.artifacts.azurestack.formats."vhd.gz".disk.location')
    2. 在本地下载压缩的 RHCOS VHD 文件。

      $ curl -O -L ${COMPRESSED_VHD_URL}
  2. 解压缩 VHD 文件。

    解压缩后的 VHD 文件大约为 16 GB,因此请确保您的主机系统有 16 GB 的可用空间。上传 VHD 文件后,可以将其删除。

  3. 将本地 VHD 上传到 Azure Stack Hub 环境,确保 blob 可公开访问。例如,您可以使用az cli 或 Web 门户将 VHD 上传到 blob。

手动创建安装配置文件

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

先决条件
  • 您在本地机器上有一个 SSH 公钥,需要提供给安装程序。此密钥将用于 SSH 身份验证到您的集群节点,用于调试和灾难恢复。

  • 您已获得 OpenShift Container Platform 安装程序和集群的拉取密钥。

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

    $ mkdir <installation_directory>

    您必须创建一个目录。某些安装资产(如引导 X.509 证书)的有效期很短,因此您不能重复使用安装目录。如果您想从另一个集群安装中重复使用单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在不同版本之间发生更改。从较早的 OpenShift Container Platform 版本复制安装文件时,请谨慎操作。

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

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

    进行以下修改

    1. 指定所需的安装参数。

    2. 更新platform.azure 部分以指定 Azure Stack Hub 特定的参数。

    3. 可选:更新一个或多个默认配置参数以自定义安装。

      有关参数的更多信息,请参见“安装配置参数”。

  3. 备份install-config.yaml 文件,以便您可以使用它来安装多个集群。

    install-config.yaml 文件在安装过程的下一步中使用。您现在必须对其进行备份。

Azure Stack Hub 的示例自定义 install-config.yaml 文件

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

此示例 YAML 文件仅供参考。将其作为资源,将参数值输入到您手动创建的安装配置文件中。

apiVersion: v1
baseDomain: example.com (1)
credentialsMode: Manual
controlPlane:  (2) (3)
  name: master
  platform:
    azure:
      osDisk:
        diskSizeGB: 1024 (4)
        diskType: premium_LRS
  replicas: 3
compute: (2)
- name: worker
  platform:
    azure:
      osDisk:
        diskSizeGB: 512 (4)
        diskType: premium_LRS
  replicas: 3
metadata:
  name: test-cluster  (1) (5)
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 10.0.0.0/16
  networkType: OVNKubernetes (6)
  serviceNetwork:
  - 172.30.0.0/16
platform:
  azure:
    armEndpoint: azurestack_arm_endpoint  (1) (7)
    baseDomainResourceGroupName: resource_group  (1) (8)
    region: azure_stack_local_region  (1) (9)
    resourceGroupName: existing_resource_group (10)
    outboundType: Loadbalancer
    cloudName: AzureStackCloud (1)
    clusterOSimage: https://vhdsa.blob.example.example.com/vhd/rhcos-410.84.202112040202-0-azurestack.x86_64.vhd  (1) (11)
pullSecret: '{"auths": ...}'  (1) (12)
fips: false (13)
sshKey: ssh-ed25519 AAAA... (14)
additionalTrustBundle: | (15)
    -----BEGIN CERTIFICATE-----
    <MY_TRUSTED_CA_CERT>
    -----END CERTIFICATE-----
1 必需。
2 如果您不提供这些参数和值,安装程序将提供默认值。
3 controlPlane 部分是一个单映射,但compute 部分是一系列映射。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符-开头,而controlPlane 部分的第一行则不能。尽管这两个部分目前都定义了一个单机池,但 OpenShift Container Platform 的未来版本可能会支持在安装过程中定义多个计算池。仅使用一个控制平面池。
4 您可以指定要使用的磁盘大小(以 GB 为单位)。控制平面节点的最低建议值为 1024 GB。
5 集群的名称。
6 要安装的集群网络插件。默认值OVNKubernetes 是唯一支持的值。
7 您的 Azure Stack Hub 运营商提供的 Azure 资源管理器端点。
8 包含您的基础域的 DNS 区域的资源组的名称。
9 您的 Azure Stack Hub 本地区域的名称。
10 要将集群安装到的现有资源组的名称。如果未定义,则会为集群创建一个新的资源组。
11 Azure Stack 环境中包含 RHCOS VHD 的存储 blob 的 URL。
12 验证集群所需的拉取密钥。
13 是否启用或禁用 FIPS 模式。默认情况下,FIPS 模式未启用。如果启用了 FIPS 模式,则 OpenShift Container Platform 运行的 Red Hat Enterprise Linux CoreOS (RHCOS) 机器将绕过默认的 Kubernetes 加密套件,并改用 RHCOS 提供的加密模块。

在 FIPS 模式下运行 Red Hat Enterprise Linux (RHEL) 或 Red Hat Enterprise Linux CoreOS (RHCOS) 时,OpenShift Container Platform 核心组件仅在 x86_64、ppc64le 和 s390x 架构上使用已提交给 NIST 以进行 FIPS 140-2/140-3 验证的 RHEL 加密库。

14 您可以选择提供用于访问集群中机器的sshKey 值。

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

15 如果 Azure Stack Hub 环境使用内部证书颁发机构 (CA),则需要添加 CA 证书。

手动管理云凭据

云凭据运营商 (CCO) 仅在手动模式下支持您的云提供商。因此,您必须为您的云提供商指定身份和访问管理 (IAM) 机密。

步骤
  1. 如果您以前没有创建安装清单文件,请运行以下命令来创建

    $ openshift-install create manifests --dir <installation_directory>

    其中<installation_directory> 是安装程序创建文件的目录。

  2. 通过运行以下命令,使用安装文件中的发行版映像设置$RELEASE_IMAGE 变量

    $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
  3. 通过运行以下命令,从 OpenShift Container Platform 发行版映像中提取CredentialsRequest 自定义资源 (CR) 列表

    $ oc adm release extract \
      --from=$RELEASE_IMAGE \
      --credentials-requests \
      --included \(1)
      --install-config=<path_to_directory_with_installation_configuration>/install-config.yaml \(2)
      --to=<path_to_directory_for_credentials_requests> (3)
    1 --included 参数仅包含特定集群配置所需的清单。
    2 指定install-config.yaml 文件的位置。
    3 指定要存储CredentialsRequest 对象的目录的路径。如果指定的目录不存在,则此命令将创建它。

    此命令将为每个CredentialsRequest 对象创建一个 YAML 文件。

    示例CredentialsRequest 对象
    apiVersion: cloudcredential.openshift.io/v1
    kind: CredentialsRequest
    metadata:
      name: <component_credentials_request>
      namespace: openshift-cloud-credential-operator
      ...
    spec:
      providerSpec:
        apiVersion: cloudcredential.openshift.io/v1
        kind: AzureProviderSpec
        roleBindings:
        - role: Contributor
      ...
  4. 为以前生成的openshift-install 清单目录中的密钥创建 YAML 文件。必须使用每个CredentialsRequest 对象的spec.secretRef 中定义的命名空间和密钥名称来存储密钥。

    包含密钥的示例CredentialsRequest 对象
    apiVersion: cloudcredential.openshift.io/v1
    kind: CredentialsRequest
    metadata:
      name: <component_credentials_request>
      namespace: openshift-cloud-credential-operator
      ...
    spec:
      providerSpec:
        apiVersion: cloudcredential.openshift.io/v1
        kind: AzureProviderSpec
        roleBindings:
        - role: Contributor
          ...
      secretRef:
        name: <component_secret>
        namespace: <component_namespace>
      ...
    示例Secret 对象
    apiVersion: v1
    kind: Secret
    metadata:
      name: <component_secret>
      namespace: <component_namespace>
    data:
      azure_subscription_id: <base64_encoded_azure_subscription_id>
      azure_client_id: <base64_encoded_azure_client_id>
      azure_client_secret: <base64_encoded_azure_client_secret>
      azure_tenant_id: <base64_encoded_azure_tenant_id>
      azure_resource_prefix: <base64_encoded_azure_resource_prefix>
      azure_resourcegroup: <base64_encoded_azure_resourcegroup>
      azure_region: <base64_encoded_azure_region>

在升级使用手动维护的凭据的集群之前,您必须确保 CCO 处于可升级状态。

配置集群以使用内部 CA

如果 Azure Stack Hub 环境使用内部证书颁发机构 (CA),请更新cluster-proxy-01-config.yaml 文件以配置集群使用内部 CA。

先决条件
  • 创建install-config.yaml文件,并指定 .pem 格式的证书信任捆绑包。

  • 创建集群清单。

步骤
  1. 从安装程序创建文件的目录转到manifests目录。

  2. user-ca-bundle添加到spec.trustedCA.name字段。

    cluster-proxy-01-config.yaml文件示例
    apiVersion: config.openshift.io/v1
    kind: Proxy
    metadata:
      creationTimestamp: null
      name: cluster
    spec:
      trustedCA:
        name: user-ca-bundle
    status: {}
  3. 可选:备份manifests/cluster-proxy-01-config.yaml文件。安装程序在您部署集群时会使用manifests/目录。

网络配置阶段

在 OpenShift Container Platform 安装之前,有两个阶段可以自定义网络配置。

阶段 1

在创建清单文件之前,您可以在install-config.yaml文件中自定义以下与网络相关的字段

  • networking.networkType

  • networking.clusterNetwork

  • networking.serviceNetwork

  • networking.machineNetwork

    更多信息,请参见“安装配置参数”。

    networking.machineNetwork设置为与首选子网所在的无类域间路由 (CIDR) 匹配。

    CIDR 范围172.17.0.0/16libVirt保留。您不能对集群中的网络使用任何与172.17.0.0/16 CIDR 范围重叠的其他 CIDR 范围。

阶段 2

运行openshift-install create manifests创建清单文件后,您可以仅使用要修改的字段来定义自定义集群网络运算符清单。您可以使用该清单来指定高级网络配置。

在阶段 2 中,您不能覆盖在阶段 1 中install-config.yaml文件中指定的数值。但是,您可以在阶段 2 中自定义网络插件。

指定高级网络配置

您可以使用高级网络配置为您的网络插件将您的集群集成到您的现有网络环境中。

您只能在安装集群之前指定高级网络配置。

不支持通过修改安装程序创建的 OpenShift Container Platform 清单文件来自定义网络配置。支持应用您创建的清单文件,如下面的过程所示。

先决条件
  • 您已创建install-config.yaml文件并完成了对其的任何修改。

步骤
  1. 更改到包含安装程序的目录并创建清单

    $ ./openshift-install create manifests --dir <installation_directory> (1)
    1 <installation_directory>指定包含集群install-config.yaml文件的目录的名称。
  2. 为高级网络配置创建一个存根清单文件,名为cluster-network-03-config.yml,位于<installation_directory>/manifests/目录中

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
  3. cluster-network-03-config.yml文件中指定集群的高级网络配置,例如以下示例

    为 OVN-Kubernetes 网络提供程序启用 IPsec
    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      defaultNetwork:
        ovnKubernetesConfig:
          ipsecConfig:
            mode: Full
  4. 可选:备份manifests/cluster-network-03-config.yml文件。安装程序在创建 Ignition 配置文件时会使用manifests/目录。

集群网络运算符配置

集群网络的配置指定为集群网络运算符 (CNO) 配置的一部分,并存储在名为cluster的自定义资源 (CR) 对象中。CR 指定operator.openshift.io API 组中Network API 的字段。

在集群安装期间,CNO 配置从Network.config.openshift.io API 组中的Network API 继承以下字段

clusterNetwork

分配 Pod IP 地址的 IP 地址池。

serviceNetwork

服务的 IP 地址池。

defaultNetwork.type

集群网络插件。OVNKubernetes是安装期间唯一支持的插件。

您可以通过设置名为cluster的 CNO 对象中defaultNetwork对象的字段来指定集群的集群网络插件配置。

集群网络运算符配置对象

集群网络运算符 (CNO) 的字段在以下表格中描述

表 1. 集群网络运算符配置对象
字段 类型 描述

metadata.name

字符串

CNO 对象的名称。此名称始终为cluster

spec.clusterNetwork

数组

指定分配 Pod IP 地址的 IP 地址块以及分配给集群中每个单独节点的子网前缀长度的列表。例如

spec:
  clusterNetwork:
  - cidr: 10.128.0.0/19
    hostPrefix: 23
  - cidr: 10.128.32.0/19
    hostPrefix: 23

spec.serviceNetwork

数组

服务的 IP 地址块。OVN-Kubernetes 网络插件只支持服务网络的单个 IP 地址块。例如

spec:
  serviceNetwork:
  - 172.30.0.0/14

您只能在创建清单之前在install-config.yaml文件中自定义此字段。该值在清单文件中是只读的。

spec.defaultNetwork

对象

配置集群网络的网络插件。

spec.kubeProxyConfig

对象

此对象的字段指定 kube-proxy 配置。如果您使用的是 OVN-Kubernetes 集群网络插件,则 kube-proxy 配置无效。

对于需要跨多个网络部署对象的集群,请确保为install-config.yaml文件中定义的每种网络类型指定相同的值作为clusterNetwork.hostPrefix参数。为每个clusterNetwork.hostPrefix参数设置不同的值可能会影响 OVN-Kubernetes 网络插件,其中插件无法有效地在不同节点之间路由对象流量。

defaultNetwork 对象配置

defaultNetwork对象的数值在以下表格中定义

表 2. defaultNetwork 对象
字段 类型 描述

类型

字符串

OVNKubernetes。Red Hat OpenShift Networking 网络插件在安装期间被选中。此值在集群安装后无法更改。

OpenShift Container Platform 默认使用 OVN-Kubernetes 网络插件。OpenShift SDN 作为新集群的安装选项不再可用。

ovnKubernetesConfig

对象

此对象仅对 OVN-Kubernetes 网络插件有效。

OVN-Kubernetes 网络插件的配置

下表描述了 OVN-Kubernetes 网络插件的配置字段

表 3. ovnKubernetesConfig 对象
字段 类型 描述

mtu

整数

Geneve(通用网络虚拟化封装)覆盖网络的最大传输单元 (MTU)。这是根据主网络接口的 MTU 自动检测到的。您通常不需要覆盖检测到的 MTU。

如果自动检测到的值与您的预期值不符,请确认节点上主网络接口的MTU是否正确。您无法使用此选项更改节点上主网络接口的MTU值。

如果您的集群需要为不同的节点设置不同的MTU值,则必须将此值设置为集群中最低MTU值减去100。例如,如果集群中某些节点的MTU为9001,而某些节点的MTU为1500,则必须将此值设置为1400

genevePort

整数

用于所有Geneve数据包的端口。默认值为6081。此值在集群安装后无法更改。

ipsecConfig

对象

指定一个配置对象来自定义IPsec配置。

ipv4

对象

指定IPv4设置的配置对象。

ipv6

对象

指定IPv6设置的配置对象。

policyAuditConfig

对象

指定一个配置对象来自定义网络策略审计日志记录。如果未设置,则使用默认的审计日志设置。

gatewayConfig

对象

可选:指定一个配置对象来自定义如何将出站流量发送到节点网关。

迁移出站流量期间,您可能会遇到工作负载和服务流量中断,直到集群网络操作员 (CNO) 成功推出更改。

表4. ovnKubernetesConfig.ipv4 对象
字段 类型 描述

internalTransitSwitchSubnet

字符串

如果您的现有网络基础设施与100.88.0.0/16 IPv4子网重叠,您可以为OVN-Kubernetes的内部使用指定不同的IP地址范围。启用东西向流量的分布式转接交换机的子网。此子网不能与OVN-Kubernetes或主机本身使用的任何其他子网重叠。它必须足够大,足以容纳集群中每个节点一个IP地址。

默认值为100.88.0.0/16

internalJoinSubnet

字符串

如果您的现有网络基础设施与100.64.0.0/16 IPv4子网重叠,您可以为OVN-Kubernetes的内部使用指定不同的IP地址范围。您必须确保IP地址范围不与OpenShift Container Platform安装使用的任何其他子网重叠。IP地址范围必须大于可以添加到集群中的最大节点数。例如,如果clusterNetwork.cidr值为10.128.0.0/14,而clusterNetwork.hostPrefix值为/23,则最大节点数为2^(23-14)=512

默认值为100.64.0.0/16

表5. ovnKubernetesConfig.ipv6 对象
字段 类型 描述

internalTransitSwitchSubnet

字符串

如果您的现有网络基础设施与fd97::/64 IPv6子网重叠,您可以为OVN-Kubernetes的内部使用指定不同的IP地址范围。启用东西向流量的分布式转接交换机的子网。此子网不能与OVN-Kubernetes或主机本身使用的任何其他子网重叠。它必须足够大,足以容纳集群中每个节点一个IP地址。

默认值为fd97::/64

internalJoinSubnet

字符串

如果您的现有网络基础设施与fd98::/64 IPv6子网重叠,您可以为OVN-Kubernetes的内部使用指定不同的IP地址范围。您必须确保IP地址范围不与OpenShift Container Platform安装使用的任何其他子网重叠。IP地址范围必须大于可以添加到集群中的最大节点数。

默认值为fd98::/64

表6. policyAuditConfig 对象
字段 类型 描述

rateLimit

整数

每个节点每秒生成的最大消息数。默认值为每秒20条消息。

maxFileSize

整数

审计日志的最大大小(字节)。默认值为50000000或50 MB。

maxLogFiles

整数

保留的最大日志文件数。

destination

字符串

以下其他审计日志目标之一

libc

主机上journald进程的libc syslog()函数。

udp:<host>:<port>

一个syslog服务器。将<host>:<port>替换为syslog服务器的主机和端口。

unix:<file>

<file>指定的Unix域套接字文件。

null

不要将审计日志发送到任何其他目标。

syslogFacility

字符串

syslog工具,例如kern,如RFC5424中所定义。默认值为local0

表7. gatewayConfig 对象
字段 类型 描述

routingViaHost

布尔值

将此字段设置为true可将来自Pod的出站流量发送到主机网络堆栈。对于依赖于内核路由表中手动配置的路由的高度专业化安装和应用程序,您可能希望将出站流量路由到主机网络堆栈。默认情况下,出站流量在OVN中处理以退出集群,并且不受内核路由表中专用路由的影响。默认值为false

此字段与Open vSwitch硬件卸载功能存在交互。如果将此字段设置为true,则您将无法获得卸载的性能优势,因为出站流量由主机网络堆栈处理。

ipForwarding

对象

您可以使用Network资源中的ipForwarding规范来控制OVN-Kubernetes管理接口上所有流量的IP转发。指定Restricted仅允许与Kubernetes相关的流量进行IP转发。指定Global允许转发所有IP流量。对于新安装,默认值为Restricted。对于OpenShift Container Platform 4.14或更高版本的更新,默认值为Global

ipv4

对象

可选:指定一个对象来配置用于IPv4地址的主机到服务流量的内部OVN-Kubernetes伪装地址。

ipv6

对象

可选:指定一个对象来配置用于IPv6地址的主机到服务流量的内部OVN-Kubernetes伪装地址。

表8. gatewayConfig.ipv4 对象
字段 类型 描述

internalMasqueradeSubnet

字符串

在内部用于启用主机到服务流量的伪装IPv4地址。主机也配置了这些IP地址以及共享网关桥接接口。默认值为169.254.169.0/29

对于OpenShift Container Platform 4.17和更高版本,集群使用169.254.0.0/17作为默认伪装子网。对于升级的集群,默认伪装子网没有变化。

表9. gatewayConfig.ipv6 对象
字段 类型 描述

internalMasqueradeSubnet

字符串

在内部用于启用主机到服务流量的伪装IPv6地址。主机也配置了这些IP地址以及共享网关桥接接口。默认值为fd69::/125

对于OpenShift Container Platform 4.17和更高版本,集群使用fd69::/112作为默认伪装子网。对于升级的集群,默认伪装子网没有变化。

表10. ipsecConfig 对象
字段 类型 描述

mode

字符串

指定IPsec实现的行为。必须是以下值之一

  • Disabled:在集群节点上未启用IPsec。

  • External:已为与外部主机的网络流量启用IPsec。

  • Full:已为Pod流量和与外部主机的网络流量启用IPsec。

启用IPSec的示例OVN-Kubernetes配置
defaultNetwork:
  type: OVNKubernetes
  ovnKubernetesConfig:
    mtu: 1400
    genevePort: 6081
      ipsecConfig:
        mode: Full

使用 OVN-Kubernetes 配置混合网络

您可以将集群配置为使用 OVN-Kubernetes 网络插件的混合网络。这允许支持不同节点网络配置的混合集群。

此配置对于在同一集群中运行 Linux 和 Windows 节点是必需的。

先决条件
  • 您在 install-config.yaml 文件中为 networking.networkType 参数定义了 OVNKubernetes。有关在您选择的云提供商上配置 OpenShift Container Platform 网络自定义的更多信息,请参阅安装文档。

步骤
  1. 更改到包含安装程序的目录并创建清单

    $ ./openshift-install create manifests --dir <installation_directory>

    其中

    <installation_directory>

    指定包含集群 install-config.yaml 文件的目录名称。

  2. 为高级网络配置创建一个存根清单文件,名为cluster-network-03-config.yml,位于<installation_directory>/manifests/目录中

    $ cat <<EOF > <installation_directory>/manifests/cluster-network-03-config.yml
    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
    EOF

    其中

    <installation_directory>

    指定包含集群 manifests/ 目录的目录名称。

  3. 在编辑器中打开 cluster-network-03-config.yml 文件,并使用混合网络配置 OVN-Kubernetes,如下例所示

    指定混合网络配置
    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      defaultNetwork:
        ovnKubernetesConfig:
          hybridOverlayConfig:
            hybridClusterNetwork: (1)
            - cidr: 10.132.0.0/14
              hostPrefix: 23
            hybridOverlayVXLANPort: 9898 (2)
    1 指定用于附加覆盖网络上节点的 CIDR 配置。hybridClusterNetwork CIDR 必须与 clusterNetwork CIDR 不重叠。
    2 为附加覆盖网络指定自定义 VXLAN 端口。这对于在 vSphere 上安装的集群中运行 Windows 节点是必需的,并且不得为任何其他云提供商配置。自定义端口可以是任何开放端口,但不包括默认的 4789 端口。有关此要求的更多信息,请参阅 Microsoft 文档 主机之间 Pod 到 Pod 的连接在我的 Kubernetes 集群(在 vSphere 上运行)中中断

    Windows Server 长期服务通道 (LTSC):对于具有自定义 hybridOverlayVXLANPort 值的集群,不支持 Windows Server 2019,因为此 Windows 服务器版本不支持选择自定义 VXLAN 端口。

  4. 保存 cluster-network-03-config.yml 文件并退出文本编辑器。

  5. 可选:备份 manifests/cluster-network-03-config.yml 文件。安装程序在创建集群时会删除 manifests/ 目录。

有关在同一集群中使用 Linux 和 Windows 节点的更多信息,请参阅 了解 Windows 容器工作负载

部署集群

您可以在兼容的云平台上安装 OpenShift Container Platform。

您只能在初始安装期间运行安装程序的 create cluster 命令一次。

先决条件
  • 您已配置了托管集群的云平台帐户。

  • 您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。

  • 您已验证主机上的云提供商帐户是否具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。

步骤
  • 切换到包含安装程序的目录并初始化集群部署

    $ ./openshift-install create cluster --dir <installation_directory> \ (1)
        --log-level=info (2)
    
    1 对于 <installation_directory>,请指定您自定义的 ./install-config.yaml 文件的位置。
    2 要查看不同的安装详细信息,请指定 warndebugerror 来代替 info
验证

集群部署成功完成时

  • 终端将显示访问集群的说明,包括指向 Web 控制台的链接和 kubeadmin 用户的凭据。

  • 凭据信息也会输出到 <installation_directory>/.openshift_install.log

请勿删除安装程序或安装程序创建的文件。两者都是删除集群所必需的。

示例输出
...
INFO Install complete!
INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig'
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com
INFO Login to the console with user: "kubeadmin", and password: "password"
INFO Time elapsed: 36m22s
  • 安装程序生成的 Ignition 配置文件包含在 24 小时后过期的证书,然后在该时间续订。如果在续订证书之前关闭集群,并且稍后在 24 小时后重新启动集群,则集群会自动恢复过期的证书。例外情况是,您必须手动批准挂起的 node-bootstrapper 证书签名请求 (CSR) 以恢复 kubelet 证书。有关更多信息,请参阅有关“从过期的控制平面证书中恢复”的文档。

  • 建议您在生成 Ignition 配置文件后 12 小时内使用它们,因为 24 小时证书在集群安装后 16 到 22 小时之间旋转。通过在 12 小时内使用 Ignition 配置文件,您可以在安装期间运行证书更新时避免安装失败。

使用 CLI 登录集群

您可以通过导出集群 kubeconfig 文件以默认系统用户身份登录到集群。kubeconfig 文件包含有关集群的信息,CLI 使用这些信息将客户端连接到正确的集群和 API 服务器。该文件特定于集群,并在 OpenShift Container Platform 安装期间创建。

先决条件
  • 您已部署 OpenShift Container Platform 集群。

  • 您已安装 oc CLI。

步骤
  1. 导出 kubeadmin 凭据

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig (1)
    1 对于 <installation_directory>,请指定您存储安装文件的目录的路径。
  2. 验证您可以使用导出的配置成功运行 oc 命令

    $ oc whoami
    示例输出
    system:admin

使用 Web 控制台登录集群

OpenShift Container Platform 安装后,默认情况下存在 kubeadmin 用户。您可以使用 OpenShift Container Platform Web 控制台以 kubeadmin 用户身份登录到集群。

先决条件
  • 您可以访问安装主机。

  • 您已完成集群安装,并且所有集群运算符都可用。

步骤
  1. 从安装主机上的 kubeadmin-password 文件中获取 kubeadmin 用户的密码

    $ cat <installation_directory>/auth/kubeadmin-password

    或者,您可以从安装主机上的 <installation_directory>/.openshift_install.log 日志文件中获取 kubeadmin 密码。

  2. 列出 OpenShift Container Platform Web 控制台路由

    $ oc get routes -n openshift-console | grep 'console-openshift'

    或者,您可以从安装主机上的 <installation_directory>/.openshift_install.log 日志文件中获取 OpenShift Container Platform 路由。

    示例输出
    console     console-openshift-console.apps.<cluster_name>.<base_domain>            console     https   reencrypt/Redirect   None
  3. 在 Web 浏览器中导航到前面命令输出中详细说明的路由,并以 kubeadmin 用户身份登录。

其他资源