-
k8s Object 기본 간략 정리Computer Science/k8s 2023. 2. 12. 20:19
pod - container 들을 모아서 실행하는 곳.
언제든 종료될 수 있으며 재실행 될 때 마다 ip가 변동된다.
label을 달 수 있다. (key value)
한 pod에서 같은 port의 container 실행 불가.
memory 가 초과 된다면 종료 되지만 Cpu는 초과되도 해당 Limit로 낮추려고 한다.
service - 종료되지 않고 고정 ip로써 떠 있어서 pod들을 연결해준다.
ClusterIp 방식 - 내부 ip로만 접근할 수 있으며 관리하는 pod들에게 연결해준다.
NodePort 방식 - 해당 NodePort로 들어와도 Service로 간다음 Service에서 관리하는 pod들로 연결해준다. 따라서 a node에 접근해도 a node의 들어가고자 하는 pod로 연결되지 않을 수 있다. 해당 node의 pod로 접근하고 싶다면 externalTrafficPolicy:Local을 설정해주어야한다.
Load Balancer 방식 - 외부 ip로 접근하며 pod들을 연결해준다. External IP 지원 Plugin이 필요한데 GCP, AWS, Azure, OpenStack에서는 자동으로 지원해준다.
volume - Container 끼리 공유하는 공간.
emptyDir 방식 - Pod 내부에 생성. Pod 생성시 만들어지고 삭제시 사라진다.
hostPath 방식 - Node에서 생성. Pod 끼리 공유 가능. Node가 다른곳에 Pod가 생성될시 공유가 안된다. 사전에 생성되어 있어야함.
PVC/PV 방식 - Admin 에서 PV 를 만들어놓으면 해당 PV를 PVC를 이용하여 연결한다. 이 PVC를 pod에서 연결해서 사용한다.
ConfigMap, Secret- 단순 환경관련 세팅 및 암호들을 사용하는 공간.
ConfigMap - key value 로 값을 가지고 있음.
Secret - base64로 암호화 해서 key value 값을 가지고 있음. 메모리에 저장되어 있어서 조금더 안전함.
Literal 로 집어 넣을때
secret의 경우 decording 되어서 넣어짐.
File 로 집어 넣을때
환경 변수로서 값이 넣어지기 때문에 나중에 file의 config 값이 변경되더라도 변동된 값이 적용되지 않음.
Volume Mount로 집어 넣을때
원본이 변하게되면 mount된 내용도 변하게됨.
Namespace - object들의 논리적 결합 장소.
- 같은 종류의 Object는 이름이 중복될 수 없다.
- Namespace 를 삭제시 안의 자원들도 같이 삭제된다.
- Namespace 가 다르면 연결하려는 pod의 label등이 같아도 연결되지 않는다.( 별도로 label을 가지고 있다고 생각하면 된다 )
ResourceQuota - Namespace 의 자원 설정
- Namespace의 최대 메모리, 필요 메모리 등을 설정할 수 있다.
- 설정 시 pod들은 메모리 설정값이 없다면 만들어지지 않는다.
LimitRange - Namespace에 들어오는 object의 자원 설정
- Namespace에 들어오려는 object들의 memory값의 최대 최소, 그 비율등을 제한할 수 있다.
- Namespace에 들어오려는 object들의 기본 memory 값의 최대 최소를 결정해 줄 수 있다.
'Computer Science > k8s' 카테고리의 다른 글
k8s service (0) 2023.03.04 k8s deployment (0) 2023.03.04 aws eks worker node 생성 (0) 2023.03.04 aws eks kubectl 연동 과정. (0) 2023.03.02 k8s Controller 기본 정리 (0) 2023.02.12