ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Udemy] Service
    kubernetes/udemy 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

Designed by Tistory.