![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif)
베하~! BTC_녹차공원 팀의 민물공원 입니다.
이번주는 NetworkPolicy에 대해 알아보겠습니다!
NetworkPolicy
NetworkPolicy는 쿠버네티스에서 제공하는 일종의 방화벽 정책으로 Pod가 서로 통신할 때 방화벽 설정을 할 수 있어요.
Pod에 대해 인바운드(Inbound traffic), 아웃바운드(Outbound traffic)에 대해 설정을 해줄 수 있답니다 !!
Network Policy 에는 Inbound 에 해당하는 ingress 설정과 Outbound에 해당하는 Egress 설정이 있어요.
Inbound 는 외부에서 특정 Pod의 내부로 들어오는 트래픽에 대한 방화벽 설정으로 어떤 트래픽에 Pod로 들어올것인지 설정하는 부분이랍니다.
Outbound 는 특정 Pod에서 밖으로 나가는 트래픽에 대한 방화벽 설정으로 어떠한 트래픽이 Pod로 부터 나갈것인지 설정할수 있어요!
NetworkPolicy 실습
이번 실습도 Killercoda 에서 따라해보아요.
Killercoda Interactive Environments
Learn DevOps Linux Kubernetes CKS CKA CKAD Git Cassandra etc | Katacoda compatible
killercoda.com
Busan 이라는 네임스페이스에 존재하는 Pod-2에서 Seoul 이라는 네임스페이스에 존재하는 Pod-1에 9000번 포트로만 연결할수 있도록 Network 정책을 설정해보는 실습을 해보아요 !
먼저 Busan과 Seoul의 네임스페이스를 생성할거예요
kubectl create namespace busan
kubectl create namespace seoul
그 다음 Pod-2와 Pod-1을 생성할거예요
kubectl run pod-2 --image=nginx -n busan
kubectl run pod-1 --image=nginx -n seoul
Busan 네임스페이스에 app=Busan-app 이라고 설정을 해 보아요
kubectl label namespaces busan app=busan-app
kubectl get namespaces --show-labels
networkpolicy의 yaml 파일을 작성한 후 설정해보아요.
vi networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-port-rom-namespace
namespace: seoul
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
app: busan-app
ports:
- protocol: TCP
port: 9000
kubectl create -f networkpolicy.yaml
현재 networkpolicy 정책 적용이 잘 되었는지 상태를 확인해보아요
kubectl get networkpolicy.networking.k8s.io/allow-port-rom-namespace -n seoul
Pod-1의 IP를 확인해 봅니다.
kubectl get pod -n seoul -o wide
Pod-2에 접속한 후 Pod-1로 연결해보아요.
kubectl -n busan exec pod-2 -it -- sh
curl 192.168.1.4
curl 은 80번 포트로 연결하기 때문에 접속이 안됨을 확인할 수 있었어요. 하지만!
Pod-1에서 접속한 후 Pod-2로의 curl 접속은 된답니다.
이렇게 오늘은 쿠버네티스의 NetworkPolicy 에 대해 알아보았는데요.
다음번에는 더 흥미로운 주제로 찾아뵙겠습니다.
이상 BTC_녹차공원 팀이였습니다!
베빠~!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/005.gif)
'INFRA > DevOps' 카테고리의 다른 글
[DevOps] CI/CD 개념 및 도구 설명 (0) | 2023.08.18 |
---|---|
[K8S] Service (0) | 2023.08.01 |
[K8S] Node Upgrade (0) | 2023.07.20 |
[K8S] Node Schedule (0) | 2023.07.06 |
[K8S] role & rolebinding (0) | 2023.06.18 |
댓글