Kubernetes

Kubernetes - Network Policy

사실 나도 모름 2024. 3. 4. 03:34
  1. 정의 및 목적
  2. 사용 방법

https://kubernetes.io/docs/concepts/services-networking/network-policies/

 

Network Policies

If you want to control traffic flow at the IP address or port level (OSI layer 3 or 4), NetworkPolicies allow you to specify rules for traffic flow within your cluster, and also between Pods and the outside world. Your cluster must use a network plugin tha

kubernetes.io

 

1. 정의 및 목적

Network Policy는 IP 또는 포트 수준에서 파드 간 트래픽을 제어한다.

트래픽을 제어함으로 파드로 들어오거나 내보내는 트래픽을 허용하거나 차단하여 민감한 데이터에 대한 접근을 제한하고 보안을 향상 시킬 수 있다.

 

전제 조건
NetworkPolicy는 네트워크 플러그인에 의해 구현된다.
만약 네트워크 플러그인의 컨트롤러가 해당 기능을 구현하지 않았다면 실행하더라도 적용되지 않는다.

 

 


2. 사용 방법

공식 문서에서 제공하는 yaml 예시를 보자.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

 

 

각 필드가 직관적이라 무슨 내용인지 쉽게 인지할 수 있다.

  • podSelector : 트래칙을 제어할 파드를 선택하는 필드
  • policyType : 네트워크 정책의 유형
  • ingress : 파드로 들어오는 트래픽에 대한 제어
    • ipBlock: 특정 IP 대역을 허용하거나 배제하기 위한 필드
    • namespaceSelector : 네임스페이스의 라벨을 통해 특정 네임스페이스에서 보내는 트래픽만 받도록 제한
    • podSelector : 파드의 라벨을 통해 특정 파드에서 보내는 트래픽만 받도록 제한
    • ports : 수신할 트래픽을 특정 프로토콜로 제한하거나 지정한 포트로만 트래픽을 수신하도록 제한
  • egress : 파드에서 내보내는 트래픽에 대한 제어
    • ipBlock : 특정 IP 대역으로만 트래픽을 송신하도록 제어
    • ports : 송신할 트래픽의 프로토콜과 목적지 포트를 지정

 

 

Network Policy는 CKA 시험에서도 출제되는 내용이다.

물론 이 yaml 코드를 직접 입력하진 않겠지만 각 필드가 무엇을 의미하는지 이해하는 것이 중요하다.

 

'Kubernetes' 카테고리의 다른 글

JSONPath  (0) 2024.12.16
Kubernetes - ETCD backup and restore  (0) 2024.03.04
Kubernetes - Metrics Server, PodAutoScaling  (0) 2024.02.03
Kubernetes 기초 - Helm(3)  (0) 2024.01.30
Kubernetes 기초 - Helm(2)  (0) 2024.01.27