iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0

本篇大綱

需要在 K8s 組合出服務還真的不容易,但如果今天我想要同個服務只是改個名稱,還要再去複製嗎?今天來介紹非常好用的工具 Helm。

內文

前面簡單介紹 Kubernetes 的設定檔,還有如何基本使用、除錯、查詢 Log 紀錄。

這篇我們要來邁向更高階的設定檔,讓我們隆重介紹 Helm

https://ithelp.ithome.com.tw/upload/images/20220929/20112934uHU1ijDbWM.png

Helm

Helm 可以管理 K8s 應用程式。

Helm Charts 訂製、安裝、升級更複雜的 K8s 應用程式。

Charts 可以簡單得建立、版本控管、分享以及發布,開始使用 Helm 並且停止複製貼上。

這是他的官網介紹,看起來很抽象,但我們可以一步一步按照官網上的步驟來實作

安裝步驟:https://helm.sh/docs/intro/install/

# Linux 
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# Mac
brew install helm

https://ithelp.ithome.com.tw/upload/images/20220929/201129340WuomTrzOt.png

其實只要一行就能完成安裝 Helm 了!

那我們就來照他的 Quickstart 來跑一遍:https://helm.sh/docs/intro/quickstart/

helm repo add bitnami https://charts.bitnami.com/bitnami # 加入 Repo

Repo 相當於 apt 裡面的倉庫,加入倉庫了以後就可以使用 update:

helm repo update

https://ithelp.ithome.com.tw/upload/images/20220929/20112934lnIWrccewH.png

Update 之後我們就可以來試試搜尋套件:

helm search repo bitnami

https://ithelp.ithome.com.tw/upload/images/20220929/201129341C2TNdRCe7.png

就會把所有 bitmani 的套件列出來,這裡你可以注意到,他有分 Chart Version 跟 App Version,下一篇會來介紹差異。

那先來嘗試他們的安裝 App

# 自動產生名字
helm install bitnami/mysql --generate-name
# 想要自己指定名字
helm install mysql-test bitnami/mysql
# 指定安裝的 namespace
helm install mysql-test bitnami/mysql -n database

https://ithelp.ithome.com.tw/upload/images/20220929/20112934JMESQ0sglL.png

沒有跳出錯誤訊息代表安裝成功,就可以看到安裝的 Application,他們會稱作為 Release:

helm ls

https://ithelp.ithome.com.tw/upload/images/20220929/20112934l17c5Y2Tl2.png

這時候你可以用 kubectl 看看裡面裝了什麼:

kubectl get all

https://ithelp.ithome.com.tw/upload/images/20220929/20112934iC99mxO9rg.png

我們可以大概知道裡面裝了 StatefulSet 跟 Service,StatefulSet 的 Pod 卡在 Pending 狀態,這時候學習看一下裡面的原因。

上一篇的 Cheatsheet 看到 Pod 狀態在 Pending 就要用 describe 檢查:

kubectl describe pod mysql-test-0

https://ithelp.ithome.com.tw/upload/images/20220929/20112934xeyBk2a4LT.png

這裡就可以看到原因,因為 PVC 沒有綁定,所以 K8s 無法分配 Pod 下去。

那我就把 Release 移除掉,就下 uninstall:

# helm uninstall <RELEASE_NAME>
helm uninstall mysql-test

https://ithelp.ithome.com.tw/upload/images/20220929/20112934yqonbTf8f2.png

透過 Helm 我們可以找到寫好的 K8s 設定檔,直接部署在 K8s Cluster 裡面,就不需要再複製貼上還有改名設定檔。

Helm Chart 裡面有哪些內容呢?下一篇會介紹它的基本架構。

本系列內容也會同步貼到我的 Blog https://blog.yangjerry.tw 歡迎來我的 Blog 點一下 RSS 追蹤,那我們就下一篇文章見啦!

Source


上一篇
Day 13 Kubernetes - Cheatsheet 篇
下一篇
Day 15 Helm Chart 基礎架構
系列文
關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言