$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
要准备在 Azure 上安装 OpenShift Container Platform 集群,请完成以下步骤
您已选择集群安装方法。
您已配置了 Azure 帐户来托管集群,并确定了用于部署集群的经过测试和验证的区域。
如果您使用防火墙,则已配置它以允许集群需要访问的站点。
在 OpenShift Container Platform 4.17 中,您需要访问互联网才能安装集群。
您必须具有互联网访问权限才能
访问OpenShift 集群管理器以下载安装程序并执行订阅管理。如果集群具有互联网访问权限并且您没有禁用遥测,则该服务会自动授权您的集群。
访问Quay.io以获取安装集群所需的软件包。
获取执行集群更新所需的软件包。
如果您的集群无法直接访问互联网,则可以在您配置的某些类型的基础架构上执行受限网络安装。在此过程中,您将下载所需的内容并使用它来使用安装包填充镜像注册表。对于某些安装类型,您安装集群的环境将不需要互联网访问。在更新集群之前,您需要更新镜像注册表的内容。 |
在 OpenShift Container Platform 安装过程中,您可以向安装程序提供 SSH 公钥。该密钥通过其 Ignition 配置文件传递给 Red Hat Enterprise Linux CoreOS (RHCOS) 节点,并用于验证对节点的 SSH 访问。该密钥将添加到每个节点上 `core` 用户的 `~/.ssh/authorized_keys` 列表中,从而启用无密码身份验证。
密钥传递给节点后,您可以使用密钥对以core
用户身份通过SSH登录到RHCOS节点。要通过SSH访问节点,您的本地用户必须由SSH管理私钥身份。
如果您想SSH登录到集群节点以执行安装调试或灾难恢复,则必须在安装过程中提供SSH公钥。./openshift-install gather
命令也需要集群节点上存在SSH公钥。
在需要灾难恢复和调试的生产环境中,请勿跳过此步骤。 |
您必须使用本地密钥,而不是使用平台特定方法(例如AWS密钥对)配置的密钥。 |
如果您本地机器上没有现有的SSH密钥对用于身份验证到集群节点,请创建一个。例如,在使用Linux操作系统的计算机上,运行以下命令:
$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
1 | 指定新SSH密钥的路径和文件名,例如~/.ssh/id_ed25519 。如果您有现有的密钥对,请确保您的公钥位于~/.ssh 目录中。 |
如果您计划安装一个OpenShift Container Platform集群,该集群仅在 |
查看SSH公钥
$ cat <path>/<file_name>.pub
例如,运行以下命令查看~/.ssh/id_ed25519.pub
公钥:
$ cat ~/.ssh/id_ed25519.pub
如果尚未添加,请将SSH私钥身份添加到本地用户的SSH代理。无密码SSH身份验证到集群节点,或者如果您想使用./openshift-install gather
命令,都需要SSH代理管理密钥。
在某些发行版中,默认的SSH私钥身份(例如 |
如果本地用户的ssh-agent
进程尚未运行,请将其作为后台任务启动:
$ eval "$(ssh-agent -s)"
Agent pid 31874
如果您的集群处于FIPS模式,则只能使用符合FIPS的算法生成SSH密钥。密钥必须是RSA或ECDSA。 |
将您的SSH私钥添加到ssh-agent
$ ssh-add <path>/<file_name> (1)
1 | 指定SSH私钥的路径和文件名,例如~/.ssh/id_ed25519 |
Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
安装OpenShift Container Platform时,请向安装程序提供SSH公钥。
在安装OpenShift Container Platform之前,请在您用于安装的主机上下载安装文件。
您需要一台运行Linux或macOS的计算机,具有500 MB的本地磁盘空间。
访问Red Hat混合云控制台上的集群类型页面。如果您有Red Hat帐户,请使用您的凭据登录。如果没有,请创建一个帐户。
从页面中的“自行运行”部分选择您的基础架构提供商。
从“OpenShift安装程序”下的下拉菜单中选择您的主机操作系统和架构,然后点击“下载安装程序”。
将下载的文件放在您要存储安装配置文件的目录中。
|
解压安装程序。例如,在使用Linux操作系统的计算机上,运行以下命令:
$ tar -xvf openshift-install-linux.tar.gz
从Red Hat OpenShift集群管理器下载您的安装pull secret。此pull secret允许您对包含的授权机构(包括提供OpenShift Container Platform组件容器镜像的Quay.io)提供的服务进行身份验证。
或者,您可以从Red Hat客户门户检索安装程序,您可以在其中指定要下载的安装程序版本。但是,您必须拥有有效的订阅才能访问此页面。 |
您可以安装OpenShift CLI (oc
) 以通过命令行界面与OpenShift Container Platform进行交互。您可以在Linux、Windows或macOS上安装oc
。
如果您安装了早期版本的 |
您可以使用以下步骤在Linux上安装OpenShift CLI (oc
) 二进制文件。
导航到Red Hat客户门户上的OpenShift Container Platform下载页面。
从“产品变体”下拉列表中选择架构。
从“版本”下拉列表中选择合适的版本。
点击“OpenShift v4.17 Linux客户端”条目旁边的“立即下载”并保存文件。
解压存档
$ tar xvf <file>
将oc
二进制文件放置在PATH
上的目录中。
要检查您的PATH
,请执行以下命令:
$ echo $PATH
安装OpenShift CLI后,可以使用oc
命令:
$ oc <command>
您可以使用以下步骤在Windows上安装OpenShift CLI (oc
) 二进制文件。
导航到Red Hat客户门户上的OpenShift Container Platform下载页面。
从“版本”下拉列表中选择合适的版本。
点击“OpenShift v4.17 Windows客户端”条目旁边的“立即下载”并保存文件。
使用ZIP程序解压存档。
将oc
二进制文件移动到PATH
上的目录。
要检查您的PATH
,请打开命令提示符并执行以下命令:
C:\> path
安装OpenShift CLI后,可以使用oc
命令:
C:\> oc <command>
您可以使用以下步骤在macOS上安装OpenShift CLI (oc
) 二进制文件。
导航到Red Hat客户门户上的OpenShift Container Platform下载页面。
从“版本”下拉列表中选择合适的版本。
点击“OpenShift v4.17 macOS客户端”条目旁边的“立即下载”并保存文件。
对于macOS arm64,请选择“OpenShift v4.17 macOS arm64客户端”条目。 |
解压存档。
将oc
二进制文件移动到PATH
上的目录。
要检查您的PATH
,请打开终端并执行以下命令:
$ echo $PATH
使用oc
命令验证您的安装
$ oc <command>
在OpenShift Container Platform 4.17中,默认运行的遥测服务(用于提供有关集群健康状况和更新成功的指标)需要互联网访问。如果您的集群连接到互联网,则遥测会自动运行,并且您的集群将注册到OpenShift集群管理器。
确认您的OpenShift 集群管理器清单正确无误后(无论是通过遥测自动维护,还是手动使用 OpenShift 集群管理器维护),请使用订阅监控来跟踪您在帐户或多集群级别上的 OpenShift Container Platform 订阅。
有关遥测服务的更多信息,请参阅关于远程健康监控
OpenShift Container Platform 安装程序可以使用具有用户管理密钥的现有磁盘加密集。要启用此功能,您可以在 Azure 中创建一个磁盘加密集并将密钥提供给安装程序。
通过运行以下命令为 Azure 资源组设置以下环境变量
$ export RESOURCEGROUP="<resource_group>" \(1)
LOCATION="<location>" (2)
1 | 指定您将在其中创建磁盘加密集和加密密钥的 Azure 资源组的名称。为避免在销毁集群后丢失对密钥的访问权限,您应在与安装集群的资源组不同的资源组中创建磁盘加密集。 |
2 | 指定您将在其中创建资源组的 Azure 位置。 |
通过运行以下命令为 Azure 密钥保管库和磁盘加密集设置以下环境变量
$ export KEYVAULT_NAME="<keyvault_name>" \(1)
KEYVAULT_KEY_NAME="<keyvault_key_name>" \(2)
DISK_ENCRYPTION_SET_NAME="<disk_encryption_set_name>" (3)
1 | 指定您将创建的 Azure 密钥保管库的名称。 |
2 | 指定您将创建的加密密钥的名称。 |
3 | 指定您将创建的磁盘加密集的名称。 |
通过运行以下命令设置 Azure 服务主体的 ID 的环境变量
$ export CLUSTER_SP_ID="<service_principal_id>" (1)
1 | 指定您将用于此安装的服务主体的 ID。 |
通过运行以下命令启用 Azure 中的主机级加密
$ az feature register --namespace "Microsoft.Compute" --name "EncryptionAtHost"
$ az feature show --namespace Microsoft.Compute --name EncryptionAtHost
$ az provider register -n Microsoft.Compute
通过运行以下命令创建一个 Azure 资源组来保存磁盘加密集和相关资源
$ az group create --name $RESOURCEGROUP --location $LOCATION
通过运行以下命令创建一个 Azure 密钥保管库
$ az keyvault create -n $KEYVAULT_NAME -g $RESOURCEGROUP -l $LOCATION \
--enable-purge-protection true
通过运行以下命令在密钥保管库中创建一个加密密钥
$ az keyvault key create --vault-name $KEYVAULT_NAME -n $KEYVAULT_KEY_NAME \
--protection software
通过运行以下命令捕获密钥保管库的 ID
$ KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)
通过运行以下命令捕获密钥保管库中的密钥 URL
$ KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME --name \
$KEYVAULT_KEY_NAME --query "[key.kid]" -o tsv)
通过运行以下命令创建一个磁盘加密集
$ az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME -l $LOCATION -g \
$RESOURCEGROUP --source-vault $KEYVAULT_ID --key-url $KEYVAULT_KEY_URL
通过运行以下命令授予 DiskEncryptionSet 资源对密钥保管库的访问权限
$ DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \
$RESOURCEGROUP --query "[identity.principalId]" -o tsv)
$ az keyvault set-policy -n $KEYVAULT_NAME -g $RESOURCEGROUP --object-id \
$DES_IDENTITY --key-permissions wrapkey unwrapkey get
通过运行以下命令授予 Azure 服务主体读取 DiskEncryptionSet 的权限
$ DES_RESOURCE_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \
$RESOURCEGROUP --query "[id]" -o tsv)
$ az role assignment create --assignee $CLUSTER_SP_ID --role "<reader_role>" \(1)
--scope $DES_RESOURCE_ID -o jsonc
1 | 指定具有对磁盘加密集的读取权限的 Azure 角色。您可以使用`Owner`角色或具有必要权限的自定义角色。 |
安装 OpenShift Container Platform 集群