[CKA][k8s] static pod 생성하기

Han·2023년 12월 14일

Udemy_CKA

목록 보기
6/6

💡static pod란?

  • kube-apiserver를 통하지 않고 kubelet이 직접 실행하는 파드
  • 지정한 디렉터리에 static pod로 실행하려는 파드들을 넣어두면 kubelet이 감지해서 파드로 실행
  • kubelet이 직접 관리하면서 이상이 생기면 직접 재시작
  • kube-apiserver / etcd같은 시스템 파드 실행하는 용도
  • staticPodPath: /etc/kubernetes/manifests
  • /etc/kubernetes/manifests/ 디렉토리에 k8s yaml 파일을 저장 시 적용됨
  • 디렉토리 수정 시 kubelet 데몬 재실행
systemctl restart kubelet
$ cat /var/lib/kubelet/config.yaml

apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
  anonymous:
    enabled: false
  webhook:
    cacheTTL: 0s
    enabled: true
  x509:
    clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
  mode: Webhook
  webhook:
    cacheAuthorizedTTL: 0s
    cacheUnauthorizedTTL: 0s
cgroupDriver: systemd
clusterDNS:
- 10.96.0.10
clusterDomain: cluster.local
containerRuntimeEndpoint: ""
cpuManagerReconcilePeriod: 0s
evictionPressureTransitionPeriod: 0s
fileCheckFrequency: 0s
healthzBindAddress: 127.0.0.1
healthzPort: 10248
httpCheckFrequency: 0s
imageMinimumGCAge: 0s
kind: KubeletConfiguration
logging:
  flushFrequency: 0
  options:
    json:
      infoBufferSize: "0"
  verbosity: 0
memorySwap: {}
nodeStatusReportFrequency: 0s
nodeStatusUpdateFrequency: 0s
resolvConf: /run/systemd/resolve/resolv.conf
rotateCertificates: true
runtimeRequestTimeout: 0s
shutdownGracePeriod: 0s
shutdownGracePeriodCriticalPods: 0s
staticPodPath: /etc/kubernetes/manifests #static파드가 여기에 생성된다
streamingConnectionIdleTimeout: 0s
syncFrequency: 0s
volumeStatsAggPeriod: 0s

노드로 이동해서 static pod 만들기

root@node1:~# cd /etc/kubernetes/manifests

root@node1:/etc/kubernetes/manifests# cat > nginx.yaml
apiVersion: v1
kind: Pod
metadata:
   name: nginx-pod
spec:
   containers:
   - name: nginx-container
     image: nginx:1.14
     ports:
     - containerPort: 80
       protocol: TCP

static pod와 daemonSet의 차이점

static poddaemonSet
kubelet에 의해 생성kube-API server에 의해 생성(DaemonSet Coltroller)
컨트롤플레인에 생성모니터링, 로깅 에이전트로 디플로이

*공통점: kube-scheduler에 영향X

0개의 댓글