전공공부
[K8S - CKA] Network Policy 본문
Traffic
(Ingress)Web -> :80 -> API :5000 -> DB :3306
API -> Web (Egress)
Ingress Role : 웹 서버로 부터 들어오는 요청 Driving
Egress Role : DB 응답 웹 서버로 들어온 요청의 응답 Driven
Network Security
쿠버 네티스는 기본적으로 All Allowed 됩니다. 클러스터 내부 Pod 간 통신이든 뭐든요. 그래서 우리는 Web -> API -> DB 이런것이 바로 가능한 이유가 이런 이유인데요
만일, Web -> DB는 막고 싶다면 어떻게 해야 할까요?
Netwok Policy를 이때 적용 합니다.
Network Policy - Rules
Allow Ingress Traffic From API Pod on Port 3306 만 받게다고 선언하는것이죠
그러면 이를 적용할 Pod가 어딘지는 어떻게 알죠? 그리고 어떻게 들어오는지는 어떻게 선언하구요?
해당 이미지를 보듯이 내가 지금 Network Policy로 가둘 Pod로 부터 들어오는 요청이면 Ingress로 지정하고 ingress가 어디로 들어오는지를 위와 같이 from.podSelector.matchLabels.name 으로 지정하고 Port를 추가로 지정하면됩니다.
예제 networkPolicy Code
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
'Study > K8S' 카테고리의 다른 글
[K8S - CKA] Volumes & Persistent Volumes (Claims) (0) | 2024.01.21 |
---|---|
[K8S - CKA] Storage in Docker (0) | 2024.01.20 |
[K8S - CKA] Security Context (0) | 2024.01.16 |
[K8S - CKA] Image Security (0) | 2024.01.16 |
[K8S - CKA] ServiceAccounts (0) | 2024.01.14 |