DevOps

CKA 예제 리마인더 - 26. Network Policy

Vince_rf 2024. 12. 13. 23:26

어떤 파드에 Network Policy가 적용되어 있나요?

controlplane ~ ➜  kubectl get netpol


NAME             POD-SELECTOR   AGE
payroll-policy   name=payroll   13m

POD-SELECTOR 에 payroll로 정의됨



어떤 taffic을 handle하나요?

controlplane ~ ➜  kubectl describe netpol payroll-policy 

 

Name:         payroll-policy
Namespace:    default
Created on:   2024-12-13 13:53:04 +0000 UTC
Labels:       <none>
Annotations:  <none>
Spec:
  PodSelector:     name=payroll
  Allowing ingress traffic:
    To Port: 8080/TCP
    From:
      PodSelector: name=internal
  Not affecting egress traffic
  Policy Types: Ingress

Policy Types에 Ingress로 정의되어 있음


이 Network Policy에 어떤 rule이 정의되어 있나요?

Policy Types가 Ingress이므로 내부 트래픽이 Payroll POD로 전달된다

내부 파드는 8080 포트를 통해 Payroll POD로 접근가능하다



새로운 Network Policy를 만드세요

Policy Name: internal-policy

Policy Type: Egress

Egress Allow: payroll

Payroll Port: 8080

Egress Allow: mysql

MySQL Port: 3306


apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: internal-policy
  namespace: default
spec:
  policyTypes:
  - Egress
  egress:
  - ports:
    - protocol: TCP
      port: 3306
    to:
    - podSelector:
        matchLabels:
          name: mysql
  - ports:
    - protocol: TCP
      port: 8080
    to:
    - podSelector:
        matchLabels:
          name: payroll



kubectl get pod [mysql, payroll] -o yaml 명령어로 매치할 수 있는 라벨 확인 후

podSelector.matchLabels에 명시