星期一, 6月 26, 2023

Helm 研讀小記

Helm 研讀小記

OS: openSUSE Leap 15.4

Helm:  3.11.2


參考官方文件


安裝 helm 的部分, 可以參考之前的文章, 我是用 zypper 進行安裝


搜尋 chart


> helm  search  hub  grafana


> helm  search  repo  grafana

  • 從已經安裝的 repo 來進行搜尋


列出已經安裝到本機的 repo

> helm  repo  list


列出已經安裝的 release

> helm  list


安裝 repo

> helm  repo  add  grafana  https://grafana.github.io/helm-charts


更新 helm repo

> helm  repo  update



取得 Chart 基本資訊

> helm  show  chart  grafana/grafana


顯示所有資訊

> helm  show  all   grafana/grafana


> helm  show  values  grafana/grafana


>  helm  show  values  grafana/grafana |  egrep  -v  '#|^$'



> helm  install  my-release  grafana/grafana


NAME: my-release

LAST DEPLOYED: Mon Jun 26 22:00:49 2023

NAMESPACE: default

STATUS: deployed

REVISION: 1

NOTES:

1. Get your 'admin' user password by running:


   kubectl get secret --namespace default my-release-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo



2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:


   my-release-grafana.default.svc.cluster.local


   Get the Grafana URL to visit by running these commands in the same shell:

     export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=my-release" -o jsonpath="{.items[0].metadata.name}")

     kubectl --namespace default port-forward $POD_NAME 3000


3. Login with the password from step 1 and the username: admin

#################################################################################

######   WARNING: Persistence is disabled!!! You will lose your data when   #####

######            the Grafana pod is terminated.                            #####

#################################################################################


之後如果這個訊息忘記了, 可以用以下的指令查詢

> helm  status  my-release


> kubectl  port-forward  my-release-grafana-74c6c68658-xzhbv  3000


  • my-release-grafana-74c6c68658-xzhbv 為 pod 名稱


開啟瀏覽器, 輸入 localhost:3000 


使用 admin 登入, 密碼如步驟 1 取得

  • 這個在之前的文章內也有提到了



觀察目前安裝

> helm  list 


NAME      NAMESPACE REVISION UPDATED                                STATUS  CHART         APP VERSION

my-release default  1       2023-06-26 22:00:49.478280863 +0800 CST deployed grafana-6.57.3 9.5.3      


刪除剛剛安裝的 release

> helm  delete  my-release


release "my-release" uninstalled


因為我們用的是雲端的 Kubernetes 服務, 這次跟上次文章不同之處, 就是我們這次使用 Helm 安裝 Grafana 服務的時候, Service type 要使用 LoadBalancer


先來觀察預設的 value


> helm  show  values  grafana/grafana


# 只擷取 service 的部份

## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).

## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.

## ref: http://kubernetes.io/docs/user-guide/services/

##

service:

  enabled: true

  type: ClusterIP

  port: 80

  targetPort: 3000

    # targetPort: 4181 To be used with a proxy extraContainer

  ## Service annotations. Can be templated.

  annotations: {}

  labels: {}

  portName: service

  # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp"

  appProtocol: ""


將以上這段存成 test-values.yaml 然後進行一些修改

檔案內容如下


> cat  test-values.yaml 


#

service:

  enabled: true

  type: LoadBalancer

  port: 80

  targetPort: 3000

    # targetPort: 4181 To be used with a proxy extraContainer

  ## Service annotations. Can be templated.

  annotations: {}

  labels: {}

  portName: service

  # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp"

  appProtocol: ""


### Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).

## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.

## ref: http://kubernetes.io/docs/user-guide/services/

##


#service:

#  enabled: true

#  type: ClusterIP

#  port: 80

#  targetPort: 3000

#    # targetPort: 4181 To be used with a proxy extraContainer

#  ## Service annotations. Can be templated.

#  annotations: {}

#  labels: {}

#  portName: service

#  # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp"

#  appProtocol: ""


  • 這邊就是將原來的 value 部份, type 改為 LoadBalancer



再次進行安裝


> helm  install  my-release  grafana/grafana  -f  test-values.yaml


  • 這次加上我們剛剛修改的 test-values.yaml


