一鍵部署 K8S 環境,10分鐘玩轉,這款開源神器實在太香了!

macrozheng發表於2022-03-08
如果你玩過K8S的話,應該知道有個叫Minikube的東西,可以在本機搭建一個單節點的K8S環境。最近發現一個圖形化工具Rancher Desktop,比Minikube更好用,基本可以實現一鍵搭建K8S環境,在Win10上用起來非常方便,推薦給大家!

SpringBoot實戰電商專案mall(50k+star)地址:https://github.com/macrozheng/mall

Rancher Desktop簡介

Rancher Desktop 是一款開源的K8S管理工具,目前在Github上已有2.9K+Star。它是桌面版的K8S和容器管理工具,支援在Windows, macOS and Linux上使用。如果你在Windows上想搭建K8S環境,使用Minikube的話,就得先搭建虛擬機器、然後安裝Linux、再安裝Minikube才行。而使用Rancher Desktop的話你只需安裝它即可,它將自動安裝K8S環境,確實很方便!

下面是一張Rancher Desktop的使用介面圖,支援一鍵切換K8S版本,非常不錯!

WSL

得益於WSL(適用於 Linux 的 Windows 子系統),我們可以更方便地在Windows下安裝Linux子系統,且不會產生傳統虛擬機器或雙啟動設定開銷。Rancher Desktop Windows版正是基於WSL來安裝K8S環境的,下面幾個常用的WSL命令大家可以瞭解下。

# 使用wsl安裝Linux的發行版(預設Ubuntu)
wsl --install
# 列出已經安裝的Linux發行版
wsl --list --verbose
# 通過線上商店獲得的 Linux 發行版列表
wsl --list --online
# 關閉Linux子系統
wsl --shutdown

PowerShell

PowerShell是一種跨平臺的任務自動化解決方案,由命令列shell、指令碼語言和配置管理框架組成。PowerShell能在Windows、Linux和macOS上執行。

K8S環境安裝完成後,我們將使用PowerShell來操作K8S,使用的工具是TabbyTabby 不愧是款神器,PowerShell支援也非常不錯!

安裝

接下來我們將在Win10上安裝Rancher Desktop,看看它是不是比Minikube更好用。

  • 下載成功後雙擊安裝,會讓你選擇K8S版本和容器執行時;

  • 之後Rancher Desktop會自行安裝K8S環境和WSL,無需手動下載,如遇到下載不了的情況,可以切換K8S版本試試,這裡使用的是v1.21.9版本;

  • 接下來在PowerShell中就可以使用kubectl命令了,比如檢視下叢集資訊,至此K8S環境安裝完畢,賊簡單吧!

使用

接下來我們將在K8S上部署一個Nginx應用,來體驗下使用Rancher Desktop安裝的K8S環境是否和Minikube的一樣!
  • 首先建立一個用於部署Nginx應用的Deployment;
kubectl create deployment kubernetes-nginx --image=nginx:1.10
  • 然後檢視下應用是否已經部署就緒;
kubectl get deployments

  • 部署成功後我們建立一個服務用於暴露Nginx應用,以便外部訪問;
kubectl expose deployment/kubernetes-nginx --type="NodePort" --port 80
  • 檢視一下服務可以獲取外部訪問埠;
kubectl get services

  • 接下來直接通過瀏覽器就可以訪問到Nginx服務了。

視覺化管理

之前使用Minikube的時候可以用 Dashboard來視覺化管理K8S,使用Rancher Desktop安裝的K8S環境也是可以它來管理的,下面我們就來體驗下。
kubectl apply -f recommended.yaml
  • 由於訪問Dashboard需要使用登入Token,我們得先建立使用者並生成token;

  • 建立dashboard-adminuser.yaml配置檔案,配置admin-user賬戶並賦予叢集管理員角色;
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
  • 使用如下命令建立admin-user使用者;
kubectl apply -f dashboard-adminuser.yaml
  • 再使用如下命令生成登入Token,複製好以備登入Dashboard時使用;
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

  • 接下來就可以愉快地使用Dashboard管理K8S環境了,例如檢視所有的Deployment;

  • 檢視所有執行中的Pod;

  • 檢視所有生效的Service。

總結

在Windows下安裝K8S環境一直是件很麻煩的事情,直到使用了Rancher Desktop之後,才發現居然可以如此簡單!今天體驗了一把,使用起來和Minikube並沒啥區別,想在Windows上體驗一下K8S的小夥伴可以嘗試下它!

如果你想更加深入學習K8S的話,可以參考下我之前寫的K8S系列教程

如果你想在K8S下實踐整套微服務專案的話,推薦這個標星8.2K+的實戰電商專案(帶全套教程):https://github.com/macrozheng...

參考資料

相關文章