iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
Cloud Native

帶著MBP在異世界探險的科技宅系列 第 20

Day 20 透過 Kubernetes 了解 Namespace 與 CGroups

  • 分享至 

  • xImage
  •  

Namespace 與 CGroups 都是容器技術中的兩個重要概念,Namespace 負責系統資源的隔離,確保不同容器之間的獨立性,而 CGroups 則是負責系統資源的管理和控制,確保容器或行程資源使用的合理性。為了讓我們能夠更加了解,我們今天就來利用 Kubernetes 來簡單使用這兩種技術吧。

Namespace:

首先,我們先創建兩個不同名字的Namespaces,分別是 test-namespacedev-namespace

# 創建namespace
kubectl create namespace test-namespace
kubectl create namespace dev-namespace

# 查看所有namespaces
kubectl get namespaces 

可以得到結果如下:

接下來在 test-namespace 下,創建一個新的 pod 運行:

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
  namespace: test-namespace
spec:
  containers:
  - name: test-container
    image: nginx

再通過指令,查詢在 test-namespace 內所有的 pods :

# 查看指定namespace下的所有pods
kubectl get pods -n test-namespace

結果如下:

從圖中我們能夠看到,我們成功在 test-namespace 內查詢到名為 test-pod 的 pod,與其狀態等資訊,而在 dev-namespace 內則顯示 No resources found in dev-namespace namespace.

由以上的操作說明我們能夠得知,到目前已經可以成功利用隔離 test-pod,這個 pod 只能在 test-namespace 內進行操作。接下來,我們繼續進行 CGroups 的操作。

CGroups:

我們要在 Kubernetes 中設置 CGroups 的資源限制,就需要在 Pod 的配置中添加相關的資源限制,如下:

apiVersion: v1
kind: Pod
metadata:
  name: dev-pod
  namespace: dev-namespace
spec:
  containers:
  - name: dev-container
    image: nginx
    resources:
      limits:
        cpu: "0.5"
        memory: "512Mi"
      requests:
        cpu: "0.25"
        memory: "256Mi"

我們在 dev-namespace 內創建了一個名為 dev-pod 的 pod,接著我們使用 resources 來設置 CPU 和記憶體的限制,limits 表示限制的上限,requests 則表示對資源的最低要求。從此 yaml 檔中,我們限制 CPU 的使用上限為 0.5 個核心且記憶體的使用上限為 512 MiB,並同時要求 CPU 最低為 0.25 個核心且記憶體為 256 MiB。

我們可以利用 kubectl describe pod dev-pod -n dev-namespace 來顯示 dev-pod 的詳細信息,包括了資源限制。

當然,在 test-namespace 內是查不到 dev-pod 的信息。

結語:

今天,我們進行了 Kubernetes 中 Namespace 與 CGroups 的一些實際操作。而透過以上的舉例,我們成功創建了兩個不同的 Namespaces(test-namespace 與 dev-namespace),並在這兩個 Namespaces 中分別運行了不同的 pods,實現了資源的隔離。同時,我們也設置了 CGroups 的資源限制,通過在 Pod 配置中添加相關的資源限制,確保容器的 CPU 和記憶體使用的合理性。

希望這些簡單的舉例,能夠讓大家更能夠理解 Namespace 與 CGroups 這兩個虛擬化技術。

我們明天見~


上一篇
Day 19 CGroups 介紹
下一篇
SPRING BOOT介紹
系列文
帶著MBP在異世界探險的科技宅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言