8.3. 识别项目版本之间允许的连接的不同
此命令可帮助您了解两个项目版本之间允许的连接的不同。它分析每个版本目录中的工作负载和 Kubernetes 网络策略清单,并创建文本格式的不同表示。
您可以在各种输出格式中查看连接差异报告,包括 文本
、md
、dot
和 csv
。
8.3.1. 使用 roxctl netpol connectivity diff 命令生成连接差异报告 复制链接链接已复制到粘贴板!
生成两组 Kubernetes 清单之间连接差异的报告,包括使用 roxctl netpol connectivity diff
命令在内的网络策略。
先决条件
-
您有两个文件夹
dir1
和dir2
,每个文件夹都包含 Kubernetes 清单,包括网络策略。
流程
要在指定目录中查找 Kubernetes 清单之间的连接区别,请运行以下命令:
roxctl netpol connectivity diff --dir1=<folder_path_1> --dir2=<folder_path_2> [flags]
$ roxctl netpol connectivity diff --dir1=<folder_path_1> --dir2=<folder_path_2> [flags]
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定文件夹的路径,其中可以包含包含 YAML 资源和网络策略的子文件夹,以用于分析。命令扫描两个目录的整个子文件夹树。
例如,&
lt;folder_path_1>
; 是netpol-analysis-example-minimal/
,<folder_path_2>
; 是netpol-diff-example-minimal/
。另外,您还可以指定参数来更改命令的行为。
该命令考虑您可以使用 kubectl apply -f
接受的所有 YAML 文件,然后 YAML 文件将成为 roxctl netpol connectivity diff
命令的有效输入。
diff-type | source | 目的地 | 目录 1 | dir 2 | workloads-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
已被删除。但是,如果只因为网络策略更改而删除了这样的连接,且工作负载 A
和 B
都不会被删除,则 workload -diff-info
为空。
8.3.2. 区分语法和语义差别输出 复制链接链接已复制到粘贴板!
在以下示例中,dir1
是 netpol-analysis-example-minimal/
,dir2
是 netpol-diff-example-minimal/
。目录之间的差别是网络策略 backend-netpol
的小变化。
dir1
中的策略示例:
dir2
中的更改是在 ports 属性前面添加的,它会产生一个区别的输出。
8.3.2.1. 语法输出 复制链接链接已复制到粘贴板!
流程
运行以下命令比较两个指定目录中
netpols.yaml
文件的内容:diff netpol-diff-example-minimal/netpols.yaml netpol-analysis-example-minimal/netpols.yaml
$ diff netpol-diff-example-minimal/netpols.yaml netpol-analysis-example-minimal/netpols.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
12c12 < - ports: --- > ports:
12c12 < - ports: --- > ports:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ 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 Copied! Toggle word wrap Toggle overflow 输出示例
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
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 Copied! Toggle word wrap Toggle overflow