這篇文章是基於Linux虛擬機安裝的,所須要的資源環境仍是相對複雜。而咱們在平常學習Kubernetes的過程當中,實際上是更但願在開發電腦上直接部署一個簡單的Kubernetes環境,這樣學習起來會更加方便。今天的內容就給你們介紹下如何在Mac開發電腦上安裝一個基於MiniKube的Kubernetes學習環境!node
Minikube是社區爲了方便你們開發和體驗Kubernetes,而提供的一個運行在本地的Kubernetes單節點環境。Minikube在不一樣的操做系統上須要不一樣的驅動支持,在MacOS中須要"xhyve driver "做爲缺省驅動。具體安裝步驟以下:linux
1)、安裝kubectldocker
在Mac上安裝kubectl能夠直接使用brew命令安裝,具體以下:api
$ brew install kubectl
2)、安裝MiniKube瀏覽器
爲了解決海外資源訪問受限問題,這裏咱們使用阿里雲提供的鏡像地址。具體命令以下:學習
$ minikube start --cpus=4 --memory='6000mb' --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
命令參數說明以下:ui
--cpus=4:表示爲minikube分配的CPU核數; --memory='6000mb':表示爲minikube虛擬機分配的內存數; --image-mirror-country='cn':將缺省利用"registry.cn-hangzhou.aliyuncs.com/google_containers"做爲安裝Kubernetes的容器鏡像倉庫; --image-repository="xx":表示所使用的鏡像倉庫地址,這裏爲阿里雲地址;
安裝命令執行效果以下:google
😄 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狀態相關信息spa
接下來咱們看下minikube的運行狀態,命令及效果以下:
$ minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
如上所示,能夠看到此時Kubernetes的幾個核心組件已經正常運行起來了!接下來咱們還能夠具體看看kubectl的版本,命令以下:
$ kubectl version --client Client 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-context minikube
能夠看到此時kubectl客戶端指向的Kubernetes集羣環境就是咱們本地所安裝的minikube環境!
此時咱們還能夠具體看看經過minikube所安裝的Kubernetes集羣服務的版本信息,命令以下:
$ kubectl version Client 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-info Kubernetes control plane is running at https://192.168.64.2:8443 KubeDNS is running at https://192.168.64.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
查看kubernetes的節點信息,命令以下:
$ kubectl get node NAME STATUS ROLES AGE VERSION minikube 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」了。
歡迎你們關注個人公衆號【風平浪靜如碼】,海量Java相關文章,學習資料都會在裏面更新,整理的資料也會放在裏面。
以爲寫的還不錯的就點個贊,加個關注唄!點關注,不迷路,持續更新!!!