第 5 章 网络

5.1. DNS 配置详情

5.1.1. 常规 DNS 设置

由 Red Hat OpenShift Local 管理的 OpenShift Container Platform 集群使用 2 个 DNS 域名、crc.testingapps-crc.testingcrc.testing 域用于 OpenShift Container Platform 核心服务。apps-crc.testing 域用于访问集群中部署的 OpenShift 应用。

例如,当 OpenShift Container Platform 控制台作为 console-openshift-console.apps-crc.testing 访问时,OpenShift Container Platform API 服务器会公开为 api.crc.testing。这些 DNS 域由在 Red Hat OpenShift Local 实例中运行的 dnsmasq DNS 容器提供。

crc setup 命令检测并调整您的系统 DNS 配置,以便它可以解析这些域。在运行 crc start 时,完成其他检查来验证 DNS 是否已正确配置。

5.1.2. Linux 上的 DNS

根据具体发行版的 Linux,Red Hat OpenShift Local 需要以下 DNS 配置:

5.1.2.1. NetworkManager + systemd-resolved

默认情况下,在 Fedora 33 或更新版本中使用此配置,以及 Ubuntu 桌面版本。

  • Red Hat OpenShift Local 期望 NetworkManager 管理网络。
  • Red Hat OpenShift Local 配置 systemd-resolved,将 testing 域的请求转发到 192.168.130.11 DNS 服务器。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
注意

systemd-resolved 在 Red Hat Enterprise Linux 和 CentOS 8.3 中也作为不受支持的技术预览提供。将主机配置为使用 systemd-resolved 后,停止任何正在运行的集群并重新运行 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.testingapps-crc.testing 域的请求转发到 192.168.130.11 DNS 服务器。