8.3. 프로젝트 버전 간 허용된 연결의 차이점 확인
roxctl netpol connectivity diff 명령은 두 프로젝트 버전 간의 허용된 연결의 차이점을 식별합니다. 각 버전의 디렉터리에서 네트워크 정책,ANP(관리 네트워크 정책) 및 BANP(Baseline Admin Network Policy) 매니페스트를 분석합니다. 이 분석은 차이점에 대한 텍스트 기반 보고서를 제공합니다. 또한 ANP 및 BANP 리소스의 영향을 포함하므로 클러스터 범위 전반에 걸쳐 정책 변경 사항을 완전히 볼 수 있습니다.
텍스트,md,dot, csv 등 다양한 출력 형식의 연결 차이점 보고서를 볼 수 있습니다.
8.3.1. roxctl netpol connectivity diff 명령을 사용하여 연결 차이점 보고서 생성 링크 복사링크가 클립보드에 복사되었습니다!
roxctl netpol connectivity diff 명령을 사용하여 네트워크 정책을 포함하여 두 개의 Kubernetes 매니페스트 세트 간의 연결 차이점에 대한 보고서를 생성합니다.
사전 요구 사항
-
dir1및dir2폴더에는 각각 네트워크 정책을 포함하여 Kubernetes 매니페스트가 포함됩니다.
프로세스
지정된 디렉터리에서 Kubernetes 매니페스트 간의 연결 차이점을 찾으려면 다음 명령을 실행합니다.
$ 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: {}
dir2 의 변경 사항은 difference 출력을 생성하는 ports 속성 앞에 추가됩니다.
8.3.2.1. 구문 차이 출력 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
다음 명령을 실행하여 지정된 두 디렉터리에 있는
netpols.yaml파일의 내용을 비교합니다.$ diff netpol-diff-example-minimal/netpols.yaml netpol-analysis-example-minimal/netpols.yaml출력 예
12c12 < - ports: --- > ports:
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출력 예
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