NameSpace
When you grow and use a kubernetes cluster for enterprise or production purpose you want to consider the use of namespace as you can create your own namespaces as well.
Service
쿠버네티스 외부 또는 내부에서 Pod에 접근할 때 사용하는 기능이다.
service를 사용하는 이유는 Pod는 서버와 같이 영구적인 것이 아니라 일회적인 것이기 때문이다. 서버는 문제가 생기면 서버를 재 시작하고 서비스를 재 시작 하지만 Pod는 문제가 생기면 문제가 생긴 Pod를 삭제한 뒤 새로운 Pod를 생성한다. 그렇기 때문에 Pod의 IP는 고정적이지 않고 가변적이다.
사용자가 Pod에 접근을 할 때 가변적인 IP를 가진 Pod에 접근하기 위해 Pod의 IP가 바뀔 때 마다 IP를 수정하는 것은 비효율적이며 매우 귀찮고 번거로운 일이 될 것이다. 그렇기 때문에 Service를 사용하면 사용자는 End Point로 Service를 지정하면 Service는 해당 Label Selector와 일치하는 Label을 가진 Pod로 접근을 가능하게 한다.
※ 웹서버 POD는 수많은 PODS가 80포트를 쓸텐데 어떻게 구분하는가? selector의 Lable을 통해 가능하다.
selector의 Lable로 접근가능한 구조는 LOADBALANCE를 가능케한다.
서비스는 원하는 IP로 생성이 가능하며, 고유한 DNS 이름을 가질 수 있다. Service는 Label Selector를 통해 관리하려는 Pod를 정의할 수 있다.
Service에는 4가지 기능이 있다.
1) Load Balancer
Load Balancer는 부하분산 장치이다.
쿠버네티스 외부에서 접근이 가능한 외부 부하 분산 기능과 내부 사용자만 접근 가능한 내부 부하 분산 기능이 있다.
2) Cluster IP
디폴트 설정으로 클러스터 내에서 해당 서비스에 접속하기 위한 타입이다.
클러스터 내부의 Pod에서는 접근이 가능하지만 같은 대역대라고 하더라도 클러스터 외부에서는 접근이 불가능하다.
클러스터 IP는 존재하지만 EXTERNAL-IP가 존재하지 않기 때문에 클러스터 외부에서 접근이 불가능하다.
3) Node Port
클라이언트 IP 뿐만 아니라 클러스터를 구성하는 각 노드의 Port로 접속도 가능하다.
클라이언트 IP는 내부에서만 접근이 가능하고 외부에서 접근이 불가능 하나 Node Port를 사용하면 외부 사용자들이 Node IP : Node Port를 사용하여 접근이 가능하다.
4) External Name
External Name은 클러스터 내부에서 클러스터 외부의 특정 주소로 접근할 때 사용하는 방법입니다.
'PaaS > Kubernetes' 카테고리의 다른 글
(Kubernetes) Taints and Toleration (0) | 2021.03.17 |
---|---|
(Kubernetes) Scheduler (0) | 2021.03.16 |
(Kubernetes) Replica 와 Deployment (0) | 2021.03.14 |
(Kubernetes) kubectl 커맨드 모음 -1 (0) | 2021.03.13 |
(Kubernetes) Kubernetes Architecture 2 (0) | 2021.03.13 |