Static Pod

zuckerfrei·2023년 7월 11일
0

Kubernetes

목록 보기
25/63

개념

참조

스태틱 파드 는 API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해 직접 관리된다. 컨트롤 플레인에 의해 관리되는 파드(예를 들어 디플로이먼트(Deployment))와는 달리, kubelet 이 각각의 스태틱 파드를 감시한다. (만약 실패할 경우 다시 구동한다.)

스태틱 파드는 항상 특정 노드에 있는 하나의 Kubelet에 매여 있다.

Kubelet 은 각각의 스태틱 파드에 대하여 쿠버네티스 API 서버에서 미러 파드(mirror pod)를 생성하려고 자동으로 시도한다. 즉, 노드에서 구동되는 파드는 API 서버에 의해서 볼 수 있지만, API 서버에서 제어될 수는 없다. 파드 이름에는 노드 호스트 이름 앞에 하이픈을 붙여 접미사로 추가된다.

생성

static pod yml을 모아놓는 경로에 yaml 파일 생성하면 자동으로 static pod가 생성된다.

당연히 static pod yml파일이 존재하는 위치는 노드마다 각각 존재하니까 주의할 것


제거

일반 파드처럼 kubectl delete pod 명령을 수행해도 삭제되지 않음

static pod yaml 파일을 삭제해야 static pod가 삭제된다.



알아야 하는 것

  • kubelet 설정 파일

    • /var/lib/kubelet/config.yaml
  • static pod yaml 파일 경로 -> kubelet 설정 파일에서 확인 가능

    /var/lib/kubelet/config.yaml

    ...
    staticPodPath: /etc/kubernetes/manifests
    ...
  • static pod 확인 방법
    1. pod 이름 끝에 노드 이름이 붙는 파드

      controlplane /etc/kubernetes/manifests ➜  kubectl get pods -A
      NAMESPACE      NAME                                   READY   STATUS             RESTARTS       AGE
      kube-flannel   kube-flannel-ds-fp5p6                  1/1     Running            0              35m
      kube-flannel   kube-flannel-ds-nzhtm                  1/1     Running            0              35m
      kube-system    coredns-5d78c9869d-9zkdv               1/1     Running            0              35m
      kube-system    coredns-5d78c9869d-z2ht2               1/1     Running            0              35m
      kube-system    etcd-controlplane                      1/1     Running            0              35m
      kube-system    kube-apiserver-controlplane            1/1     Running            0              35m
      kube-system    kube-controller-manager-controlplane   1/1     Running            0              35m
      kube-system    kube-proxy-85lfd                       1/1     Running            0              35m
      kube-system    kube-proxy-mstqb                       1/1     Running            0              35m
      kube-system    kube-scheduler-controlplane            1/1     Running            0              35m
      
      # static pod
      etcd-controlplane 
      kube-apiserver-controlplane
      kube-controller-manager-controlplane
      kube-scheduler-controlplane
    2. ownerReferences 찾아보기

      yaml파일에서 찾아볼 수 있음

      controlplane /etc/kubernetes/manifests ➜  kubectl get pod static-greenbox-node01 -o yaml
      apiVersion: v1
      kind: Pod
      metadata:
        annotations:
          kubernetes.io/config.hash: d15d7612777f8a5f2681a387999469fd
          kubernetes.io/config.mirror: d15d7612777f8a5f2681a387999469fd
          kubernetes.io/config.seen: "2023-07-11T09:24:07.192388320-04:00"
          kubernetes.io/config.source: file
        creationTimestamp: "2023-07-11T13:24:07Z"
        labels:
          run: static-greenbox
        name: static-greenbox-node01
        namespace: default
        ownerReferences:
        - apiVersion: v1
          controller: true
          kind: Node
          name: node01
          uid: 8f7e084d-356a-4952-a7dc-cf191bd7888e
profile
무설탕 음료를 좋아합니다

0개의 댓글