8.3. 프로젝트 버전 간 허용된 연결의 차이점 확인
이 명령을 사용하면 두 프로젝트 버전 간의 허용된 연결 차이점을 이해하는 데 도움이 됩니다. 각 버전의 디렉터리에 있는 워크로드 및 Kubernetes 네트워크 정책 매니페스트를 분석하고 텍스트 형식의 차이점을 나타냅니다.
텍스트
,md
,dot
, csv
등 다양한 출력 형식의 연결 차이점 보고서를 볼 수 있습니다.
8.3.1. roxctl netpol connectivity diff 명령을 사용하여 연결 차이점 보고서 생성
roxctl netpol connectivity diff
명령을 사용하여 네트워크 정책을 포함하여 두 개의 Kubernetes 매니페스트 세트 간의 연결 차이점에 대한 보고서를 생성합니다.
사전 요구 사항
-
dir1
및dir2
폴더에는 각각 네트워크 정책을 포함하여 Kubernetes 매니페스트가 포함됩니다.
프로세스
지정된 디렉터리에서 Kubernetes 매니페스트 간의 연결 차이점을 찾으려면 다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 - 1
- 폴더 경로를 지정합니다. 여기에는 YAML 리소스 및 분석을 위한 네트워크 정책이 포함된 하위 폴더가 포함될 수 있습니다. 명령은 두 디렉토리의 전체 하위 폴더 트리를 스캔합니다.
예를 들어 <
folder_path_1
>은netpol-analysis-example-minimal/
이고 <folder_path_2
>는netpol-diff-example-example-minimal/
입니다. 선택적으로 매개변수를 지정하여 명령의 동작을 변경할 수도 있습니다.
이 명령은 kubectl apply -f
를 사용하여 허용할 수 있는 모든 YAML 파일을 고려한 다음 YAML 파일은 roxctl netpol connectivity diff
명령에 유효한 입력이 됩니다.
diff-type | 소스 | 대상 | 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
에서 추가, 제거 또는 변경된 허용된 연결을 나타냅니다.
해당하는 경우 workloads-diff-info
는 추가 또는 제거된 연결과 관련된 추가 또는 제거된 워크로드에 대한 추가 세부 정보를 제공합니다.
예를 들어 워크로드 B
가 삭제되어 워크로드 A
에서 워크로드 B
로의 연결이 제거되면 workloads-diff-info
는 워크로드 B
가 제거되었음을 나타냅니다. 그러나 네트워크 정책으로 인해 이러한 연결이 제거되고 워크로드 A
또는 B
가 삭제되지 않은 경우 workloads-diff-info
가 비어 있습니다.
8.3.2. 구문 및 의미 차이 출력 구분
다음 예에서 dir1
은 netpol-analysis-example-minimal/
이며 dir2
는 netpol-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: {}
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: {}
dir2
의 변경 사항은 difference 출력을 생성하는 ports 속성 앞에 추가됩니다.
8.3.2.1. 구문 차이 출력
프로세스
다음 명령을 실행하여 지정된 두 디렉터리에 있는
netpols.yaml
파일의 내용을 비교합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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:
8.3.2.2. 의미 체계 차이 출력
프로세스
다음 명령을 실행하여 지정된 두 디렉터리에 있는 Kubernetes 매니페스트와 네트워크 정책 간의 연결 차이점을 분석합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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