kubernetes/udemy

[Udemy] Service

bbiyak2da 2025. 2. 12. 14:41

Service

 

쿠버네티스에서는 다양한 Service를 제공

  • NodePort: 각 노드의 특정 포트를 통해 외부에서 접근할 수 있도록 합니다.
  • LoadBalancer: 클라우드 제공업체의 로드 밸런서를 사용하여 외부에서 접근할 수 있도록 합니다. 
  • Ingress : 클러스터 외부에서 내부 서비스로의 HTTP 및 HTTPS 트래픽을 관리하는 API 객체입니다. 이를 통해 URL 경로 기반 라우팅, SSL 종료, 호스트 기반 라우팅 등을 설정할 수 있습니다.
  • ClusterIP : 클러스터 내부에서만 접근 가능한 기본 서비스 유형입니다. 
  • ExternalName : 외부 서비스에 대한 DNS 이름을 제공합니다. ex) AWS RDS Database

 

 

즉, 일반적으로 AKS에서는 클러스터 외부에서 Pod 내 애플리케이션에 접근하기 위해 Load Balancer를 사용한다.

이러한 LoadBalancer는 AKS 생성 시 기본 인프라로 생성된다.

 

# Pod 생성

# Create  a Pod
kubectl run <desired-pod-name> --image <Container-Image> 
kubectl run my-first-pod --image stacksimplify/kubenginx:1.0.0

 

# 생성된 Pod를 service(type : LoadBalancer)를 통해 외부에 노출

# Expose Pod as a Service
kubectl expose pod <Pod-Name>  --type=LoadBalancer --port=80 --name=<Service-Name>
kubectl expose pod my-first-pod  --type=LoadBalancer --port=80 --name=my-first-service

 

my-first-pod라는 pod를,

my-first-service라는 로드밸런서 타입의 Service를 통해

port 80번으로 외부에 노출시킨다.

 

 

# Service 확인

# Get Service Info
kubectl get service
kubectl get svc
---
NAME               TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
kubernetes         ClusterIP      10.0.0.1      <none>          443/TCP        83m
my-first-service   LoadBalancer   10.0.58.115   20.249.195.85   80:30633/TCP   9s

 

my-first-service라는 LoadBalnacer 타입의 service가 생성되었다.

 

# 해당 Service의 External IP로 접근

 

해당 Service의 외부 IP로 접근 시, my-first-pod의 애플리케이션으로 접근되는 것을 확인 가능

 

 

Portal에서도 자동으로 새 프런트 엔드 IP도 생성되었고

부하 분산 규칙이 생성된 것을 확인 가능하다.

 

expose 명령 하나만으로도 이렇게 가능하다는 점이 aks의 장점이당


[참고 영상]

Udemy - Azure Kubernetes Service with Azure DevOps and Terraform

섹션 4 : Kubernetes Fundamentals with kubectl - Imperative Approach

23. Step-06: Load Balancer Service Introduction

24. Step-07: Create Pod and LoadBalancer Service and Test

 

 

[참고 문서]

https://github.com/stacksimplify/azure-aks-kubernetes-masterclass/tree/master/03-Kubernetes-Fundamentals-with-kubectl/03-01-PODs-with-kubectl