使用Minikube部署本地Kubernetes集群(二十八)

前言               

使用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下安装 


 

使用Minikube部署本地Kubernetes集群

什么是Kubernetes集群?

Kubernetes 用于协调高度可用的计算机集群,这些计算机被链接做为单个工做单元。 Kubernetes容许用户将容器化的应用程序部署到集群,而没必要专门将其绑定到单个计算机。为了利用这种新的部署模型,应用程序须要被容器化。容器化应用程序比过去的部署模型更灵活和可用——而不是将应用程序直接安装到特定机器上,做为深刻集成到主机中的软件包。Kubernetes 在一个集群上以更有效的方式自动分发和调度容器应用程序。

Kubernetes 集群由两种类型的资源组成:

  • Master:即集群的调度节点,负责管理集群,例如调度应用程序、维护应用程序的所需状态、扩展应用程序和滚动更新。
  • Nodes:即应用程序实际运行的工做节点,能够是物理机或者虚拟机。每一个工做节点都有一个 Kubelet(节点代理),它是管理节点并与Kubernetes Master节点进行通讯的代理。节点上还应支持容器操做,例如 Docker或rkt。一个 Kubernetes 工做集群至少有三个节点。

当咱们在Kubernetes上部署应用程序时, Master会启动应用程序容器,并调度容器在集群的Nodes上运行,而Nodes使用Master公开的Kubernetes API与Master进行通讯。最终用户还能够直接使用 Kubernetes 的API与集群交互。

 

使用Minikube建立本地Kubernetes实验环境

在大部分状况下,咱们须要在本地玩转Kubernetes,以便于Kubernetes应用程序的开发和调测。搭建完整的Kubernetes集群毕竟过重,那么使用Minikube则是不二选择。

什么是Minikube?

Minikube 是一个轻量级的Kubernetes实现,会在本机建立一台虚拟机,并部署一个只包含一个节点的简单集群。 Minikube适用于Linux, Mac OS和Windows系统。Minikube CLI提供了集群的基本引导操做,包括启动、中止、状态和删除。

Minikube的目标是成为本地Kubernetes应用程序开发的最佳工具,并支持全部适合的Kubernetes功能!

官方GitHub地址:https://github.com/kubernetes/minikube


Minikube支持的功能

Minikube支持如下Kubernetes功能:

  • DNS
  • NodePorts(可以使用“minikube service”命令来管理)
  • ConfigMaps和Secrets
  • 仪表板(Dashboards,minikube dashboard)
  • 容器运行时:Docker,rktCRI-Ocontainerd
  • Enabling CNI(容器网络接口)
  • Ingress
  • LoadBalancer(负载均衡,可使用“minikube tunnel”命令来启用)
  • Multi-cluster(多集群,可使用“minikube start -p <name>”命令来启用)
  • Persistent Volumes
  • RBAC
  • 经过命令配置apiserver和kubelet

 

Windows 10下安装

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安装Minikube(推荐)

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可视化面板:

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”后再次尝试。

 

Linux下安装

1.安装虚拟机(可选)

在Linux环境下,Minikube支持直接在主机上运行Kubernetes,所以此步骤为可选。因此你们能够根据实际状况来选择是否安装虚拟机,好比KVM和VirtualBox。

注意:若是直接在主机上运行,Minikube会运行一个不安全的API Server,可能会致使安全隐患,所以不建议在我的工做环境安装。

 

2.安装kubectl

因为Google网络不太稳定,咱们使用阿里云镜像进行安装。

  • CentOS

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

  • Debian / Ubuntu

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

 

往期内容连接

Docker最全教程——从理论到实战(一)

Docker最全教程——从理论到实战(二)

Docker最全教程——从理论到实战(三)

Docker最全教程——从理论到实战(四)

Docker最全教程——从理论到实战(五)

Docker最全教程——从理论到实战(六)

Docker最全教程——从理论到实战(七)

Docker最全教程——从理论到实战(八)

相关文章
相关标签/搜索