ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [산대특] K8s 의 Pod, Labels, Deployment, Service
    [산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Cloud 2024. 11. 12. 17:35

    1112

     

    Pod == 유사 VLAN == K8s 의 기본 단위 == 컨테이너를 실행하는 최소 단위

    Pod 내의 Container 들은 Name space를 서로 공유하기 때문에 내부 주소로 연결 가능.

    => 외부에서 연결하고자 하면 ClusterIP 로 고정 IP를 주는 Service 를 이용해야 한다. 

    Pod 는 Service 와 연결 => Pod 의 IP는 유동적이여서

    Pod 는 프로세스여서 일시적인 존재 => 이전 변경 은 남지 않는다. 

    Name space 가 같지 않으면 서로 다른 네트워크

     

    Pod 상태 [ kubectl get pods -o wide ]

    ContainerCreating 이미지를 다운 중이거나 컨테이너 생성 중 
    OR 컨피그 맵과 시크릿이 마운트 되지 않았을 수 있는 상태
    CrashLoopBackOff 파드 내의 컨테이너가 시작과 비정상 종료를 반복하는 상태, 
    오류가 가장 많이 보인다.
    Pending 파드 생성 요구를 받았지만 
    하나 이상의 컨테이너가 생성되지 않은 대기 상태
    Running 파드의 모든 컨테이너가 생성되어 실행 중인 상태
    Terminating 컨테이너 종료 시그널을 보낸 뒤 
    컨테이너가 종료할 때까지 대기 중인 상태로 종료 중인 상태
    Succeeded 파드 내의 모든 컨테이너가 정상적으로 종료한 상태
    Completed 파드 내의 컨테이너에서 첫 번째 컨테이너가 정상적으로 종료한 상태 
    Error 컨테이너가 이상 종료된 경우. 
    첫 번째 컨테이너가 이상 종료되면 표시됨
    Failed 파드 내에 적어도 하나의 컨테이너가 이상 종료한 상태
    Unknown 파드의 상태를 알 수 없는 상태

     

    kubectl delete pod 삭제하려는pod이름 => 기본 유예 30초

    kubectl delete pod 삭제하려는pod이름 --grace-period=60 => 60초

    kubectl get pods 하면 유예상태가 Terminating 으로 보인다. 

     

     

    Labels

    부가적인 리소스 정보 표현, 오브제를 묶어 오브제끼리 이을 때 사용. like puzzle

    여기서 labels 저렇게 사용

     

     

    Deployment

    Deployment 가 RS(ReplicaSet) 배포

    RS가 Pod 를 배포

    그래서 Deployment 는 RS 를 배포하고 관리하는 기능

     

    Deployment -> RS -> Pod

    Deployment 를 생성하면 RS 생성할 필요 X

     

    Deployment 를 사용하는 이유 

    Apps 의 Rollback or 무중단 업데이트, 배포가 RS 보다 더 편리

     

     

    Service

    내부 Pod를 외부에 노출 및 연결해주는 기능.

    외부서 Pod 로 연결하고 싶다면, Service로 고정 IP 주소 연결, Service yaml 에서 매칭되는 Label 로 연결 하면 된다. 

     

    Service 타입

    ClusterIP 내부에서 파드에 접근할 때 사용. 외부로 파드를 노출 X
    NodePort 파드에 접근할 수 있는 포트를 모든 노드에게 동일하게 개방. 
    외부에서 파드에 접근 O
    LoadBalancer 로드밸런서를 동적으로 구성해서 파드에 연결. 
    AWS, GCP 등에서만 사용 가능
연의 취업 도전기.