如果你玩過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,使用的工具是Tabby ,Tabby 不愧是款神器,PowerShell支援也非常不錯!
安裝
接下來我們將在Win10上安裝Rancher Desktop,看看它是不是比Minikube更好用。
- 首先下載Rancher Desktop的安裝包,下載地址:https://github.com/rancher-sa...
- 下載成功後雙擊安裝,會讓你選擇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環境也是可以它來管理的,下面我們就來體驗下。
- 首先在K8S環境中安裝Dashboard,使用如下命令即可,安裝指令碼地址:https://raw.githubusercontent...
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}}"
- 使用
kubectl proxy
命令啟用Dashboard的外部訪問,訪問地址:http://localhost:8001/api/v1/...
- 接下來就可以愉快地使用Dashboard管理K8S環境了,例如檢視所有的Deployment;
- 檢視所有執行中的Pod;
- 檢視所有生效的Service。
總結
在Windows下安裝K8S環境一直是件很麻煩的事情,直到使用了Rancher Desktop之後,才發現居然可以如此簡單!今天體驗了一把,使用起來和Minikube並沒啥區別,想在Windows上體驗一下K8S的小夥伴可以嘗試下它!
如果你想更加深入學習K8S的話,可以參考下我之前寫的K8S系列教程 。
如果你想在K8S下實踐整套微服務專案的話,推薦這個標星8.2K+
的實戰電商專案(帶全套教程):https://github.com/macrozheng...
參考資料
- Rancher Desktop官方文件:https://docs.rancherdesktop.io/
- K8S官方文件:https://kubernetes.io/zh/docs...
- WSL使用文件:https://docs.microsoft.com/zh...