第 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 API 服务器会公开为 api.crc.testing,而 OpenShift Container Platform 控制台则作为 console-openshift-console.apps-crc.testing 访问。这些 DNS 域由 Red Hat OpenShift Local 实例内运行的 dnsmasq DNS 容器提供。

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

5.1.2. Linux

在 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
注意

在 Red Hat Enterprise Linux 和 CentOS 8.3 中,systemd-resolved 也作为技术预览提供。将主机配置为使用 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 服务器。