iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
0
DevOps

從開源雲到邊緣運算系列 第 20

[Day 20]K3s 部署 - Deployment 與 ReplicaSet 功能校驗

  • 分享至 

  • xImage
  •  

上篇介紹了 PodService 的功能串接,不知各位是否踩坑了(Wwwwww),上篇提到了在Service後端會有一個ReplicaSetPod協助服務不中斷,雖然kubernetes設計上ReplicaSet這個項目基本上已經移轉給Deployment元件去處理,但是Pod Replication Controller 還有在運作,為了驗證一下兩者功能(瞎折騰),我們這篇來介紹一下Deployment 元件 與 驗證一下k3sReplicaSet運作機制,並測試一下 增加副本數量縮減副本數量的功能。

Deployment

元件簡介

kubernetes 中,Deployment元件算是抽象化較為上層的元件,算是 Production 服務的一個模式,提供 ReplicaSet 的服務多重副本機制、Rolling Update 服務滾動更新、Roll Back 服務滾動回復舊版 等機制,透過這幾個機制的輔助,可在更新時進行服務檢測,對於服務更新與恢復舊版進行調整時,對於 Pod 進行版本循序式置換,並將服務接口導向 Service 提供給外部服務使用,提供一個可靠的不停機服務,藉以達成高可靠的服務品質。

服務設計

  • Deployment 服務描述檔案
apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana-deployment
  labels:
    app: grafana
spec:
  replicas: 1
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071Y74ZncvuSx.png

服務派送

  • 操作指令
k3s kubectl create -f ${deployment-file}
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071s8x4Qv1Mpu.png

服務狀態取得

Deployment 狀態

  • 操作指令
k3s kubectl get deploy -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071cbDJjTgZhR.png

Pod 狀態

  • 操作指令
k3s kubectl get pod -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071TnmtPXGQXW.png

ReplicaSet

ReplicaSet 方案

服務設計

  • ReplicaSet 服務描述檔案
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: mysql-replicaset
spec:
  replicas: 10
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:latest
        env:
         - name: MYSQL_ROOT_PASSWORD
           value: password  
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071rhGiKybUqK.png

服務派送

  • 操作指令
k3s kubectl create -f ${replicaset-file}

https://ithelp.ithome.com.tw/upload/images/20191006/20121071oxtDCrf7Oh.png

服務狀態取得

Pod 狀態

  • 操作指令
k3s kubectl get pod -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071VBv8F6mMv9.png

ReplicaSet 狀態

  • 操作指令
k3s kubectl get rs -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071PKYCWcW9Cy.png

Deployment 方案

服務設計

  • Deployment 服務描述檔案
apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana-deployment
  labels:
    app: grafana
spec:
  replicas: 10
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071e5rC34Yard.png

服務派送

  • 操作指令
kubectl create -f ${deployment-file}
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071LFD8dMdccj.png

服務狀態取得

Pod 服務狀態

  • 操作指令
k3s kubectl get pod -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/201210718wWyD05g0F.png

ReplicaSet 生成狀態

  • 操作指令
k3s kubectl get rs -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071JDLxtD3WS0.png

ReplicaSet 數量調整

Replica Pod 增加

針對派送的檔案進行條整

  • 操作指令
k3s kubectl scale --replicas=${replica-count} -f ${file-name}

針對派送的deployment項目名稱進行條整

  • 操作指令
k3s kubectl scale --replicas=${replica-count} deploy ${deployment-name} 
  • 檢視 ReplicaSet 狀態指令
k3s kubectl get rs -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/20121071zSyJBCjaxC.png

Replica Pod 減少

針對派送的檔案進行條整

  • 操作指令
k3s kubectl scale --replicas=${replica-count} -f ${file-name}

針對派送的deployment項目名稱進行條整

  • 操作指令
k3s kubectl scale --replicas=${replica-count} deploy ${deployment-name} 
  • 檢視 ReplicaSet 狀態指令
k3s kubectl get rs -o wide
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191006/201210712sNGgh54XC.png

本篇測試以 ReplicaSet 為基礎,透過 Pod ReplicaSet(Pod 副本機制)機制在 ReplicaSetDeployment兩個元件上的操作狀態,透過一連串的測試,可看到 ReplicaSetk3s是可以實現的,而對於 ReplicaSet 的數量調整,本篇也對於增減 Pod數量ReplicaSet功能進行驗證,下篇將延續Deployment元件的相關功能,即將前往 Rolling UpdateRoll Back的功能進行測試。


上一篇
[Day 19]K3s 部署 - Pod 與 Service 功能校驗
下一篇
[Day 21]K3s Rolling Update 與 RollBack 功能校驗
系列文
從開源雲到邊緣運算30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言