푸잉이의 기술블로그
[Day15] Certified Kubernetes Administrator (CKA) with Practice Tests 본문
[Day15] Certified Kubernetes Administrator (CKA) with Practice Tests
data고수 2023. 1. 21. 07:24174강. Network policies
Traffic
Traffic flow
web app & db server 에서
user는 port 80에서 web server에 요청
webserver가 api에 요청 보냄 at port 5000 in the backend
api server는 dbserver에서 데이터 가지고 옴 at port 3306
다시 user에게 데이터 전송
traffic 종류
1. Ingress: 사용자로부터 들어오는 traffic
2. Egress: 외부로 나가는 traffic
<network security>
각 node는 ip가지고 있음 -> 라우팅 없이 서로 통신 가능 (virtual private network) -all allow
제한하고 싶으면 networkpolicy 실행
->Allow ingress traffic from api pod on port 3306
networkpolicy와 pod 연결하는 방법: Selector 사용
apiversion: networking.k8s.io/vi
kind:networkpolicy
metadata:
name: db-policy
spec:
podselector:
metchlabels:
role: db
policytypes:
- ingress
solution that support network policies:
-kube-router, calico, romana, weave-net
solution that not support network policieS:
-Flannel
175강. Developing network policies
ingress traffic에 대한 response의 경우, 자동으로 허용 (egress와 별개)
network policy로 api pod와 db pod 만 연결
: policyTypes:
- Ingress
ingress:
- from:
-podSelector:
matchLabels:
name: api-pod
ports:
-protocol: TCP
port: 3306
<제한>
namespace: namespaceselector
ip 제한: ipBlock
cidr:
port 제한: podSelector
kubectx란?
다중 클러스터 사용 시 클러스터 context 전환을 쉽게 해주는 툴
Syntax:
To list all contexts:
kubectx
To switch to a new context:
kubectx <context_name>
To switch back to previous context:
kubectx -
To see current context:
kubectx -c
kubens란?
쿠버네티스 클러스터 내에서 네임스페이스 변환을 쉽게 해주는 툴
To switch to a new namespace:
kubens <new_namespace>
To switch back to previous namespace:
kubens -
Section 8: Storage
181. Storage in Docker
Docker storage: storage divers, vollume drivers
File system
/var/lib/docker에 저장
<Layered architecutre>
: 각 레이어에 특정 관심사와 관련된 개체만을 포함하게 만들어 관심사가 분리된 코드 구성을 목표로 함
<Volumnes>
docker volume create data_volume
-v :volume name
docker run -v data_voume:/var/lib/mysql mysql
docker run -v data_voume2:/var/lib/mysql mysql
docker run -v /data/mysql:/var/lib/mysql mysql
-> volume mounting
종류: volume mounting, bind mounting:
-v보단 mount로 사용
ex) docker run \
--mount type=bind, source = /data/mysql, traget=/var/lib/mysql mysql
182강. volume driver plugins in docker
storage drivers
:저장소에 있는 이미지와 컨테이너들을 매니징하는 것에 도움을 줌
183강. Container storage interface
<container runtime interface>
클러스터 컴포넌트를 다시 컴파일 하지 않아도 kubelet이 다양한 컨테이너 런타임을 사용할 수 있도록 하는 플러그인 인터페이스
클러스터의 모든 node에 동작 중인 컨테이너 런타임이 존재해야, kubelet이 pod들과 컨테이너들을 구동할 수 있
CSI: kubeternetes의 specific standard가 아님-> universal standard
185강. Volumes
Docker
짧은 기간 동안만 지속
데이터 처리가 필요할 때, 호출되고 완료되면 폐기
컨테이너에서 처리되는 데이터를 유지하기 위해 컨테이너가 생성될 때 볼륨 연결 (permanent)
<volumes & mounts>

출처)