這篇文章是基於Linux虛擬機器安裝的,所需要的資源環境還是相對複雜。而我們在日常學習Kubernetes的過程中,其實是更希望在開發電腦上直接部署一個簡單的Kubernetes環境,這樣學習起來會更加方便。今天的內容就給大家介紹下如何在Mac開發電腦上安裝一個基於MiniKube的Kubernetes學習環境!
Minikube是社群為了方便大家開發和體驗Kubernetes,而提供的一個執行在本地的Kubernetes單節點環境。Minikube在不同的作業系統上需要不同的驅動支援,在MacOS中需要"xhyve driver "作為預設驅動。具體安裝步驟如下:
1)、安裝kubectl
在Mac上安裝kubectl可以直接使用brew命令安裝,具體如下:
$ brew install kubectl
2)、安裝MiniKube
為了解決海外資源訪問受限問題,這裡我們使用阿里雲提供的映象地址。具體命令如下:
$ minikube start --cpus=4 --memory='6000mb' --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
命令引數說明如下:
--cpus=4:表示為minikube分配的CPU核數;--memory='6000mb':表示為minikube虛擬機器分配的記憶體數;--image-mirror-country='cn':將預設利用"registry.cn-hangzhou.aliyuncs.com/google_containers"作為安裝Kubernetes的容器映象倉庫;--image-repository="xx":表示所使用的映象倉庫地址,這裡為阿里雲地址;
安裝命令執行效果如下:
Darwin 10.14.6 上的 minikube v1.14.2✨ Automatically selected the hyperkit driver 正在下載驅動 docker-machine-driver-hyperkit: > docker-machine-driver-hyperkit.sha256: 65 B / 65 B [---] 100.00% ? p/s 0s > docker-machine-driver-hyperkit: 11.44 MiB / 11.44 MiB 100.00% 3.82 KiB p The 'hyperkit' driver requires elevated permissions. The following commands will be executed: $ sudo chown root:wheel /Users/qiaojiang/.minikube/bin/docker-machine-driver-hyperkit $ sudo chmod u+s /Users/qiaojiang/.minikube/bin/docker-machine-driver-hyperkit Password: #輸入Mac電腦密碼✅ 正在使用映象儲存庫 registry.cn-hangzhou.aliyuncs.com/google_containers 正在下載 VM boot image... > minikube-v1.14.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s > minikube-v1.14.0.iso: 178.27 MiB / 178.27 MiB 100.00% 1.62 MiB p/s 1m51s Starting control plane node minikube in cluster minikube Creating hyperkit VM (CPUs=4, Memory=6000MB, Disk=20000MB) ... 正在 Docker 19.03.12 中準備 Kubernetes v1.19.2… > kubectl.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s > kubelet.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s > kubeadm.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s > kubeadm: 37.30 MiB / 37.30 MiB [-----------] 100.00% 548.93 KiB p/s 1m10s > kubectl: 41.01 MiB / 41.01 MiB [-----------] 100.00% 497.14 KiB p/s 1m25s > kubelet: 104.88 MiB / 104.88 MiB [---------] 100.00% 477.49 KiB p/s 3m45s Verifying Kubernetes components... Enabled addons: storage-provisioner, default-storageclass Done! kubectl is now configured to use "minikube" by default
如上安裝詳情所示,如果你的電腦中未安裝相關驅動,則會自動進行下載!經過上述簡單的命令執行步驟,到這裡我們就將minikube安裝好了,是不是很簡單?
3)、驗證MiniKube狀態相關資訊
接下來我們看下minikube的執行狀態,命令及效果如下:
$ minikube statusminikubetype: Control Planehost: Runningkubelet: Runningapiserver: Runningkubeconfig: Configured
如上所示,可以看到此時Kubernetes的幾個核心元件已經正常執行起來了!接下來我們還可以具體看看kubectl的版本,命令如下:
$ kubectl version --clientClient Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
可以看到在未指定具體的安裝版本時,會預設安裝最新版本!這裡kubectl的版本為v1.20.0。
接下來我們繼續看看kubectl所指向的Kubernetes叢集環境,命令如下:
$ kubectl config current-contextminikube
可以看到此時kubectl客戶端指向的Kubernetes叢集環境就是我們本地所安裝的minikube環境!
此時我們還可以具體看看透過minikube所安裝的Kubernetes叢集服務的版本資訊,命令如下:
$ kubectl versionClient Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:32:58Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
如上所示,這裡顯示我們所安裝的Kubernetes Server版本為v1.19.2!
繼續檢視Kubernetes的叢集資訊,命令如下:
$ kubectl cluster-infoKubernetes control plane is running at https://192.168.64.2:8443KubeDNS is running at https://192.168.64.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
檢視kubernetes的節點資訊,命令如下:
$ kubectl get nodeNAME STATUS ROLES AGE VERSIONminikube Ready master 2d3h v1.19.2
可以看到minikube所安裝的是一個只有master節點的單節點叢集!
接下來我們開啟kubernetes dashbord,從圖形化介面上看看Kubernetes的執行狀態!命令如下:
$ minikube dashboard 正在驗證 dashboard 執行情況 ... Launching proxy ... 正在驗證 proxy 執行狀況 ... Opening http://127.0.0.1:50299/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
執行完該命令後,minikube會自動在瀏覽器開啟kubernetes dashbord,效果如下:
可以看到我們在Mac上透過minikube所安裝的Kubernetes叢集的確已經正常執行,可以滿足我們學習Kubernetes的基本要求了!
最後看看minikube所支援的擴充套件功能,命令如下:
$ minikube addons list|-----------------------------|----------|--------------|| ADDON NAME | PROFILE | STATUS ||-----------------------------|----------|--------------|| ambassador | minikube | disabled || csi-hostpath-driver | minikube | disabled || dashboard | minikube | enabled ✅ || default-storageclass | minikube | enabled ✅ || efk | minikube | disabled || freshpod | minikube | disabled || gcp-auth | minikube | disabled || gvisor | minikube | disabled || helm-tiller | minikube | disabled || ingress | minikube | disabled || ingress-dns | minikube | disabled || istio | minikube | disabled || istio-provisioner | minikube | disabled || kubevirt | minikube | disabled || logviewer | minikube | disabled || metallb | minikube | disabled || metrics-server | minikube | disabled || nvidia-driver-installer | minikube | disabled || nvidia-gpu-device-plugin | minikube | disabled || olm | minikube | disabled || pod-security-policy | minikube | disabled || registry | minikube | disabled || registry-aliases | minikube | disabled || registry-creds | minikube | disabled || storage-provisioner | minikube | enabled ✅ || storage-provisioner-gluster | minikube | disabled || volumesnapshots | minikube | disabled ||-----------------------------|----------|--------------|
上述列表就是minikube所支援的擴充套件功能了,可以在學習時根據實際情況啟用,例如我們剛才啟用了dashbord,就可以看到列表中的狀態變成“enable”了。