iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0

昨天跟各位介紹完一些關於 Pod 的觀念後,相信大家應該都已經大致了解,那今天要來為各位示範如何建立一個屬於自己的 Pod。

廢話不多說,我們馬上開始吧!

首先我們建立 Pod 前,需要先寫一份屬於他的 YAML 檔,關於 YAML 檔的一些觀念我有寫在 Day15 裡面,有興趣的讀者可以去看一下。那 Pod 的 YAML 檔要怎麼寫呢?下面是一個簡單的範例:

# pod_test.yaml

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu-pod
  labels: 
    app: test
spec:
  containers:
  - name: ubuntu
    image: ubuntu:20.04
    args: [bash, -c, 'for ((i = 0; ; i++)); do echo "$i: $(date)"; sleep 100; done']
  • apiVersion: 可以依照你目前 Pod 的版本做控制。
  • kind: 定義 Resource 的種類。
  • metadata: 定義關於 Pod 的資訊,包括 Pod 的名字 及它的標籤。

labels 主要是辨別要對應到哪個 service,在之後實作service時會再介紹。

  • spec: 定義規格,這邊我們選擇的 image 為 linux ubuntu 20.04版本。而寫 args 的原因是因為要讓這個 Pod 持續的在運作,才不會導致 Pod 本身自己 Shut down。

那當各位建立完這個YAML檔後,可以打以下指令

kubectl apply -f pod_test.yaml

之後應該會出現以下:

pod/ubuntu-pod created

這時候你可以輸入以下指令並觀察 Pod 的 STATUS 是否為Running 且 READY 狀態為 1/1:

kubectl get pod ubuntu-pod

NAME         READY   STATUS    RESTARTS   AGE
ubuntu-pod   1/1     Running   0          4h33m

如果到這步都是正常的話,那代表你成功了!
如果你想要看更多關於這個 Pod 的資訊,可以在原本的指令後面加上 -o wide。

kubectl get pod ubuntu-pod -o wide

NAME         READY   STATUS    RESTARTS   AGE     IP            NODE         NOMINATED NODE   READINESS GATES
ubuntu-pod   1/1     Running   0          4h36m   10.244.0.11   ubuntu-pve   <none>           <none>

這邊可以多觀察到關於 Pod 本身的 IP、部署在哪一個 Node上...等資訊。

今天 Pod 的實作就先大概到這邊告一段落,明天開始我會跟各位介紹關於 Kubernetes Service。

那我們明天再見,掰掰!


上一篇
Day19 Kubernetes 的基本單位 -- Pod
下一篇
Day21 Kubernetes 的溝通橋樑 – Service
系列文
被容器束縛住的小宇宙30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言