쿠버네티스 Service 란?
Kubernetes에서의 Service는 클러스터 내에서 실행 중인 파드(Pod)에 접근하기 위한 네트워크 추상화를 제공하는 리소스입니다.
Service는 Pod의 동적인 IP 주소나 이름을 추상화하고, 일관된 방법으로 서비스에 접근할 수 있는 로드 밸런싱 기능을 제공합니다. 이로써 파드가 생성, 삭제, 업데이트될 때도 애플리케이션의 가용성과 안정성을 유지할 수 있습니다.
* 네트워크 추상화란 : 네트워크 추상화(Network Abstraction)는 복잡한 네트워크 상황을 단순화하고 관리하기 쉽게 만들기 위해 사용되는 개념입니다. 이를 통해 사용자나 개발자는 네트워크 세부 사항을 신경 쓰지 않고도 원하는 기능을 구현하고 사용할 수 있습니다.
1. Service 정보 출력
$ kubectl get service
$ kubectl get svc
# 모두 동일한 결과를 출력
해당 명령은 Kubernetes 클러스터 내에 정의된 모든 서비스(Service)의 목록을 조회하는 명령입니다.
이 명령을 사용하여 클러스터 내의 서비스 상태와 정보를 확인할 수 있습니다.
- NAME: 서비스의 이름입니다.
- TYPE: 서비스의 유형을 나타냅니다. ClusterIP, NodePort, LoadBalancer 등이 가능합니다.
- CLUSTER-IP: 서비스의 Cluster IP 주소입니다. 내부 클러스터에서 사용되며, 클러스터 내에서의 서비스에 접근할 때 사용됩니다.
- EXTERNAL-IP: 서비스가 외부로 노출될 때의 외부 IP 주소나 로드 밸런서의 IP 주소가 표시됩니다. 없는 경우 <none>으로 표시됩니다.
- PORT(S): 서비스가 사용하는 포트와 프로토콜 정보입니다.
- AGE: 서비스가 생성된 후 경과한 시간을 나타냅니다.
2. Endpoints 란?
Kubernetes에서 Endpoints는 서비스(Service)와 관련된 Pod의 IP 주소와 포트 정보를 나타내는 리소스입니다.
Endpoint는 서비스의 목적지인 파드들의 네트워크 위치 정보를 캡슐화하고, 이를 서비스가 사용할 수 있도록 제공합니다. 서비스와 함께 사용하여 클라이언트나 다른 파드가 서비스로 트래픽을 전달할 때 어떤 파드에 트래픽을 전달해야 하는지를 결정합니다.
3. Service의 유형
- ClusterIP
ClusterIP는 Kubernetes에서 제공하는 서비스 유형 중 하나로, 클러스터 내부에서만 사용되는 가상 IP 주소를 할당하여 서비스에 접근할 수 있게 해주는 유형입니다. 외부에서는 직접 접근할 수 없으며, 내부 클러스터의 pod들이 서로 통신할 때 사용됩니다.
- NodePort
Kubernetes에서 제공하는 서비스 유형 중 하나로, 클러스터 내부의 모든 노드(Node)에 서비스를 노출시키는 방법입니다. 이를 통해 외부 클라이언트나 노드 외부에서 해당 서비스에 접근할 수 있게 됩니다.
NodePort 서비스는 노드의 IP 주소와 지정된 포트를 통해 서비스에 접근할 수 있도록 해줍니다.
- LoadBalancer
LoadBalancer는 Kubernetes에서 제공하는 서비스 유형 중 하나로, 클라우드 제공업체의 로드 밸런서를 활용하여 서비스를 외부로 노출시키는 방법입니다. 이를 통해 외부 클라이언트나 사용자가 해당 서비스에 접근할 수 있게 됩니다. LoadBalancer 서비스는 로드 밸런서의 IP 주소나 도메인을 사용하여 트래픽을 분산시키며, 주로 프로덕션 환경에서 사용됩니다.
- ExternalName
ExternalName은 Kubernetes에서 제공하는 서비스 유형 중 하나로, 클러스터 내에서 외부 도메인을 참조하기 위해 사용되는 방식입니다. 이를 통해 내부 pod나 서비스가 클러스터 외부의 호스트를 사용하거나 참조할 수 있습니다. ExternalName 서비스는 DNS에 등록된 외부 도메인의 CNAME 레코드를 제공하여 클러스터 내에서 해당 도메인을 사용할 수 있게 합니다.
감사합니다.
반응형
'Program Language > K8S' 카테고리의 다른 글
CKA 자격증 - Certified Kubernetes Administrator 6편 [Labels & Selectors] (0) | 2023.08.16 |
---|---|
CKA 자격증 - Certified Kubernetes Administrator 5편 [Namespace] (0) | 2023.08.15 |
CKA 자격증 - Certified Kubernetes Administrator 3편 [Deployment] (0) | 2023.08.10 |
CKA 자격증 - Certified Kubernetes Administrator 2편 [ReplicaSets] (0) | 2023.08.09 |
CKA 자격증 - Certified Kubernetes Administrator 1편 [Pods] (0) | 2023.08.09 |