본문 바로가기
Compute/kubernetis

[따배씨] 3. Static pod 생성 / CKA 시험 문제 학습

by 조청유곽 2025. 1. 30.
반응형

이 포스팅은 아래의 유튜브 채널 "따배"를 따라서 학습한 내용입니다.  

 

 

[관련 이론]

 

Static Pod 생성 과정

Static Pod는 kube-apiserver 없이 직접 kubelet이 관리하는 Pod.
일반적인 Pod은 kube-apiserver → etcd → kube-scheduler 등의 과정을 거치지만, Static Pod은 kubelet이 직접 생성 및 관리한다.
Static Pod의 kubelet 구성 파일은 /etc/kubernetes/manifests/*.yaml에 배치된다.


 

 

[Precondition]

(1) 테스트 환경

(1.1) Rocky Linux Cluster 

: 직접 구성

[root@k8s-master ~]# k get nodes -o wide
NAME         STATUS   ROLES           AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                            KERNEL-VERSION                  CONTAINER-RUNTIME
k8s-master   Ready    control-plane   30d   v1.27.2   192.168.56.30   <none>        Rocky Linux 8.10 (Green Obsidian)   4.18.0-553.33.1.el8_10.x86_64   containerd://1.6.32
k8s-node1    Ready    <none>          30d   v1.27.2   192.168.56.31   <none>        Rocky Linux 8.8 (Green Obsidian)    4.18.0-477.10.1.el8_8.x86_64    containerd://1.6.21
k8s-node2    Ready    <none>          30d   v1.27.2   192.168.56.32   <none>        Rocky Linux 8.8 (Green Obsidian)    4.18.0-477.10.1.el8_8.x86_64    containerd://1.6.21
[root@k8s-master ~]#

 

(1.2) Ubuntu Cluster 

: kodekloud 테스트 환경 활용

controlplane ~ ➜  kubectl get nodes -o wide
NAME           STATUS   ROLES           AGE     VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
controlplane   Ready    control-plane   9m6s    v1.31.0   192.6.94.6    <none>        Ubuntu 22.04.4 LTS   5.4.0-1106-gcp   containerd://1.6.26
node01         Ready    <none>          8m31s   v1.31.0   192.6.94.9    <none>        Ubuntu 22.04.4 LTS   5.4.0-1106-gcp   containerd://1.6.26

https://learn.kodekloud.com/user/courses/udemy-labs-certified-kubernetes-administrator-with-practice-tests

 

(2) 사전 필요 설정 

: N/A

 

 


 

 

[Question]

Configure kubelet hosting to start a pod on the node

Node: hk8s-w1
pod Name: web
image: nginx

 

 

[Solve]

(1) Static pod 생성 

: yaml 파일 생성과 동시에 static-web이 생성된다. 

controlplane ~ ➜  cat /etc/kubernetes/manifests/static-web.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

 

 

(2) 생성된 pod 확인 

controlplane ~ ➜  k get pods
NAME               READY   STATUS    RESTARTS   AGE
test-pod           1/1     Running   0          22m
web-controlplane   1/1     Running   0          104s

controlplane ~ ➜  

controlplane ~ ➜  systemctl restart kubelet

controlplane ~ ➜  k get pods
NAME               READY   STATUS    RESTARTS   AGE
test-pod           1/1     Running   0          23m
web-controlplane   1/1     Running   0          2m8s

 


 

 

[사용 커맨드 정리]

ssh hk8s-w1

k get pods 

vi /etc/kubernetes/manifests/static-web.yaml 

apiVersion: v1
kind: Pod
metadata:
  name: web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

k get pods

systemctl restart kubelet 

 

 

반응형