安裝完畢之後, 可以觀察 services


> kubectl  get  services


NAME                 TYPE           CLUSTER-IP   EXTERNAL-IP    PORT(S)        AGE

kubernetes           ClusterIP      10.0.0.1     <none>         443/TCP        9d

my-release-grafana   LoadBalancer   10.0.8.152   20.237.74.66   80:30561/TCP   32m


然後可以直接連線 外部 IP, 就可以存取到 Grafana


另外可以藉由 get  values 來進行觀察

> helm  get  values  my-release


USER-SUPPLIED VALUES:

service:

  annotations: {}

  appProtocol: ""

  enabled: true

  labels: {}

  port: 80

  portName: service

  targetPort: 3000

  type: LoadBalancer


實驗完畢, 刪除 release


> helm  delete  my-release


release "my-release" uninstalled


這樣可以藉由 values.yaml 將自己想要進行的改變, 進行更動

又向 helm 與 kubernetes 更進一步


~ enjoy it


References




星期二, 6月 13, 2023

Windows WSL openSUSE Leap 15.4 轉移小記

Windows WSL openSUSE Leap 15.4 轉移小記


WSL: openSUSE Leap 15.4


在公司 Windows 筆電也使用一年多, 接下來也遇到了 WSL 內的 OS 已經 EOL 了

這篇小記就是紀錄將 openSUSE Leap 15.3 的環境轉移到 openSUSE Leap 15.4


首先參考之前的文章 http://sakananote2.blogspot.com/2022/01/windows.html


安裝 openSUSE Leap 15.4


  • 會要求建立使用者

  • 安裝後小記

    • zypper  update 更新套件

    • zypper  install bind-utils 安裝常用 DNS 解析套件

    • zypper  install git


複製原來 openSUSE Leap 15.3 的檔案到 openSUSE Leap 15.4


這邊參考網路上的文章


使用檔案總管 + \\wsl$ 

來進行相關檔案複製


  • 可能要注意複製後權限以及擁有人的問題, 我先這樣複製過來



更改 Windows Terminal 設定, 預設使用 openSUSE Leap 15.4 開啟


開啟 Windows Terminal – > 點選 設定

將預設設定檔改為 openSUSE-Leap-15.3

點選 儲存



將相關檔案對應到 WSL


在 openSUSE Leap 15.4 家目錄內

>  ln  -s  /mnt/c/Users/user/Dropbox/  Dropbox


> ln   -s  /mnt/c/Users/user/.aws/  .aws


> ln   -s  /mnt/c/Users/user/.azure  .azure



調整 vscode 連線的 WSL


開啟 WSL

執行 code 呼叫 vscode


點擊左下角



點選 Connect to WSL using Distro…


點選 openSUSE Leap 15.4

設定 openSUSE Leap 15.4 使用 docker


因為 openSUSE Leap 15.4 是新的 WSL, 所以他不會是預設的 WSL

可以用 wsl  --list 在 Windows 命令提示字元觀察



所以在 Docker Desktop 的設定內

除了整合  WSL 外

記得到 Resources -- > WSL Integration 內 啟用 openSUSE Leap 15.4

點選 Apply & Restart



將使用者加入 docker 群組

# usermod  -aG  docker  sakana

  • sakana 是我 WSL 內的使用者


安裝 gcloud 於 WSL


相對於 aws cli 與 azure az 指令我 google cloud SDK 是有獨立安裝在 WSL 內的

下載 Google Cloud SDK, 目前是 433.0.1


> curl  -O  https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-433.0.1-linux-x86_64.tar.gz


> tar  zxvf  google-cloud-cli-433.0.1-linux-x86_64.tar.gz


安裝 Google Cloud SDK

> ./google-cloud-sdk/install.sh


安裝 GKE 相關

> gcloud  components  install  gke-gcloud-auth-plugin


> gcloud  components  install  kubectl


初始化 gcloud

> gcloud  init


  • 會登入 Google 然後選擇預設的 Project / Region


嘗試在 openSUSE Leap 15.4 啟動 docker image

  • 用 openSUSE Leap 15.3 內的 docker run 掛載同樣的 volume 來測試


如果沒有問題, 就應該可以開工了


~ enjoy it




Reference