本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
Minikube:輕鬆在本機端執行 Kubernetes
編輯註記: 這是關於 Kubernetes 1.3 新功能的 系列深入文章中的第一篇貼文
雖然 Kubernetes 是現今用於管理容器化應用程式的最佳工具之一,並且已在生產環境中準備就緒超過一年,但 Kubernetes 一直缺少一個出色的本機開發平台。
在過去幾個月中,我們 Kubernetes 社群中的幾個人一直致力於在 GitHub 上的 Minikube 儲存庫中修復此問題。我們的目標是建構一個易於使用、高傳真度的 Kubernetes 發行版,只需單一命令即可在本機 Mac、Linux 和 Windows 工作站和筆記型電腦上執行。
感謝社群成員的大力協助,我們很榮幸宣布正式發布 Minikube。此版本支援 Kubernetes 1.3、用於更輕鬆地與本機叢集互動的新命令,以及適用於 xhyve (在 macOS 上) 和 KVM (在 Linux 上) 的實驗性驅動程式。
使用 Minikube
Minikube 以獨立的 Go 二進位檔案形式發布,因此安裝它就像下載 Minikube 並將其放在您的路徑中一樣簡單
Minikube 目前要求您已安裝 VirtualBox,您可以從這裡下載。
_(這是針對 Mac,對於 Linux,請將 “minikube-darwin-amd64” 替換為 “minikube-linux-amd64”)curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
若要在 Minikube 中啟動 Kubernetes 叢集,請使用 minikube start
命令
$ minikube start
Starting local Kubernetes cluster...
Kubernetes is available at https://192.168.99.100:443
Kubectl is now configured to use the cluster
此時,您的筆記型電腦上就有一個正在執行的單節點 Kubernetes 叢集!Minikube 也為您設定了 kubectl
,因此您也準備好在無需變更的情況下執行容器。
Minikube 建立一個僅限主機的網路介面,該介面路由到您的節點。若要與正在執行的 Pod 或服務互動,您應該透過此位址傳送流量。若要找出此位址,您可以使用 minikube ip
命令
Minikube 也隨附 Kubernetes Dashboard。若要在瀏覽器中開啟此儀表板,您可以使用內建的 minikube dashboard
命令
一般而言,Minikube 支援您對 Kubernetes 叢集所期望的一切功能。您可以使用 kubectl exec
在叢集中的 Pod 內取得 bash shell。您可以使用 kubectl port-forward
和 kubectl proxy
命令將流量從 localhost 轉發到 Pod 或 API 伺服器。
由於 Minikube 是在本機而非雲端供應商上執行,因此某些供應商特定的功能 (例如 LoadBalancers 和 PersistentVolumes) 將無法立即運作。但是,您可以使用 NodePort LoadBalancers 和 HostPath PersistentVolumes。
架構
Minikube 建構於 Docker 的 libmachine 之上,並利用驅動程式模型來建立、管理和與本機執行的虛擬機器互動。
RedSpread 非常慷慨地將他們的 localkube 程式碼庫捐贈給 Minikube 儲存庫,我們使用該程式碼庫在 VM 內啟動單一程序 Kubernetes 叢集。Localkube 將 etcd、DNS、Kubelet 和所有 Kubernetes 主要元件捆綁到單一 Go 二進位檔案中,並透過個別的 goroutine 執行它們。
即將推出的功能
到目前為止,Minikube 的開發工作一直非常有趣,我們一直致力於改進 Minikube,以改善 Kubernetes 開發體驗。如果您對功能有任何想法,請隨時在 issue tracker 中告訴我們。
以下是我們希望很快新增到 Minikube 的一些功能列表
- macOS 和 Windows 的原生 Hypervisor 支援
- 我們計劃移除對 Virtualbox 的依賴,並與 macOS 和 Windows (分別為 Hypervisor.framework 和 Hyper-v) 中包含的原生 Hypervisor 整合。
- 改進對 Kubernetes 功能的支援
- 我們計劃擴大支援的 Kubernetes 功能範圍,以包含 Ingress 等功能。
- 可設定版本的 Kubernetes
- 目前 Minikube 僅支援 Kubernetes 1.3。我們計劃新增對使用者可設定版本的 Kubernetes 的支援,以便更輕鬆地將您在生產環境中執行的版本與筆記型電腦上的版本相符。
社群
我們很樂意聽取有關 Minikube 的意見回饋。若要加入社群
請試用 Minikube,並告訴我們您的使用體驗!