1.10. 示例:IP 管理
以下配置片段示例演示了不同的 IP 管理方法。
这些示例使用 ethernet
接口类型来简化示例,同时显示 Policy 配置中相关的上下文。这些 IP 管理示例可与其他接口类型一起使用。
1.10.1. Static 复制链接链接已复制到粘贴板!
以下片段在以太网接口中静态配置 IP 地址:
- 1
- 使用接口的静态 IP 地址替换这个值。
1.10.2. 没有 IP 地址 复制链接链接已复制到粘贴板!
以下片段确保接口没有 IP 地址:
当您将 ipv4.enabled
和 ipv6.enabled
参数设置为 false
时,始终将 state
参数设置为 up
,以禁用接口。如果使用此配置设置了 state: down
,接口会因为自动 DHCP 分配而接收 DHCP IP 地址。
1.10.3. 动态主机配置 复制链接链接已复制到粘贴板!
以下片段配置了一个以太网接口,它使用动态 IP 地址、网关地址和 DNS:
以下片段配置了一个以太网接口,它使用动态 IP 地址,但不使用动态网关地址或 DNS:
1.10.4. 介质访问控制(MAC)地址 复制链接链接已复制到粘贴板!
您可以使用 MAC 地址来识别网络接口,而不使用网络接口的名称。网络接口名称可能会因为各种原因而改变,如操作系统配置更改。但是,每个网络接口都有一个不更改的唯一 MAC 地址。这意味着,使用 MAC 地址是更永久地识别特定网络接口的方法。
identifier
参数支持的值包括默认 name
值和 mac-address
值。name
值将配置应用到包含指定接口名称的接口。
将 mac-address
值用于 identifier
参数表示 MAC 地址是网络接口的标识符。如果将 identifier
值设置为 mac-address
,则必须在以下 mac-address
参数字段中输入特定的 MAC 地址。
您仍然可以为 name
参数指定一个值,但设置 identifier: mac-address
值表示 MAC 地址用作网络接口的主标识符。如果您指定了不正确的 MAC 地址,nmstate
会报告无效的参数错误。
以下片段将 MAC 地址指定为名为 eth1
的以太网设备的主标识符,其 MAC 地址为 8A:8C:92:1A:F6:98
:
1.10.5. DNS 复制链接链接已复制到粘贴板!
默认情况下,nmstate
API 会在全局范围内存储 DNS 值,而不是将其存储在网络接口中。在某些情况下,您必须配置网络接口来存储 DNS 值。
设置一个 DNS 配置与修改 /etc/resolv.conf
文件相当。
要为网络接口定义 DNS 配置,您必须首先在网络接口 YAML 配置文件中指定 dns-resolver
部分。要将 NNCP 配置应用到您的网络接口,您需要运行 oc apply -f <nncp_file_name>
命令。
以下示例显示了全局存储 DNS 值的默认情况:
配置没有网络接口的静态 DNS。请注意,当更新主机节点上的
/etc/resolv.conf
文件时,您不需要在NodeNetworkConfigurationPolicy
(NNCP)清单中指定一个接口 (IPv4 或 IPv6)。全局存储 DNS 值的网络接口的 DNS 配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您可以在 NNCP 文件的
dns-resolver.config
部分下指定 DNS 选项,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要从网络接口中删除 DNS 选项,请将以下配置应用到 NNCP,然后运行
oc apply -f <nncp_file_name>
命令:... ...
# ... dns-resolver: config: {} interfaces: [] # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下示例显示,配置一个网络接口来存储 DNS 值:
如果要将静态 DNS 名称服务器排名在动态 DNS 名称服务器上,请在网络接口 YAML 配置文件中定义运行动态主机配置协议(DHCP)或 IPv6 自动配置(
autoconf
)机制的接口。将
192.0.2.1
添加到从 DHCPv4 网络协议检索的 DNS 名称服务器中的示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您需要配置网络接口来存储 DNS 值,而不是使用默认方法(使用
nmstate
API 在全局范围内存储 DNS 值),您可以在网络接口 YAML 文件中设置静态 DNS 值和静态 IP 地址。重要在网络接口级别上存储 DNS 值可能会导致名称解析问题,如 Open vSwitch (OVS) 网桥、Linux 网桥或绑定。
在接口级别存储 DNS 值的配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要为您的网络接口设置静态 DNS 搜索域和静态 DNS 名称服务器,请在网络接口 YAML 配置文件中定义运行动态主机配置协议(DHCP)或 IPv6 自动配置(
autoconf
)机制的静态接口。重要在网络接口 YAML 文件中指定以下
dns-resolver
配置可能会导致重启出现竞争条件,以防止NodeNetworkConfigurationPolicy
(NNCP)应用到集群中运行的 pod:- 为您的网络接口设置静态 DNS 搜索域和动态 DNS 名称服务器。
-
为搜索参数指定域后缀,而不为
server
参数设置 IP 地址。
设置
example.com
和example.org
静态 DNS 搜索域以及静态 DNS 名称服务器设置的示例配置Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.10.6. 静态路由 复制链接链接已复制到粘贴板!
以下片段在接口 eth1
中配置静态路由和静态 IP。
在配置静态路由时,您无法使用 OVN-Kubernetes br-ex
网桥作为下一个跃点接口,除非您手动配置自定义的 br-ex
网桥。
如需更多信息,请参阅在裸机中部署安装程序置备的集群文档或在裸机中安装用户置备的集群 文档中的"创建包括自定义 br-ex 网桥的清单对象"。