728x90
반응형

메인 컴포넌트

#nodes #pods #노드 #파드 #쿠버네티스 #kubernetes #k8ss

노드와 파드

  • 노드
    • 노드는 컨테이너가 배포되고 구동되는 Worker Machine이다.
    • 각 노드는 클러스터 내에서 개별 노드를 의미하고, 물리/가상 머신이다.
    • 노드는 실제 workload를 구동시키고 필요 자원을 제공하는 역할이다.
  • 파드
    • 최소 배포 가능한 단위
    • 하나 혹은 강하게 결합된 컨테이너를 의미함
    • 파드 내의 컨테이너들은 같은 네트워크 네임스페이스를 공유한다
      • 이는 localhost 상에서 서로 소통할 수 있게 함
    • 파드는 클러스터에서 하나의 프로세스 인스턴스를 의미함
apiVersion: v1  
kind: Pod  
metadata:  
    name: webapp-with-db       // 파드 이름
    labels:  
        app: my-webapp  
spec:  
    containers:  
    - name: webapp            // 컨테이너 명
      image: nginx:latest     // 컨테이너 이미지 명
      ports:  
        - containerPort: 80   // 컨테이너 포트
    - name: database  
      image: mongo:latest
  • 왜 컨테이너가 아니라 파드를 사용하는가
    • Grouping Containers
      • 컨테이너들을 논리적으로 그룹화 한다.
      • 스케줄링, 스케일링, 관리를 간단화시킨다.
    • Shared Resources
      • 파드 내의 컨테이너들은 동일한 네트워크 네임스페이스를 공유함
      • 파드 내의 컨테이너들은 동일한 볼륨을 공유할 수 있다.
      • 따라서 서로 소통하기 더욱 쉬워진다
    • Amotic Unit
      • 파드는 배포의 원자 단위이다.
      • 어플리케이션 관리 혹은 스케일링 시, 파드 레벨로 수행한다 (컨테이너 개별 적용말고)
    • Scheduling and Affinity
      • 쿠버네티스는 파드를 노드에 스케줄하지, 각각 컨테이너를 스케줄하지 않는다.
      • 따라서 서로 연간되어있는 파드 내의 컨테이너들은 동일한 노드에 위치하게 된다
728x90
반응형

+ Recent posts