8.3. 识别项目版本之间允许的连接的不同


此命令可帮助您了解两个项目版本之间允许的连接的不同。它分析每个版本目录中的工作负载和 Kubernetes 网络策略清单,并创建文本格式的不同表示。

您可以在各种输出格式中查看连接差异报告,包括 文本mddotcsv

生成两组 Kubernetes 清单之间连接差异的报告,包括使用 roxctl netpol connectivity diff 命令在内的网络策略。

先决条件

  • 您有两个文件夹 dir1dir2,每个文件夹都包含 Kubernetes 清单,包括网络策略。

流程

  • 要在指定目录中查找 Kubernetes 清单之间的连接区别,请运行以下命令:

    $ roxctl netpol connectivity diff --dir1=<folder_path_1> --dir2=<folder_path_2> [flags] 
    1
    Copy to Clipboard Toggle word wrap
    1
    指定文件夹的路径,其中可以包含包含 YAML 资源和网络策略的子文件夹,以用于分析。命令扫描两个目录的整个子文件夹树。

    例如,& lt;folder_path_1&gt; 是 netpol-analysis-example-minimal/,& lt;folder_path_2&gt; 是 netpol-diff-example-minimal/。另外,您还可以指定参数来更改命令的行为。

注意

该命令考虑您可以使用 kubectl apply -f 接受的所有 YAML 文件,然后 YAML 文件将成为 roxctl netpol connectivity diff 命令的有效输入。

Expand
表 8.3. 输出示例
diff-typesource目的地目录 1dir 2workloads-diff-info

changed

default/frontend[Deployment]

default/backend[Deployment]

TCP 9090

TCP 9090,UDP 53

 

已添加

0.0.0.0-255.255.255.255

default/backend[Deployment]

没有连接

TCP 9090

 

dir1 中允许的连接相比,语义差异报告为您提供了在 dir2 中更改、添加或删除的连接的概述。当您查看输出时,每行都代表一个允许添加、删除或更改 dir2 中的连接,与 dir1 相比。

如果适用,workload-diff-info 提供有关添加或删除连接的详情。

例如,如果因为删除了工作负载 B 而删除了从工作负载 A 到工作负载 B 的连接,则 workload -diff-info 表示工作负载 B 已被删除。但是,如果只因为网络策略更改而删除了这样的连接,且工作负载 AB 都不会被删除,则 workload -diff-info 为空。

8.3.2. 区分语法和语义差别输出

在以下示例中,dir1netpol-analysis-example-minimal/dir2netpol-diff-example-minimal/。目录之间的差别是网络策略 backend-netpol 的小变化。

dir1 中的策略示例:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  creationTimestamp: null
  name: backend-netpol
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 9090
      protocol: TCP
  podSelector:
    matchLabels:
      app: backendservice
  policyTypes:
  - Ingress
  - Egress
status: {}
Copy to Clipboard Toggle word wrap

dir2 中的更改是在 ports 属性前面添加的,它会产生一个区别的输出。

8.3.2.1. 语法输出

流程

  • 运行以下命令比较两个指定目录中 netpols.yaml 文件的内容:

    $ diff netpol-diff-example-minimal/netpols.yaml netpol-analysis-example-minimal/netpols.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    12c12
    <   - ports:
    ---
    >     ports:
    Copy to Clipboard Toggle word wrap

8.3.2.2. 语义差别输出

流程

  • 运行以下命令分析两个指定目录中的 Kubernetes 清单和网络策略之间的连接差异:

    $ roxctl netpol connectivity diff --dir1=roxctl/netpol/connectivity/diff/testdata/netpol-analysis-example-minimal/ --dir2=roxctl/netpol/connectivity/diff/testdata/netpol-diff-example-minimal
    Copy to Clipboard Toggle word wrap

    输出示例

    Connectivity diff:
    diff-type: changed, source: default/frontend[Deployment], destination: default/backend[Deployment], dir1:  TCP 9090, dir2: TCP 9090,UDP 53
    diff-type: added, source: 0.0.0.0-255.255.255.255, destination: default/backend[Deployment], dir1:  No Connections, dir2: TCP 9090
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat