푸잉이의 기술블로그

[Day15] Certified Kubernetes Administrator (CKA) with Practice Tests 본문

IT/Kubernetes

[Day15] Certified Kubernetes Administrator (CKA) with Practice Tests

data고수 2023. 1. 21. 07:24

174강. 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>

출처)

https://nayoungs.tistory.com/entry/Kubernetes-kubectx-kubens-%EC%84%A4%EC%B9%98-%EB%B0%8F-powerlevel10-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95

Comments