개발/TIL

kubernetes에서 yml 로 pod 관리하기

ebang 2025. 2. 26. 22:11

Kubernetes에서는 YAML 파일을 통해 클러스터 리소스를 선언적으로 정의한다.

 

다음 각 파일은 특정 목적과 역할을 가지고 있다. 

  • deployment.yml 
    • 애플리케이션의 배포를 정의하는 파일이다. 
    • 애플리케이션을 실행할 컨테이너 이미지, 포트, 환경 변수, 볼륨 등의 세부 사항을 명시한다. 
    • 복제본(Replica)을 지정하여 원하는 수의 포드를 항상 실행되도록 관리한다. 
    • 롤링 업데이트와 같은 배포 전략을 설정할 수 있다. 
  • hpa.yml 
    • Horizontal Pod Autoscaler(HPA)를 설정하는 파일이다. 
    • 클러스터의 리소스 사용률(예: CPU, 메모리 또는 사용자 정의 메트릭)을 모니터링하여 자동으로 포드 수를 조절한다. 
    • 부하에 따라 애플리케이션의 확장성과 효율성을 보장할 수 있다. 
  • ingress.yml
    • 외부 트래픽이 클러스터 내부 서비스로 라우팅되는 방식을 정의하는 파일이다. nginx 등을 정의할 수 있다.
    • URL 경로, 호스트 기반 라우팅 규칙, TLS 설정 등 외부 접근 정책을 설정한다. 
    • 리버스 프록시 역할을 하여, 여러 서비스에 대한 트래픽 분배를 효과적으로 처리하는 데 관여한다. 
  • secret-provider-class.yml
    • 외부 비밀 관리 솔루션과의 연동을 위한 설정 파일도 필요하다. 
    • 예를 들어, CSI(컨테이너 스토리지 인터페이스) 드라이버와 함께 사용되어 Azure Key Vault, AWS Secrets Manager 등 외부 비밀 저장소와 통신한다. 
    • 필요한 자격 증명과 접근 방식을 정의하여 애플리케이션이 비밀 정보를 안전하게 가져올 수 있도록 한다. 
  • service.yaml
    • 클러스터 내에서 포드를 외부 또는 내부 네트워크에 노출하기 위한 서비스를 정의하는 파일이다. 
    • 클러스터 IP, NodePort, LoadBalancer 등의 서비스 유형을 지정하여 네트워크 접근성을 제어한다. 
    • 특정 레이블을 가진 포드 집합에 대한 안정적인 접근 경로를 제공한다. 

이렇듯 pod 의 다양한 측면을 yaml 로 관리하면서, 손쉽게 클러스터를 관리할 수 있다. 

 

기회가 된다면 yml파일 리스트와 argocd, kubernetes가 어떻게 오케스트레이션되어서 CI/CD 와 더불어 pod 가 관리되는지 설명하도록 하겠다.