入门指南
使用 Red Hat OpenShift Local 的快速入门指南
摘要
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 Introducing Red Hat OpenShift Local
1.1. About Red Hat OpenShift Local
Red Hat OpenShift Local 将最小 OpenShift Container Platform 4 集群和 Podman 容器运行时引入本地计算机。这些运行时为开发和测试目的提供了最小的环境。Red Hat OpenShift Local 主要面向开发人员桌面运行。对于其他 OpenShift Container Platform 用例,如无外设或多开发人员设置,请使用 完整的 OpenShift 安装程序。
如需了解 OpenShift Container Platform 的完整介绍,请参阅 OpenShift Container Platform 文档。
Red Hat OpenShift Local 包含 crc 命令行界面(CLI),以便使用所需的容器运行时与 Red Hat OpenShift Local 实例进行交互。
1.2. 与生产 OpenShift Container Platform 安装的不同
OpenShift 预设置 Red Hat OpenShift Local 提供了常规 OpenShift Container Platform 安装,有以下显著区别:
- OpenShift Container Platform 集群是临时的,它不用于生产环境。
- Red Hat OpenShift Local 没有受支持的到较新的 OpenShift Container Platform 版本的升级路径。升级 OpenShift Container Platform 版本可能会导致难以重现的问题。
- 它使用单一节点,它们的行为就像 control plane 和 worker 节点一样。
- 它默认禁用 Cluster Monitoring Operator。这个禁用的 Operator 会导致 web 控制台的相应部分无法正常工作。
- OpenShift Container Platform 集群在称为 实例 的虚拟机中运行。这可能导致其他差异,特别是用于外部网络。
由 Red Hat OpenShift Local 提供的 OpenShift Container Platform 集群还包括以下非自定义集群设置。不应该修改这些设置:
- 使用 *.crc.testing 域。
用于内部集群通信的地址范围。
- 集群使用 172 地址范围。例如,当一个代理在同一个地址空间中运行时,这可能会导致问题。
第 2 章 安装
2.1. 最低系统要求
Red Hat OpenShift Local 有以下最低硬件和操作系统要求:
2.1.1. 硬件要求
Red Hat OpenShift Local 在 AMD64 和 Intel 64 处理器构架中被支持。基于 ARM 的 M1 架构支持 Podman 容器运行时预设。M1 架构不支持 OpenShift Container Platform 预设置。Red Hat OpenShift Local 不支持嵌套虚拟化。
根据所需的容器运行时,Red Hat OpenShift Local 需要以下系统资源:
2.1.1.1. 对于 OpenShift Container Platform
- 4 个物理 CPU 内核
- 9 GB 可用内存
- 35 GB 存储空间
OpenShift Container Platform 集群需要这些资源在 Red Hat OpenShift Local 实例中运行。有些工作负载可能需要更多资源。要为 Red Hat OpenShift Local 实例分配更多资源,请参阅配置 实例。
2.1.1.2. 对于 Podman 容器运行时
- 2 个物理 CPU 内核
- 2 GB 可用内存
- 35 GB 存储空间
2.1.2. 操作系统要求
Red Hat OpenShift Local 需要以下受支持操作系统的最低版本:
2.1.2.1. Microsoft Windows
- 在 Microsoft Windows 上,Red Hat OpenShift Local 需要 Windows 10 Fall Creators 更新(版本 1709) 或更高版本。Red Hat OpenShift Local 在早期版本的 Microsoft Windows 上无法正常工作。不支持 Microsoft Windows 10 Home Edition。
2.1.2.2. macOS
- 在 macOS 上,Red Hat OpenShift Local 需要 macOS 11 Big Sur 或更高版本。Red Hat OpenShift Local 在早期版本的 macOS 上无法正常工作。
2.1.2.3. Linux
- 在 Linux 上,仅在最新的两个 Red Hat Enterprise Linux/CentOS 7 7、8 和 9 个次版本中支持 Red Hat OpenShift Local,以及最新的两个稳定的 Fedora 版本。
- 在使用 Red Hat Enterprise Linux 时,运行 Red Hat OpenShift Local 的 机器必须使用红帽客户门户网站 进行注册。
- Ubuntu 18.04 LTS 或更高版本还不支持 Debian 10 或更高版本,且可能需要手动设置主机机器。
- 请参阅 所需软件包 以安装您的 Linux 发行版所需的软件包。
2.2. Linux 所需的软件包
Red Hat OpenShift Local 需要 libvirt 和 NetworkManager 软件包在 Linux 上运行。请参阅下表,以查找用于为 Linux 发行版安装这些软件包的命令:
表 2.1. 通过分发软件包安装命令
| Linux 发行版 | 安装命令 |
|---|---|
| Fedora |
|
| Red Hat Enterprise Linux/CentOS |
|
| Debian/Ubuntu |
|
2.3. Installing Red Hat OpenShift Local
Red Hat OpenShift Local 可作为 Red Hat Enterprise Linux 的可移植可执行文件提供。在 Microsoft Windows 和 macOS 上,可以使用引导的安装程序提供 Red Hat OpenShift Local。
先决条件
- 您的主机机器必须满足最低系统要求。如需更多信息,请参阅 最小系统要求。
流程
- 为您的平台下载 Red Hat OpenShift Local 的最新版本。
- 在 Microsoft Windows 上,提取存档的内容。
在 macOS 或 Microsoft Windows 上,运行引导的安装程序并按照说明进行操作。
注意在 Microsoft Windows 上,您必须将 Red Hat OpenShift Local 安装到本地 C:\ 驱动器。您无法从网络驱动器运行 Red Hat OpenShift Local。
在 Red Hat Enterprise Linux 中,假设归档位于 ~/Downloads 目录中,请按照以下步骤操作:
提取存档的内容:
$ cd ~/Downloads $ tar xvf crc-linux-amd64.tar.xz
如果 ~/bin 目录不存在,则进行创建,并将
crc可执行文件复制到其中:$ mkdir -p ~/bin $ cp ~/Downloads/crc-linux-*-amd64/crc ~/bin
将 ~/bin 目录添加到您的
$PATH中:$ export PATH=$PATH:$HOME/bin $ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
2.4. 关于使用数据收集
Red Hat OpenShift Local 会在可选匿名使用数据收集功能前提示您进行开发。不会收集任何个人可识别的信息。您可以随时授予或撤销使用数据收集的同意。
其他资源
- 有关收集的数据的更多信息,请参阅 Red Hat Telemetry 数据收集通知。
- 要授予或撤销使用数据收集同意,请参阅配置使用数据收集。
2.5. 配置使用数据收集
您可以随时使用以下配置命令授予或撤销使用数据收集的同意。
对遥测同意的更改不会修改正在运行的实例。在下次运行 crc start 命令时,此更改将生效。
流程
要手动启用遥测,请运行以下命令:
$ crc config set consent-telemetry yes
要手动禁用遥测,请运行以下命令:
$ crc config set consent-telemetry no
其他资源
- 有关收集的数据的更多信息,请参阅 Red Hat Telemetry 数据收集通知。
2.6. Upgrading Red Hat OpenShift Local
较新版本的 Red Hat OpenShift Local 可执行文件需要手动设置,以防止在更早的版本中使用潜在的不兼容的问题。
流程
- 下载 Red Hat OpenShift Local 的最新版本。
删除现有的 Red Hat OpenShift Local 实例:
$ crc delete
警告crc delete命令会导致丢失红帽 OpenShift Local 实例中存储的数据。在运行此命令前,保存实例中存储的任何所需信息。使用最新版本的可执行文件替换之前的
crc可执行文件。通过检查其版本来验证新crc可执行文件是否正在使用:$ crc version
设置新的 Red Hat OpenShift Local 版本:
$ crc setup
启动新的 Red Hat OpenShift Local 实例:
$ crc start
第 3 章 Using Red Hat OpenShift Local
3.1. 关于预设置
Red Hat OpenShift Local 预设代表受管容器运行时,以及实例运行所需的系统资源的下限。Red Hat OpenShift Local 为 OpenShift Container Platform 和 Podman 容器运行时提供预设。
在 Microsoft Windows 和 macOS 中,Red Hat OpenShift Local guided 安装程序会提示您进行所需的预设置。在 Linux 上,默认选择 OpenShift Container Platform 预设置。在运行 crc setup 命令前,您可以使用 crc config 命令更改此选择。您可以从 Microsoft Windows 和 macOS 上的系统托盘更改所选预设置,也可以从所有支持的操作系统中的命令行更改。次只能有一个 preset 处于活跃状态。
3.2. 设置 Red Hat OpenShift Local
crc setup 命令执行为 Red Hat OpenShift Local 实例设置主机机器的环境。
如果 crc setup 命令不存在,则创建 ~/.crc 目录。
如果要设置新版本,请在设置新的 Red Hat OpenShift Local 版本前捕获对实例所做的任何更改。
先决条件
-
在 Linux 或 macOS 中,请确保您的用户帐户具有使用
sudo命令的权限。在 Microsoft Windows 上,请确保您的用户帐户可以提升到管理员特权。
不要以 root 用户身份或管理员运行 crc 可执行文件。始终使用您的用户帐户运行 crc 可执行文件。
流程
(可选)在 Linux 上,默认会选择 OpenShift Container Platform 预设置。选择 Podman 容器运行时预设置:
$ crc config set preset podman
为 Red Hat OpenShift Local 设置主机:
$ crc setup
其他资源
- 有关可用容器运行时预设置的更多信息,请参阅关于预设置。
3.3. 启动实例
crc start 命令启动 Red Hat OpenShift Local 实例并配置了容器运行时。
先决条件
- 为了避免与网络相关的问题,请确保您没有连接到 VPN,且您的网络连接非常可靠。
-
您可以使用
crc setup命令设置主机机器。如需更多信息,请参阅设置 Red Hat OpenShift Local。 - 在 Microsoft Windows 上,请确保您的用户帐户可以提升到管理员特权。
对于 OpenShift 预设置,请确保您有有效的 OpenShift 用户 pull secret。在 Red Hat Hybrid Cloud Console 的 Red Hat OpenShift Local 页面的 Pull Secret 部分中复制或下载 pull secret。
注意访问用户 pull secret 需要红帽帐户。
流程
启动 Red Hat OpenShift Local 实例:
$ crc start
对于 OpenShift 预设置,在提示时提供用户 pull secret。
注意在提供请求前,集群需要最少 4 分钟来启动所需的容器和 Operator。
其他资源
- 要更改分配给实例的默认资源,请参阅配置 实例。
-
如果您在
crc start中看到错误,请参阅故障排除 Red Hat OpenShift Local 部分以了解潜在的解决方案。
3.4. 访问 OpenShift 集群
使用 OpenShift Container Platform Web 控制台或 OpenShift CLI (oc)访问在 Red Hat OpenShift Local 实例中运行的 OpenShift Container Platform 集群。
3.4.1. 访问 OpenShift Web 控制台
使用您的 Web 浏览器访问 OpenShift Container Platform Web 控制台。
使用 kubeadmin 或 developer 用户访问集群。使用 developer 用户创建项目或 OpenShift 应用,以及应用部署。仅将 kubeadmin 用户用于管理任务,如创建新用户或设置角色。
先决条件
流程
要使用默认 Web 浏览器访问 OpenShift Container Platform Web 控制台,请运行以下命令:
$ crc console
以
developer用户身份并使用密码在crc start命令的输出中打印的密码登录。您还可以通过运行以下命令查看developer和kubeadmin用户的密码:$ crc console --credentials
如果无法访问 Red Hat OpenShift Local 管理的 OpenShift Container Platform 集群,请参阅故障排除 Red Hat OpenShift Local。
其他资源
- OpenShift Container Platform 文档 涵盖了项目和应用程序的创建。
3.4.2. 使用 OpenShift CLI 访问 OpenShift 集群
使用 OpenShift CLI (oc)访问由 Red Hat OpenShift Local 管理的 OpenShift Container Platform 集群。
先决条件
流程
运行
crc oc-env命令,以打印将缓存的oc可执行文件添加到$PATH所需的命令:$ crc oc-env
- 运行打印的命令。
以
developer用户身份登录:$ oc login -u developer https://api.crc.testing:6443
注意crc start命令打印developer用户的密码。您还可以通过运行crc console --credentials命令来查看它。现在,您可以使用
oc与 OpenShift Container Platform 集群交互。例如,要验证 OpenShift Container Platform 集群 Operator 是否可用,以kubeadmin用户身份登录,再运行以下命令:$ oc config use-context crc-admin $ oc whoami kubeadmin $ oc get co
注意Red Hat OpenShift Local 默认禁用 Cluster Monitoring Operator。
如果无法访问 Red Hat OpenShift Local 管理的 OpenShift Container Platform 集群,请参阅故障排除 Red Hat OpenShift Local。
其他资源
- OpenShift Container Platform 文档 涵盖了项目和应用程序的创建。
3.4.3. 访问内部 OpenShift 注册表
在 Red Hat OpenShift Local 实例中运行的 OpenShift Container Platform 集群默认包含内部容器镜像 registry。此内部容器镜像 registry 可以用作本地开发的容器镜像的发布目标。要访问内部 OpenShift Container Platform registry,请按照以下步骤操作。
先决条件
- Red Hat OpenShift Local 配置为使用 OpenShift 预设置。如需更多信息,请参阅 更改所选预设置。
- 正在运行的红帽 OpenShift 本地实例。如需更多信息,请参阅 启动 实例。
-
正常运行的 OpenShift CLI (
oc)命令。如需更多信息,请参阅使用 OpenShift CLI 访问 OpenShift 集群。
流程
检查哪些用户已登录到集群:
$ oc whoami
注意出于演示目的,当前用户被假定为
kubeadmin。以该用户身份登录及其令牌的 registry:
$ oc registry login --insecure=true
创建一个新项目:
$ oc new-project demo
镜像示例容器镜像:
$ oc image mirror registry.access.redhat.com/ubi8/ubi:latest=default-route-openshift-image-registry.apps-crc.testing/demo/ubi8:latest --insecure=true --filter-by-os=linux/amd64
获取镜像流并验证推送的镜像是否已列出:
$ oc get is
在镜像流中启用镜像查找:
$ oc set image-lookup ubi8
此设置允许镜像流作为镜像源,而无需向内部注册表提供完整的 URL。
使用最近推送的镜像创建 pod:
$ oc run demo --image=ubi8 --command -- sleep 600s
3.5. 使用 odo部署示例应用程序
您可以使用 odo 通过命令行创建 OpenShift 项目和应用程序。此流程在 Red Hat OpenShift Local 实例中运行的 OpenShift Container Platform 集群中部署示例应用程序。
先决条件
流程
以
developer用户身份登录由 Red Hat OpenShift Local 管理的正在运行的 OpenShift Container Platform 集群:$ odo login -u developer -p developer
为您的应用程序创建一个项目:
$ odo project create sample-app
为您的组件创建一个新目录:
$ mkdir sample-app $ cd sample-app
克隆 Node.js 应用程序示例:
$ git clone https://github.com/openshift/nodejs-ex $ cd nodejs-ex
向应用程序添加
nodejs组件:$ odo create nodejs
创建 URL 并在本地配置文件中添加条目:
$ odo url create --port 8080
推送更改:
$ odo push
您的组件现在使用可访问 URL 部署到集群中。
列出 URL 并检查组件所需的 URL:
$ odo url list
- 使用生成的 URL 查看部署的应用程序。
其他资源
-
有关使用
odo的更多信息,请参阅odo文档。
3.6. 停止实例
crc stop 命令停止运行的 Red Hat OpenShift Local 实例和容器运行时。停止过程需要几分钟时间,让集群关闭。
流程
停止 Red Hat OpenShift Local 实例和容器运行时:
$ crc stop
3.7. 删除实例
crc delete 命令删除现有的 Red Hat OpenShift Local 实例。
流程
删除 Red Hat OpenShift Local 实例:
$ crc delete
警告crc delete命令会导致丢失红帽 OpenShift Local 实例中存储的数据。在运行此命令前,保存实例中存储的任何所需信息。
第 4 章 Configuring Red Hat OpenShift Local
4.1. 关于 Red Hat OpenShift Local 配置
使用 crc config 命令配置 crc 可执行文件和 Red Hat OpenShift Local 实例。crc config 命令需要一个子命令来操作配置。可用子命令 可以获得、设置、 取消设置 并查看。get、set 和 unset 子命令对指定可配置属性执行操作。运行 crc config --help 命令来列出可用的属性。
您还可以使用 crc config 命令配置 crc start 和 crc setup 命令的启动检查行为。默认情况下,启动检查报告错误并在不满足其条件时停止执行。将以 skip-check 开头的属性值设为 true 以跳过检查。
4.2. 查看 Red Hat OpenShift 本地配置
Red Hat OpenShift Local executable 提供了命令来查看可配置的属性和当前的 Red Hat OpenShift Local 配置。
流程
查看可用的可配置属性:
$ crc config --help
查看可配置属性值:
$ crc config get <property>查看完整的当前配置:
$ crc config view
注意如果配置包含默认值,则
crc config view命令不会返回任何信息。
4.3. 更改所选预设置
您可以选择所需的预设置来更改用于 Red Hat OpenShift Local 实例的容器运行时。
在 Microsoft Windows 和 macOS 中,您可以使用系统遍历或命令行界面更改所选预设置。在 Linux 上,使用命令行界面。
您无法更改现有 Red Hat OpenShift Local 实例的预先设置。预设置更改仅在创建 Red Hat OpenShift Local 实例时应用。要启用预设置的更改,您必须删除现有实例并启动一个新实例。
流程
从命令行更改所选预设置:
$ crc config set preset <name>对于 OpenShift Container Platform,有效的预设置名称为
openshift,适用于 Podman 容器运行时。
其他资源
- 有关每个预设置的最小系统要求的更多信息,请参阅 最小系统要求。
4.4. 配置实例
使用 cpus 和 memory 属性配置 Red Hat OpenShift Local 实例的默认 vCPU 数量和内存量。
或者,可以使用 --cpus 和 --memory 标志分别在 crc start 命令中使用 --cpus 和 --memory 标志来分配 vCPU 和内存量。
您无法更改正在运行的 Red Hat OpenShift Local 实例的配置。要启用配置更改,您必须停止正在运行的实例,然后再次启动它。
流程
配置实例可用的 vCPU 数量:
$ crc config set cpus <number>cpus属性的默认值为4。要分配的 vCPU 数量必须大于或等于默认值。使用所需 vCPU 数量启动实例:
$ crc start --cpus <number>配置实例可用的内存:
$ crc config set memory <number-in-mib>注意可用内存的值以兆字节(MiB)设置。内存的一个千兆字节(GiB)等于 1024 MiB。
memory属性的默认值为9216。要分配的内存量必须大于或等于默认值。使用所需内存量启动实例:
$ crc start --memory <number-in-mib>
第 5 章 Networking
5.1. DNS 配置详情
5.1.1. 常规 DNS 设置
由 Red Hat OpenShift Local 管理的 OpenShift Container Platform 集群使用 2 个 DNS 域名、c.testing 和 apps- 。crc.testing crc.testing 域用于 OpenShift Container Platform 的核心服务。apps-crc.testing 域用于访问集群中部署的 OpenShift 应用。
例如,OpenShift Container Platform API 服务器公开为 api.crc.testing,而 OpenShift Container Platform 控制台作为 console-openshift-console.apps-crc.testing 来访问。这些 DNS 域是由 Red Hat OpenShift Local 实例内运行的 dnsmasq DNS 容器提供。
crc setup 命令检测并调整您的系统 DNS 配置,以便它可以解析这些域。执行其他检查来验证在运行 crc 启动 时是否正确配置了 DNS。
5.1.2. Linux
根据您的发行版本,Red Hat OpenShift Local 需要以下 DNS 配置:
5.1.2.1. NetworkManager + systemd-resolved
默认情况下,这个配置在 Fedora 33 或更新版本上使用,Ubunts Desktop 版本使用。
- Red Hat OpenShift Local 需要 NetworkManager 管理网络。
-
Red Hat OpenShift Local 配置
systemd-resolved将测试域的请求转发到192.168.130.11DNS 服务器。192.168.130.11是 Red Hat OpenShift Local 实例的 IP。 systemd-resolved配置是通过 /etc/NetworkManager/dispatcher.d/99-crc.sh 中的 NetworkManager 分配程序脚本实现的:#!/bin/sh export LC_ALL=C systemd-resolve --interface crc --set-dns 192.168.130.11 --set-domain ~testing exit 0
在 Red Hat Enterprise Linux 和 CentOS 8.3 中,systemd-resolved 也作为不受支持的技术预览提供。将主机 配置为使用 systemd 解析 后,停止任何正在运行的集群并重新运行 crc setup。
5.1.2.2. NetworkManager + dnsmasq
在 Fedora 32 或更早的、Red Hat Enterprise Linux 以及 CentOS 上默认使用此配置。
- Red Hat OpenShift Local 需要 NetworkManager 管理网络。
-
NetworkManager 通过 /etc/NetworkManager/conf.d/crc-nm-
dnsmasq.conf 配置文件使用 dnsmasq。 此
dnsmasq实例的配置文件为 /etc/NetworkManager/dnsmasq.d/crc.conf :server=/crc.testing/192.168.130.11 server=/apps-crc.testing/192.168.130.11
-
NetworkManager
dnsmasq实例将crc.testing和apps-crc.testing域的请求转发到192.168.130.11DNS 服务器。
-
NetworkManager
5.2. 保留 IP 子网
由 Red Hat OpenShift Local 管理的 OpenShift Container Platform 集群为内部保留 IP 子网,该子网不应与主机网络冲突。确定可以使用以下 IP 子网:
保留 IP 子网
-
10.217.0.0/22 -
10.217.4.0/23 -
192.168.126.0/24
另外,主机虚拟机监控程序可能会根据主机操作系统保留另一个 IP 子网。在 Microsoft Windows 上,虚拟机监控程序保留一个无法立即确定的随机生成的 IP 子网。macOS 上没有保留额外的子网。Linux 的额外保留的子网是 192.168.130.0/24。
5.3. 在代理后启动 Red Hat OpenShift Local
您可以使用环境变量或可配置属性在定义的代理后启动 Red Hat OpenShift Local。
OpenShift Container Platform 不支持 SOCKS 代理。
先决条件
-
要在主机机器中使用现有的 OpenShift CLI (
oc)可执行文件,请将.testing域导出为no_proxy环境变量的一部分。嵌入的oc可执行文件不需要手动设置。有关使用嵌入式oc可执行文件的更多信息,请参阅使用 OpenShift CLI 访问 OpenShift 集群。
流程
使用
http_proxy和https_proxy环境变量或crc config set命令定义代理,如下所示:$ crc config set http-proxy http://proxy.example.com:<port> $ crc config set https-proxy http://proxy.example.com:<port> $ crc config set no-proxy <comma-separated-no-proxy-entries>
如果代理使用自定义 CA 证书文件,将其设置如下:
$ crc config set proxy-ca-file <path-to-custom-ca-file>
Red Hat OpenShift Local 在配置中设置的代理相关值的优先级高于使用环境变量设置的值。
5.4. 在远程服务器上设置 Red Hat OpenShift Local
配置远程服务器以运行由 Red Hat OpenShift Local 提供的 OpenShift Container Platform 集群。
此流程假设使用 Red Hat Enterprise Linux、Fedora 或 CentOS 服务器。在远程服务器中运行此流程中的每个命令。
仅在本地网络中执行这个步骤。在互联网上公开不安全的服务器有很多安全问题。
先决条件
- Red Hat OpenShift Local 已安装并在远程服务器上设置。如需更多信息,请参阅安装 Red Hat OpenShift Local 和 设置 Red Hat OpenShift Local。
- Red Hat OpenShift Local 被配置为使用远程服务器上的 OpenShift 预设置。如需更多信息,请参阅 更改所选预设置。
-
您的用户帐户在远程服务器中具有
sudo权限。
流程
启动集群:
$ crc start
确保集群在此过程中继续运行。
安装
haproxy软件包和其他工具:$ sudo dnf install haproxy /usr/sbin/semanage
修改防火墙以允许与集群通信:
$ sudo systemctl enable --now firewalld $ sudo firewall-cmd --add-service=http --permanent $ sudo firewall-cmd --add-service=https --permanent $ sudo firewall-cmd --add-service=kube-apiserver --permanent $ sudo firewall-cmd --reload
对于 SELinux,允许 HAProxy 侦听 TCP 端口 6443 以便在此端口上提供
kube-apiserver:$ sudo semanage port -a -t http_port_t -p tcp 6443
创建默认
haproxy配置的备份:$ sudo cp /etc/haproxy/haproxy.cfg{,.bak}配置
haproxy以用于集群:$ export CRC_IP=$(crc ip) $ sudo tee /etc/haproxy/haproxy.cfg &>/dev/null <<EOF global log /dev/log local0 defaults balance roundrobin log global maxconn 100 mode tcp timeout connect 5s timeout client 500s timeout server 500s listen apps bind 0.0.0.0:80 server crcvm $CRC_IP:80 check listen apps_ssl bind 0.0.0.0:443 server crcvm $CRC_IP:443 check listen api bind 0.0.0.0:6443 server crcvm $CRC_IP:6443 check EOF启动
haproxy服务:$ sudo systemctl start haproxy
5.5. 连接到远程 Red Hat OpenShift Local 实例
使用 dnsmasq 将客户端机器连接到运行由 Red Hat OpenShift Local 管理的 OpenShift Container Platform 集群的远程服务器。
此流程假设使用 Red Hat Enterprise Linux、Fedora 或 CentOS 客户端。在客户端中运行此流程中的每个命令。
连接到仅在您的本地网络上公开的服务器。
先决条件
- 为客户端设置用于连接的远程服务器。如需更多信息,请参阅 在远程服务器上设置 Red Hat OpenShift Local。
- 您知道服务器的外部 IP 地址。
-
在客户端的
$PATH中,有 最新的 OpenShift CLI (oc)。
流程
安装
dnsmasq软件包:$ sudo dnf install dnsmasq
启用在 NetworkManager 中使用
dnsmasq进行 DNS 解析:$ sudo tee /etc/NetworkManager/conf.d/use-dnsmasq.conf &>/dev/null <<EOF [main] dns=dnsmasq EOF
将 Red Hat OpenShift Local 的 DNS 条目添加到
dnsmasq配置中:$ sudo tee /etc/NetworkManager/dnsmasq.d/external-crc.conf &>/dev/null <<EOF address=/apps-crc.testing/SERVER_IP_ADDRESS address=/api.crc.testing/SERVER_IP_ADDRESS EOF
注意注释掉 /etc/NetworkManager/dnsmasq.d/crc.conf 中的任何现有条目。这些条目通过运行 Red Hat OpenShift Local 的本地实例来创建,并将与远程集群的条目冲突。
重新载入 NetworkManager 服务:
$ sudo systemctl reload NetworkManager
使用
oc以developer用户身份登录远程集群:$ oc login -u developer -p developer https://api.crc.testing:6443
远程 OpenShift Container Platform Web 控制台位于 https://console-openshift-console.apps-crc.testing。
第 6 章 管理任务
6.1. 启动监控
Red Hat OpenShift Local 默认禁用集群监控,以确保 Red Hat OpenShift Local 可以在典型的笔记本电脑中运行。监控负责在 Red Hat Hybrid Cloud Console 中列出您的集群。按照以下步骤为集群启用监控。
先决条件
-
您必须为 Red Hat OpenShift Local 实例分配额外的内存。对于核心功能,建议至少 14 GiB 内存(值为
14336)。增加的工作负载需要更多内存。如需更多信息,请参阅配置实例。
流程
将
enable-cluster-monitoring可配置属性设置为true:$ crc config set enable-cluster-monitoring true
启动实例:
$ crc start
警告无法禁用集群监控。要删除监控,将
enable-cluster-monitoring可配置属性设置为false,并删除现有的 Red Hat OpenShift Local 实例。
第 7 章 Troubleshooting Red Hat OpenShift Local
Red Hat OpenShift Local 的目标是为开发和测试目的提供 OpenShift Container Platform 环境。安装或升级特定 OpenShift 应用程序期间发生的问题不在 Red Hat OpenShift Local 范围内。向相关项目报告此问题。
7.1. 获取 OpenShift 集群的 shell 访问权限
要访问集群以进行故障排除或调试目的,请按照以下步骤执行。
常规使用不需要直接访问 OpenShift Container Platform 集群,强烈建议您这样做。
先决条件
-
启用 OpenShift CLI (
oc)访问集群,然后以kubeadmin用户身份登录。具体步骤请参阅 使用 OpenShift CLI 访问 OpenShift 集群。
流程
运行
oc get nodes命令,以识别所需的节点。输出结果类似如下:$ oc get nodes NAME STATUS ROLES AGE VERSION crc-shdl4-master-0 Ready master,worker 7d7h v1.14.6+7e13ab9a7
-
运行
oc debug nodes/ <node>,其中 <node> 是上一步中打印的节点的名称。
7.2. 过期证书故障排除
每个发布的 crc 可执行文件中的系统捆绑包在发行之日起 30 天后过期。此过期的原因是 OpenShift Container Platform 集群中嵌入的证书。crc start 命令在需要时触发自动证书续订过程。证书续订最多可为集群的开始时间增加五分钟。
为了避免这个额外的启动时间,或者在证书续订过程中出现问题时,请使用以下步骤:
流程
解决无法自动更新的过期证书错误:
-
下载最新的 Red Hat OpenShift Local 版本,并将
crc可执行内容放在$PATH中。 使用
crc delete命令删除带有证书错误的集群:$ crc delete
警告crc delete命令会导致丢失红帽 OpenShift Local 实例中存储的数据。在运行此命令前,保存实例中存储的任何所需信息。设置新发行版本:
$ crc setup
启动新实例:
$ crc start
7.3. 捆绑包版本不匹配故障排除
创建 Red Hat OpenShift Local 实例包含捆绑包信息和实例数据。设置新的 Red Hat OpenShift Local 版本时,不会更新捆绑包信息和实例数据。由于之前实例数据中的自定义,所以不会更新此信息。这会导致在运行 crc start 命令时出现错误:
$ crc start ... FATA Bundle 'crc_hyperkit_4.2.8.crcbundle' was requested, but the existing VM is using 'crc_hyperkit_4.2.2.crcbundle'
流程
在尝试启动实例前发出
crc delete命令:$ crc delete
警告crc delete命令会导致丢失红帽 OpenShift Local 实例中存储的数据。在运行此命令前,保存实例中存储的任何所需信息。
7.4. 未知问题的故障排除
通过使用清洁状态重启 Red Hat OpenShift Local 来解决大多数问题。这涉及停止实例,删除它,恢复 crc setup 命令所做的更改,以及重新应用这些更改,以及重新启动实例。
先决条件
-
您可以使用
crc setup命令设置主机机器。如需更多信息,请参阅设置 Red Hat OpenShift Local。 -
您可以使用
crc start命令启动 Red Hat OpenShift Local。如需更多信息,请参阅 启动 实例。 - 您使用最新的 Red Hat OpenShift Local 版本。使用早于 Red Hat OpenShift Local 1.2.0 的版本可能会导致与过期的 x509 证书相关的错误。如需更多信息,请参阅 对过期的证书进行故障排除。
流程
要排除 Red Hat OpenShift Local 的问题,请执行以下步骤:
停止 Red Hat OpenShift Local 实例:
$ crc stop
删除 Red Hat OpenShift Local 实例:
$ crc delete
警告crc delete命令会导致丢失红帽 OpenShift Local 实例中存储的数据。在运行此命令前,保存实例中存储的任何所需信息。清理
crc setup命令的剩余更改:$ crc cleanup
注意crc cleanup命令删除现有的 Red Hat OpenShift Local 实例,并恢复对crc setup命令创建的 DNS 条目的更改。在 macOS 上,crc cleanup命令也会删除系统托盘。设置主机机器以重新应用更改:
$ crc setup
启动 Red Hat OpenShift Local 实例:
$ crc start
注意在提供请求前,集群需要最少 4 分钟来启动所需的容器和 Operator。
如果这个步骤没有解决您的问题,请执行以下步骤:
- 搜索打开的问题 以找到您遇到的问题。
- 如果没有现有问题解决了遇到的问题,请创建一个问题, 并将 ~/.crc/crc.log 文件附加到 创建的问题。~/.crc/crc.log 文件的详细调试和故障排除信息,可帮助诊断您遇到问题。