Kubernetes - NetworkPolicy

우야·2021년 6월 18일
0
post-custom-banner

사용 목적?

  • Kubernetes NetworkPolicy API 를 사용하여 포드가 서로 통신하는 방식을 제어하는 ​​네트워크 정책을 선언
  • NetworkPolicy를 사용하여 통신에 대한 제한을 정의 할수 있음
  • Kubernetes 서버는 버전 v1.8 이상
  • NetworkPolicy를 지원하는 여러 네트워크 공급자
    • Antrea
    • Calico
    • Cilium
    • Kube-router
    • Romana
    • Weave Net

Nginx를 사용한 예제

  • nginx 서비스가 있다고 할때,
NAME                        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
service/nginx               10.100.0.16   <none>        80/TCP     33s

NAME                        READY         STATUS        RESTARTS   AGE
pod/nginx-701339712-e0qfq   1/1           Running       0          35
  • Network access에 대한 정책 정의
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: access-nginx
spec:
  podSelector:
    matchLabels:
      app: nginx
  ingress:
  - from:
    - podSelector:
        matchLabels:
          access: "true"
  • nginx의 pod의 label에 access: true가 있는경우
  • 타임아웃 발생하여 접근 가능
kubectl run busybox --rm -ti --labels="access=true" --image=busybox -- /bin/sh

wget --spider --timeout=1 nginx

Connecting to nginx (10.100.0.16:80)
remote file exists
  • nginx의 pod의 label에 access label이 없는 경우
  • 타임아웃 발생하여 접근 안됨
wget --spider --timeout=1 nginx

Connecting to nginx (10.100.0.16:80)
wget: download timed out
profile
Fullstack developer
post-custom-banner

0개의 댓글