kubectl run nginx --image=nginx:1.14.2 --dry-run=client # 명령어 검토
kubectl run nginx --image=nginx:1.14.2 --dry-run=client -o yaml # 명령에 대해 yaml로 보기
kubectl run nginx --image=nginx:1.14.2 --dry-run=client -o yaml > nginx-pod.yaml # yaml을 파일로 저장하기
Pod 실습
Info
icon
false
Pod 생성
Code Block
sansae@sansaeAir15m2 ~ % k apply -f nginx-pod.yaml
pod/nginx created
Pod 확인
Code Block
sansae@sansaeAir15m2 ~ % k get pod
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 86m
Pod 상세 정보 확인
Code Block
linenumbers
true
sansae@sansaeAir15m2 ~ % k describe pod nginx
Name: nginx
Namespace: default
Priority: 0
Service Account: default
Node: aks-agentpool-33019784-vmss000000/10.224.0.4
Start Time: Fri, 08 Mar 2024 14:38:30 +0900
Labels: app=myapp, type=front-end
Annotations: cni.projectcalico.org/containerID: caca6fff7130ca9b8ddc20811d6a24b2f5c4ef9acd135521e955343bb4d0c39b
cni.projectcalico.org/podIP: 10.244.0.19/32
cni.projectcalico.org/podIPs: 10.244.0.19/32
Status: Running
IP: 10.244.0.19
IPs:
IP: 10.244.0.19
Containers:
nginx:
Container ID: containerd://999b11a1c2f614dff1cd1e7a00ca9960dc09ff148faaabace98ffa038b1582f0
Image: nginx:1.14.2
Image ID: docker.io/library/nginx@sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Port: <none>
Host Port: <none>
State: Running
Started: Fri, 08 Mar 2024 14:38:36 +0900
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-cpjv5 (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-cpjv5:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events: <none>
sansae@sansaeAir15m2 ~ %
Pod 삭제
Code Block
sansae@sansaeAir15m2 ~ % k delete -f nginx-pod.yaml
pod "nginx" deleted
---
sansae@sansaeAir15m2 ~ % k delete pod nginx
pod "nginx" deleted
Pod Lifecycle
Info
title
https://kimjingo.tistory.com/137
Image Removed
Pending: Pod 생성 요청을 받았지만 하나 이상의 container가 실행준비를 마치지 못한 상태이다. 컨테이너 이미지를 다운로드하는 시간도 이 phase에 포함된다.
Running: Node가 배정되었고, 모든 컨테이너가 생성된 상태이다. 최소한 하나 이상의 컨테이너가 실행 중이거나 시작 또는 재시작 중이다.
Succeeded: Pod의 모든 컨테이너가 성공적으로 종료되었으며, 재시작할 필요가 없다.
Failed: 모든 컨테이너가 종료되었으나, 하나 이상의 컨테이너가 0이 아닌 값을 반환하였거나 시스템에 의해 강제로 종료되어 실패로 끝난 경우이다.
Unknown: k8s가 Pod의 상태 정보를 읽어오지 못하는 상태이며, 일반적으로 kubelet과 API 서버간의 통신에 문제가 있는 경우가 많다.
참고로 node가 다운되거나 네트워크 연결이 원활하지 않은 경우, 해당 node의 모든 Pod은 Failed phase로 전이(transition)된다.