Kubernetes Networkpolicy 관련 질문입니다.
254
작성한 질문수 1
안녕하세요 강의를 수강중인 수강생입니다.
Kubernetes NetworkPolicy 관련 질문이 있습니다.
강의에서는 NetworkPolicy를 .yaml 파일을 1개로 설정하시고 테스트 하셨는데
NetworkPolicy rule을 2개의 .yaml 파일로 나눠서 적용해도 2개의 rule들이 하나의 pod에서 같이 적용이 가능할까요?
예를 들면) 아래와 같이 적용을 했을 때, role: web pod는 외부로 80과 53의 두가지의 Rule을 모두 적용이 가능 한건지 궁금합니다.
a.yaml -> role: web 이라는 tag를 가진 pod에 egress 0.0.0.0/0 tcp 80
a2.yaml -> role: web 이라는 tag를 가진 pod에 egress 0.0.0.0/0 udp 53
제가 테스트 했을 때는, 안되었는데 혹시 파일을 나눠서 적용 하고 싶다면 다른 방법이 있을까요?
답변 1
1
안녕하세요
정확히 어떤 의도인지 파악하진 못했는데, 아마 CSP 같은 환경을 만들기 위해서 보고 계신거 같습니다.
그리고 UDP까지는 필요하지 않아서 TCP로 아래와 같이 테스트한 결과 위의 내용이 적용 가능합니다.
아마 어딘가 테스트를 다르게 진행하신거 같습니다.
사용 deployment
[root@m-k8s 8.6]# cat 1-1-deploy-deny-all.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
role: sensitive
app: chk-info
name: deploy-deny-all
<생략>8080 netpol 적용
[root@m-k8s 8.6]# cat 8080.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: 8080port
namespace: default
spec:
podSelector:
matchLabels:
role: sensitive
policyTypes:
- Ingress
- Egress
ingress:
- ports:
- protocol: TCP
port: 8080
egress:
- {}
8080 적용 후 curl 안됨
[root@m-k8s 8.6]# ka 8080.yaml
networkpolicy.networking.k8s.io/8080port created
[root@m-k8s 8.6]# curl 192.168.1.11
^C
80 적용 후 curl이 됨
[root@m-k8s 8.6]# cat 80.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: 80port
namespace: default
spec:
podSelector:
matchLabels:
role: sensitive
policyTypes:
- Ingress
- Egress
ingress:
- ports:
- protocol: TCP
port: 80
egress:
- {}
[root@m-k8s 8.6]# ka 80.yaml
networkpolicy.networking.k8s.io/80port created
[root@m-k8s 8.6]# curl 192.168.1.11
<!DOCTYPE html>
<html>
<head>
<title>Check NGINX Information</title>
<생략>
[root@m-k8s 8.6]# k get netpol
NAME POD-SELECTOR AGE
8080port role=sensitive 2m43s
80port role=sensitive 67s
해당 내용을 참고로 다시 진행해 보시면 좋으실 것 같습니다.
도움이 되시길 바랍니다.
0
아 제가 테스트를 잘못 한 것 같네요 ^^;; 다시 확인해보니 잘 됩니다. 확인해 주셔서 감사합니다~
아 하나만 더 여쭤 보면,,, TCP or UDP 말고 프로토콜로 ICMP를 허용 할 수 있는 방법은 있을까요? TCP를 Ingress로 열어놓으면 ICMP가 안되더라구요..ㅠㅠ
1
우선 교육 범위가 아니라 구현에 필요한 모든 사항에 답변드리기 어려운 점에 대해서 이해를 구합니다. 연속성이 있고 이미 질의된 질문에 이번에는 예외적으로 답변드리는게 좋을꺼 같아서 드리면...
아마 아시겠지만 networkpolicy에는 TCP UDP 외에는 다른 프로토콜은 아직 구현되어 있지 않습니다. 아마 앞으로도 여기 계속 feature가 추가되기 보다는 CRD로 따로 구현될 것으로 예상됩니다. 주로 CNI쪽에서 제공될꺼 같으며, 다음의 내용을 참고하시면 도움이 되실 것 같습니다.
https://docs.tigera.io/calico/latest/network-policy/policy-rules/icmp-ping
섹션2. 1.5쿠버네티스_컨트롤플레인_노드와_워커_노드_그리고 kubeadm으로 쿠버네티스 직접 구성하기-v1.30 오류
0
40
2
[해결] 2.4. tabby config.yaml 파일 복사 실패 시
1
93
0
9.3 Error 발생 유도 테스트 확인 부탁드립니다.
0
95
2
livenessProbe 어플리케이션 재시작 의미
0
67
2
K8S 노들에 접근이 안됩니다.
0
168
6
arm virtualBox의 vagrant up 에러
0
115
2
추후 강의계획 질문
0
149
1
MAC 에서 사용할 수 있는 ova 파일은 없나요?
0
220
2
7.8. w3-affinity-leader 적용 에러 문제 질문드립니다.
0
211
5
커리큘럼 순서 문의
0
206
2
apply 실행 후 pod상태가 ContainerCreating 에서 변경이 안됩니다.
0
371
2
livenessProbe에 대한 설명이 조금 부족한거 같네요
0
218
3
controlplane_node.sh 실행 오류 문의
0
242
2
예제폴더의 경로와 영상의 경로가 너무나도 다릅니다
0
219
2
9.6강의 소스 수정 요청 및 에러 문의
0
165
2
8.6 강의 중 sysnet4admin/chk-info 이미지 bash 이슈
0
161
3
드디어 맥에서도 virtualbox가 지원 됩니다.
0
282
2
8.3강의 set-ctx-pod-admin.sh 수정 요청
0
120
3
7.5 강의 tardy-nginx 이미지 문제
0
3312
3
ch1. controlplan_node.sh 실행 시 에러가 뜹니다
0
306
3
Kubenetes 클러스터에 추가적으로 신뢰하는 CA를 넣을 수 있나요?
0
183
1
clusterrolebinding의 --namespace 옵션의 역할
0
165
2
A.0003 파일 vagrant file 수정 (자문자답)
0
167
2
nfs-client-provisioner 관련 생성 오류 질문
0
191
1





