static pod

  • control-plane(master)의 api를 실행하지 않고 pod를 만든다
  • worker노드의 kubelet 의 특정 디렉터리에 yaml을 만들면 자동으로 pod가 생성되고, yaml이 사라지만 pod가 사라짐
  • 즉 kubelet 데몬을 통해 pod가 생성됨
  • 보통 /etc/kubernetes/manifests 여기 위치가 worker노드의 static pod 생성 파일 저장 위치
  • 마스터 노드의 static pod는 다음과 같다
  • controlplane $ pwd /etc/kubernetes/manifests controlplane $ ls etcd.yaml kube-controller-manager.yaml kube-apiserver.yaml kube-scheduler.yaml

pod 리소스

  • 보통 pod를 만들때 따로 리소스를 제한하지 않으면 모든 리소스를 다쓸 수 있다.

  • 또한 pod를 생성할때 클라이언트가 원하는 자원이상이 남는 노드에 만들 수 있다.

    • request는 scheduler가 결정, 즉 이것 이상으로 리소스가 있는 노드에 pod를 만든다
    • limit은 리소스가 초과되면 자동으로 restart 된다.
    • limit만 쓰면 동일한 값으로 requests가 복제가 되어 들어감
    • request만 쓰면 limit은 따로 안들어감
    • 만약 requests를 너무 크게 잡아서, 장비가 감당하지 못하면 pod가 생성되지 않고 pending이 된다,
  • 컨테이너별로 리소스 설정

  • yaml 예제

      resources:
        requests:
          memory: 1
          cpu: 1Gi
        limits:
          memory: 3
          cpu: 3Gi

pod 변수

  • pod 생성 yaml에서 컨테이너의 환경변수를 변경하고 설정할 수 있다.
  • 이미 컨테이너에 환경설정이 되어있어도 이를 덮어써서 변경할 수 있다.
  • ex
      env:
      - name: ${name}
        value: ${value}

pod의 세가지 패턴

  • sidecar : 한 pod에서는 로그를 만들고 다른 pod에서는 이를 분석, 즉 두개가 함께 동작
  • adapter : 외부에 모니터가 있고, 어뎁터 pod가 외부에 모니터링 정보를 받고, web pod가 모니터링 정보를 받아 시각화하여 외부에 제공
  • ambassador : 웹서버pod에 고객이 웹서버를 이용하면 이에 대한 정보를 ambassador pod가 lb 역할로 이를 받아 외부에 제공

'쿠버네티스' 카테고리의 다른 글

ReplicaSet  (0) 2022.04.04
Controller  (0) 2022.04.03
init container / infra container (pause conatiner)  (0) 2022.03.28
livenessProbe  (0) 2022.03.28
쿠버네티스 명령어 정리  (0) 2022.03.28

+ Recent posts