不會安裝Kubernetes學習環境?Mac筆記本上安排一個!

這篇文章是基於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相關文章,學習資料都會在裏面更新,整理的資料也會放在裏面。

以爲寫的還不錯的就點個贊,加個關注唄!點關注,不迷路,持續更新!!!

相關文章
相關標籤/搜索