2.11. 审计公开的网络端口


在 MicroShift 上,在以下情况下,可以通过工作负载打开主机端口。您可以检查日志以查看网络服务。

2.11.1. hostNetwork

当使用 hostNetwork:true 设置配置 pod 时,pod 在主机网络命名空间中运行。此配置可以独立打开主机端口。MicroShift 组件日志无法用于跟踪这种情况,这些端口取决于 firewalld 规则。如果端口在 firewalld 中打开,您可以在 firewalld 调试日志中查看打开的端口。

先决条件

  • 有访问构建主机的 root 用户。

流程

  1. 可选:您可以使用以下示例命令检查 ovnkube-node pod 中是否设置了 hostNetwork:true 参数:

    $ sudo oc get pod -n openshift-ovn-kubernetes <ovnkube-node-pod-name> -o json | jq -r '.spec.hostNetwork' true
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,在 firewalld 日志中启用 debug:

    $ sudo vi /etc/sysconfig/firewalld
    FIREWALLD_ARGS=--debug=10
    Copy to Clipboard Toggle word wrap
  3. 重启 firewalld 服务:

    $ sudo systemctl restart firewalld.service
    Copy to Clipboard Toggle word wrap
  4. 要验证 debug 选项是否已正确添加,请运行以下命令:

    $ sudo systemd-cgls -u firewalld.service
    Copy to Clipboard Toggle word wrap

    firewalld 调试日志存储在 /var/log/firewalld 路径中。

    添加端口打开规则时的日志示例

    2023-06-28 10:46:37 DEBUG1: config.getZoneByName('public')
    2023-06-28 10:46:37 DEBUG1: config.zone.7.addPort('8080', 'tcp')
    2023-06-28 10:46:37 DEBUG1: config.zone.7.getSettings()
    2023-06-28 10:46:37 DEBUG1: config.zone.7.update('...')
    2023-06-28 10:46:37 DEBUG1: config.zone.7.Updated('public')
    Copy to Clipboard Toggle word wrap

    删除端口打开规则时的日志示例

    2023-06-28 10:47:57 DEBUG1: config.getZoneByName('public')
    2023-06-28 10:47:57 DEBUG2: config.zone.7.Introspect()
    2023-06-28 10:47:57 DEBUG1: config.zone.7.removePort('8080', 'tcp')
    2023-06-28 10:47:57 DEBUG1: config.zone.7.getSettings()
    2023-06-28 10:47:57 DEBUG1: config.zone.7.update('...')
    2023-06-28 10:47:57 DEBUG1: config.zone.7.Updated('public')
    Copy to Clipboard Toggle word wrap

2.11.2. hostPort

您可以在 MicroShift 中访问 hostPort 设置日志。以下日志是 hostPort 设置的示例:

流程

  • 您可以运行以下命令来访问日志:

    $ journalctl -u crio | grep "local port"
    Copy to Clipboard Toggle word wrap

    打开主机端口时的 CRI-O 日志示例

    $ Jun 25 16:27:37 rhel92 crio[77216]: time="2023-06-25 16:27:37.033003098+08:00" level=info msg="Opened local port tcp:443"
    Copy to Clipboard Toggle word wrap

    主机端口关闭时的 CRI-O 日志示例

    $ Jun 25 16:24:11 rhel92 crio[77216]: time="2023-06-25 16:24:11.342088450+08:00" level=info msg="Closing host port tcp:443"
    Copy to Clipboard Toggle word wrap

2.11.3. NodePort 和 LoadBalancer 服务

OVN-Kubernetes 为 NodePortLoadBalancer 服务类型打开主机端口。这些服务添加 iptables 规则,该规则从主机端口获取入口流量并将其转发到 clusterIP。以下示例中显示了 NodePortLoadBalancer 服务的日志:

流程

  1. 要访问 ovnkube-master pod 的名称,请运行以下命令:

    $ oc get pods -n openshift-ovn-kubernetes | awk '/ovnkube-master/{print $1}'
    Copy to Clipboard Toggle word wrap

    ovnkube-master pod 名称示例

    ovnkube-master-n2shv
    Copy to Clipboard Toggle word wrap

  2. 您可以使用 ovnkube-master pod 访问 NodePortLoadBalancer 服务日志,并运行以下示例命令:

    $ oc logs -n openshift-ovn-kubernetes <ovnkube-master-pod-name> ovnkube-master | grep -E "OVN-KUBE-NODEPORT|OVN-KUBE-EXTERNALIP"
    Copy to Clipboard Toggle word wrap

    NodePort 服务:

    当主机端口打开时,ovnkube-master pod 的 ovnkube-master 容器中的日志示例

    $ I0625 09:07:00.992980 2118395 iptables.go:27] Adding rule in table: nat, chain: OVN-KUBE-NODEPORT with args: "-p TCP -m addrtype --dst-type LOCAL --dport 32718 -j DNAT --to-destination 10.96.178.142:8081" for protocol: 0
    Copy to Clipboard Toggle word wrap

    当主机端口关闭时,ovnkube-master pod 的 ovnkube-master 容器中的日志示例

    $ Deleting rule in table: nat, chain: OVN-KUBE-NODEPORT with args: "-p TCP -m addrtype --dst-type LOCAL --dport 32718 -j DNAT --to-destination 10.96.178.142:8081" for protocol: 0
    Copy to Clipboard Toggle word wrap

    LoadBalancer 服务:

    当主机端口打开时,ovnkube-master pod 的 ovnkube-master 容器中的日志示例

    $ I0625 09:34:10.406067  128902 iptables.go:27] Adding rule in table: nat, chain: OVN-KUBE-EXTERNALIP with args: "-p TCP -d 172.16.47.129 --dport 8081 -j DNAT --to-destination 10.43.114.94:8081" for protocol: 0
    Copy to Clipboard Toggle word wrap

    当主机端口关闭时,ovnkube-master pod 的 ovnkube-master 容器中的日志示例

    $ I0625 09:37:00.976953  128902 iptables.go:63] Deleting rule in table: nat, chain: OVN-KUBE-EXTERNALIP with args: "-p TCP -d 172.16.47.129 --dport 8081 -j DNAT --to-destination 10.43.114.94:8081" for protocol: 0
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat