9.3. 识别项目版本之间允许的连接的不同
此命令帮助您了解两个项目版本之间的允许连接差异。它分析了每个版本目录中的工作负载和 Kubernetes 网络策略清单,并以文本格式创建区别。
您可以在各种输出格式中查看连接差异报告,包括 文本
、md
、dot
和 csv
。
9.3.1. 使用 roxctl netpol connection diff 命令生成连接差异报告 复制链接链接已复制到粘贴板!
要生成连接差异报告,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 资源和网络策略的子文件夹。命令可扫描两个目录的整个子文件夹树。例如,<
;folder_path_1>
是netpol-analysis-example-minimal/
,<folder_path_2>
; 是netpol-diff-example-minimal/
。另外,您还可以指定参数来修改命令的行为。
有关可选参数的更多信息,请参阅 roxctl netpol connectivity diff 命令选项。
注意该命令考虑您可以使用
kubectl apply -f
接受的所有 YAML 文件,然后它们成为roxctl netpol connectivity diff
命令的有效输入。例 9.2. 输出示例
Expand diff-type source 目的地 dir 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
中更改、添加或删除的连接的概述。当您查看输出时,每行都代表了与 dir1
相比,在 dir2
中添加、删除或更改的允许的连接。
以下是 roxctl netpol connectivity diff
命令以各种格式生成的输出示例:
如果适用,Workload-diff-info
提供了有关添加或删除与添加或删除连接相关的工作负载的更多详情。
例如,如果因为删除了工作负载 B
,从工作负载 A
到工作负载 B
的连接已被删除,则 workload -diff-info
表示工作负载 B
已被删除。但是,如果因为网络策略更改以及工作负载 A
和 B
都删除了这样的连接,则 workload -diff-info
为空。
9.3.2. roxctl netpol connectivity diff 命令选项 复制链接链接已复制到粘贴板!
roxctl netpol connectivity diff
命令支持以下选项:
选项 | 描述 |
---|---|
| 输入资源的第一个目录路径。这是强制选项。 |
| 要与第一个目录路径进行比较的输入资源的第二个目录路径。这是强制选项。 |
|
在第一次遇到的错误时失败。默认值为 |
|
查看 |
| 将连接差异输出保存到特定文件中。 |
|
配置输出格式。支持的格式有 |
|
删除输出路径(如果已存在)。默认值为 |
|
将连接差异输出保存到默认文件中。默认值为 |
|
将警告视为错误。默认值为 |
9.3.3. 区分语法和语义差异输出 复制链接链接已复制到粘贴板!
在以下示例中,dir1
是 netpol-analysis-example-minimal/
,dir2
是 netpol-diff-example-minimal/
。目录之间的区别在于网络策略 backend-netpol
中的小变化。
dir1
中的策略示例:
dir2
中的更改是在 ports 属性前添加的 -
,这会产生不同的输出。
9.3.3.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
9.3.3.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