首頁>技術>

這篇文章是基於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”了。

23
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 分庫分表:TIDB,你是來搶生意的?不講碼德?