使用Minikube部署本地k8s集羣相對比較簡單,很是推薦將其用於本地k8s開發環境,惟一麻煩點的僅僅是網絡問題。html
在本篇教程中,咱們使用了國內的鏡像來完成本地k8s集羣的搭建。若是搭建過程當中出現錯誤,建議使用minikube delete以後再從新搭建。linux
使用Minikube部署本地Kubernetes集羣 git
1. 什麼是Kubernetes集羣? github
2. 使用Minikube建立本地Kubernetes實驗環境 docker
1)什麼是Minikube? shell
2)Minikube支持的功能 數據庫
3)Windows 10下安裝 windows
4)打開Minikube可視化面板 api
5)常見錯誤 安全
6)Linux下安裝
Kubernetes 用於協調高度可用的計算機集羣,這些計算機被鏈接做爲單個工做單元。 Kubernetes容許用戶將容器化的應用程序部署到集羣,而沒必要專門將其綁定到單個計算機。爲了利用這種新的部署模型,應用程序須要被容器化。容器化應用程序比過去的部署模型更靈活和可用——而不是將應用程序直接安裝到特定機器上,做爲深刻集成到主機中的軟件包。Kubernetes 在一個集羣上以更有效的方式自動分發和調度容器應用程序。
Kubernetes 集羣由兩種類型的資源組成:
當咱們在Kubernetes上部署應用程序時, Master會啓動應用程序容器,並調度容器在集羣的Nodes上運行,而Nodes使用Master公開的Kubernetes API與Master進行通訊。最終用戶還能夠直接使用 Kubernetes 的API與集羣交互。
在大部分狀況下,咱們須要在本地玩轉Kubernetes,以便於Kubernetes應用程序的開發和調測。搭建完整的Kubernetes集羣畢竟過重,那麼使用Minikube則是不二選擇。
Minikube 是一個輕量級的Kubernetes實現,會在本機建立一臺虛擬機,並部署一個只包含一個節點的簡單集羣。 Minikube適用於Linux, Mac OS和Windows系統。Minikube CLI提供了集羣的基本引導操做,包括啓動、中止、狀態和刪除。
Minikube的目標是成爲本地Kubernetes應用程序開發的最佳工具,並支持全部適合的Kubernetes功能!
官方GitHub地址:https://github.com/kubernetes/minikube
Minikube支持如下Kubernetes功能:
1.安裝要求
Windows必須支持虛擬化,能夠執行「systeminfo」命令來確認。若是支持虛擬化,則【Hyper-V要求】一欄以下圖所示:
C:\Users\Lys_Desktop\Documents\Tencent Files\512982554\Image\C2C\M%YWM2VE`R)$F2KF`{~M{LU.jpg
若是已經裝了Hyper-V,則提示以下:
2.啓用Hyper-V(推薦)
能夠經過【程序和功能】=》【打開或關閉 Windows 功能】=》勾選【Hyper-V】來啓用Hyper-V,也能夠經過管理員執行如下Powershell腳本:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
若是不支持啓用Hyper-V,你們能夠安裝「VirtualBox」,並且目前「VirtualBox」是官方默認的虛擬機管理程序。
3.安裝Minikube和kubectl
Chocolatey咱們前面已經進行了講解,這裏面咱們可使用Chocolatey以管理員身份一鍵安裝Minikube:
choco install minikube kubernetes-cli
PS C:\WINDOWS\system32> choco install minikube kubernetes-cli
Chocolatey v0.10.11
Installing the following packages:
minikube;kubernetes-cli
By installing you accept licenses for the packages.
Minikube v1.1.1 [Approved]
minikube package files install completed. Performing other installation steps.
ShimGen has successfully created a shim for minikube.exe
The install of minikube was successful.
Software install location not explicitly set, could be in package or
default install location if installer.
kubernetes-cli v1.14.3 already installed.
Use --force to reinstall, specify a version to install, or try upgrade.
Chocolatey installed 1/2 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Warnings:
- kubernetes-cli - kubernetes-cli v1.14.3 already installed.
Use --force to reinstall, specify a version to install, or try upgrade.
下載地址:https://github.com/kubernetes/minikube/releases/
需下載【minikube-windows-amd64.exe】,下載完成後,須要重命名爲「minikube.exe」進行使用。
4.啓動Minikube
Minikube在Windows上支持使用VirtualBox和Hyper-V,這裏咱們使用Hyper-V進行實踐。
咱們須要執行「minikube start」命令來啓動Minikube。這個過程當中會下載Minikube ISO鏡像,若是Minikube ISO鏡像下載失敗,可複製連接手工下載或者配置容器代理再試。若是是手工下載,下載後,請將ISO文件放置C:\Users\<用戶名>\.minikube\cache\iso目錄,而後再次執行「start」命令。具體命令以下所示:
需使用管理員執行如下Powershell腳本:
minikube.exe start --registry-mirror=https://registry.docker-cn.com --vm-driver="hyperv" --memory=4096
其中,--registry-mirror參數用於設置鏡像服務地址,這裏設置爲國內鏡像服務地址。--vm-driver參數設置了虛擬機類型,這裏咱們使用Hyper-V,默認是VirtualBox。--memory參數設置了虛擬機內存大小。執行此腳本後,會使用默認的Hyper-V的虛擬交換機,咱們也可使用參數--hyperv-virtual-switch進行指定指定的虛擬網絡交換機。虛擬網絡交換機設置以下圖所示:
在中國,因爲網絡和防火牆的緣由,一般會沒法拉取k8s相關鏡像或者下載速度過於緩慢,所以,咱們能夠經過參數--image-repository來設置Minikube使用阿里雲鏡像。以下列命令:
minikube.exe start --registry-mirror=https://registry.docker-cn.com --vm-driver="hyperv" --memory=4096 --hyperv-virtual-switch="NET" --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
PS C:\WINDOWS\system32> minikube.exe start --registry-mirror=https://registry.docker-cn.com --vm-driver="hyperv" --memory=4096 --hyperv-virtual-switch="NET" --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
* minikube v1.1.1 on windows (amd64)
* using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
* Creating hyperv VM (CPUs=2, Memory=4096MB, Disk=20000MB) ...
* Configuring environment for Kubernetes v1.14.3 on Docker 18.09.6
* Pulling images ...
* Launching Kubernetes ...
* Verifying: apiserver proxy etcd scheduler controller dns
* Done! kubectl is now configured to use "minikube"
成功以後,咱們就可使用kubectl來操做集羣了,好比查看當前全部pod的狀態:
kubectl get pods --all-namespaces
剛纔咱們使用Minikube建立了默認的集羣,咱們還可使用Minikube建立新的集羣,好比:
minikube start -p mycluster
值得注意的是,Minikube搭配Hyper-V使用須要禁用動態內存(Docker for Windows初始化時指定禁用了相關虛擬機使用動態內存),執行Powershell腳本以下所示:
Set-VMMemory -VMName 'minikube' -DynamicMemoryEnabled $false。
在Windows 10下,咱們還可使用docker-desktop來啓用k8s,不過因爲網絡的緣由,並非很推薦:
成功啓動Minikube以後,咱們就能夠經過如下命令來打開Minikube可視化面板:
minikube dashboard
啓用面板
PS C:\WINDOWS\system32> minikube dashboard
* Enabling dashboard ...
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
* Opening http://127.0.0.1:3173/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ in your default browser...
啓動Minikube時提示錯誤以下:X Unable to start VM: start: exit status 1
處理方案:執行「minikube delete」或者手工清理時虛擬機目錄存在殘留內容,需手動刪除目錄「C:\Users\{your username} \.minikube\machines」後再次嘗試。
1.安裝虛擬機(可選)
在Linux環境下,Minikube支持直接在主機上運行Kubernetes,所以此步驟爲可選。因此你們能夠根據實際狀況來選擇是否安裝虛擬機,好比KVM和VirtualBox。
注意:若是直接在主機上運行,Minikube會運行一個不安全的API Server,可能會致使安全隱患,所以不建議在我的工做環境安裝。
2.安裝kubectl
因爲Google網絡不太穩定,咱們使用阿里雲鏡像進行安裝。
echo '#k8s
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
'>/etc/yum.repos.d/kubernetes.repo
#kubeadm和相關工具包
yum -y install kubelet kubeadm kubectl kubernetes-cni
apt-get update && apt-get install -y apt-transport-https
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo 'deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main' >/etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl
3.安裝Minikube
這裏咱們直接下載安裝:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
因爲網絡問題,咱們能夠選擇使用阿里雲的執行程序:
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
而後將可執行文件添加到/usr/local/bin目錄下
sudo install minikube /usr/local/bin
4.啓動Minikube
minikube start --vm-driver=none
若是存在網絡問題,請使用--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers指定鏡像倉庫地址。
安裝過程當中如出現問題,能夠執行如下命令以後再從新嘗試:
minikube delete
rm ~/.minikube