Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Pod Manifest (Desired State)

Info
iconfalse
Info
iconfalse

https://dev-k8sref-io.web.app/docs/workloads/pod-v1/

Info
iconfalse
  • apiVersion: v1 #쿠버네티스 API버전을 가리킴

  • kind: Pod #리소스 유형

  • metadata (ObjectMeta): 포드와 관련된 이름, 네임스페이스, 라벨, 그밖의 정보

  • spec (PodSpec): #컨테이너, 볼륨등의 정보

    • containers
    • volumes
  • status(PodStatus) : #포드의 상태, 각 컨테이너의 설명 및 상태, 포드 내부의 IP 및 그밖의 기본 정보 등 (k8s가 정의함)


Code Block
titlekube-apiserver 호출 URL 구문
linenumberstrue
curl -X POST http://<kube-apiserver-ip>:<port>/api/v1/namespaces/default/pods \
-H "Content-Type: application/json" \
-d '{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "name": "nginx",
    "labels": {
      "app": "myapp",
      "type": "front-end"
    }
  },
  "spec": {
    "containers": [
      {
        "name": "nginx",
        "image": "nginx:1.14.2",
        "ports": [
          {
            "containerPort": 80
          }
        ]
      }
    ]
  }
}'


Code Block
languageyml
themeMidnight
titlenginx-pod.yaml
linenumberstrue
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  lables:
	app: myapp
    type: front-end
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
Info
titlehttps://hub.docker.com/layers/library/nginx/1.14.2/images/sha256-295c7be079025306c4f1d65997fcf7adb411c88f139ad1d34b537164aa060369?context=explore

Pod Command

Code Block
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
iconfalse

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
linenumberstrue
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


...