阅读 172

Minikube-运行在笔记本上的Kubernetes集群

前言

Minikube是一个可以在本地电脑上运行Kubernetes的工具。Minikube会在笔记本电脑中的虚拟机上运行一个单节点的Kubernetes集群,让用户能对Kubernetes进行体验或者在之上进行Kubernetes的日常开发。

WindowsMacOSLinux系统上都可以安装Minikube,不过在安装前需要确认系统的版本已经支持虚拟化(一般只要不是太老的系统版本都支持虚拟化)

kubectl

在电脑上安装Minikubne前需要先安装kubectl,它是Kubernetes的命令行工具,可以使用kubectl部署应用程序,检查和管理集群资源以及查看日志。

安装kubectl

文章里我们演示的安装步骤都是macOs上的,如果是Linux和Windows系统只需要下载相应系统的二进制文件就行,我会在文章后边贴上官方的安装指南。

首先下载最新的稳定版本的kubectl二进制文件。

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"
复制代码

kubectl授予可执行权限,然后将可执行文件放到系统的PATH目录中

chmod +x ./kubectl && sudo mv ./kubectl /usr/local/bin/kubectl
复制代码

安装MiniKube

如果你的macOS上没有安装虚拟机监控程序的话在第一次启动minikube的时候会自动选择安装HyperKit作为虚拟机驱动,如果是以前电脑上有安装过VirtualBox那么可以在Minikube启动时加上--vm-driver=virtualbox来选择虚拟机驱动。

安装minikube的过程跟kubectl的过程差不多,也是下载minikube的二进制文件,赋予可执行权限后将其放入系统环境变量PATH对应的目录中。

不过由于大家都知道的网络访问原因,很多朋友无法直接使用Kubernetes官方提供的minikube进行实验,所以这里选择使用阿里云提供minikube版本

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.11.0/minikube-darwin-amd64 \ 
&& chmod +x minikube \ 
&& sudo mv minikube /usr/local/bin/
复制代码

如果是Linux和Window系统,安装流程类似只是软件的版本不同,具体可以参照MiniKube的安装指南

运行Minikube

启动minikube的方法非常简单,只要使用下面的命令

minikube start  --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'    
复制代码

启动minikube

在最新的Minikube中,已经提供了配置化的方式,可以帮助大家利用阿里云的镜像地址来获取所需的Docker镜像和配置。

测试Minikube

下面我们通过minikube status命令查看一下它的运行状态测试我们安装的minikube

➜  minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
复制代码

通过kubectl查看集群的一些信息。

➜  kubectl get pods -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-67c766df46-59rtb           1/1     Running   0          17m
kube-system   coredns-67c766df46-jxmvf           1/1     Running   0          17m
kube-system   etcd-minikube                      1/1     Running   0          16m
kube-system   kube-addon-manager-minikube        1/1     Running   0          16m
kube-system   kube-apiserver-minikube            1/1     Running   0          16m
kube-system   kube-controller-manager-minikube   1/1     Running   0          17m
kube-system   kube-proxy-ljppw                   1/1     Running   0          17m
kube-system   kube-scheduler-minikube            1/1     Running   0          16m
kube-system   storage-provisioner                1/1     Running   0          17m

➜   kubectl get nodes
NAME       STATUS   ROLES    AGE   VERSION
minikube   Ready    master   18m   v1.18.3


➜   kubectl get namespaces
NAME              STATUS   AGE
default           Active   18m
kube-node-lease   Active   18m
kube-public       Active   18m
kube-system       Active   18m
复制代码

接下来

安装完Minikube后我们的电脑上就有了Kubernetes的基础运行环境,通过最近几篇关于Kubernetes的文章相信大家都对已经对Kubernetes有了初步的认识,不过都是概念性的知识,到现在来说Kubernetes还是一个比较抽象的东西,说实话这么学下去的话我会觉得太枯燥,需要一些实操性的练习给自己一些正反馈才能坚持下去。所以我准备尝试做一个简单的用Go语言写的应用程序的Docker镜像,把它放到本地电脑上的Kubernetes集群(Minikuebe)上运行。具体步骤会在下周推送的文章里告诉大家,祝大家假期愉快!