一 Minikube介绍
1.1 概述
Minikube是一种能够在本地轻松运行Kubernetes的工具。Minikube在笔记本电脑的VM中运行单节点Kubernetes集群,供但愿尝试Kubernetes或平常开发的用户测试使用。特色是不能启动生产集群,没有高可用性的单节点机器。
使用Minikube CLI管理虚拟机上的Kubernetes环境,好比:启动,中止,删除,获取状态等。
1.2 Minkube功能
Minikube支持Kubernetes功能,例如:
- DNS
- NodePorts
- ConfigMaps和Secrets
- 仪表板
- Container Runtime:Docker,rkt,CRI-O和containerd
- 启用CNI(容器网络接口)
- 入口
1.3 架构示意
Minikube利用本地虚拟机环境部署Kubernetes,其基本架构以下图所示:
二 Minikube安装
2.1 前置条件
必须在计算机的BIOS中启用VT-x或AMD-v虚拟化。
安装kubetcl工具,参考《附001.kubectl介绍及使用》。
2.2 正式安装
1 [root@k8s ~]# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
2 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
提示:Minkube相关源位于国外,也可采用国内阿里修改的Minkube,操做以下:
1 [root@k8s ~]# curl -Lo \
2 minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.25.2/minikube-linux-amd64 && \
3 chmod +x minikube && sudo mv minikube /usr/local/bin/
三 使用Minkube启动Kubernetes
3.1 前期准备
安装virtualbox:
1 [root@k8s ~]# yum -y update
2 [root@k8s ~]# yum -y install kernel-devel
3 [root@k8s ~]# vi /etc/yum.repos.d/virtualbox.repo
4 [virtualbox]
5 name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
6 baseurl=http://download.virtualbox.org/virtualbox/rpm/el/7/$basearch
7 enabled=1
8 gpgcheck=1
9 repo_gpgcheck=1
10 gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
11 [root@k8s ~]# yum -y install VirtualBox-5.2
12 [root@k8s ~]# sudo /sbin/vboxconfig #测试

提示:可以使用kvm或virtualbox(默认)启动虚拟节点,在此节点上部署Kubernetes集群,国内环境没法正常下载相应驱动,若采用none,即宿主机自身docker环境进行部署,须要提早安装docker。
3.2 快速构建
1 [root@k8s ~]# minikube start
提示:若是要更改VM驱动程序,请添加相应的--vm-driver=xxx标志minikube start,如minikube start --vm-driver hyperv,以下为使用kvm2驱动部署示例:
1 root@k8s01:~# sudo apt -y install libvirt-clients libvirt-daemon-system qemu-kvm
2 #安装KVM2前置组件
3 root@k8s01:~# curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 && sudo install docker-machine-driver-kvm2 /usr/local/bin/
4 #安装KVM2
5 root@k8s01:~# minikube start --vm-driver kvm2 #本实验使用kvm驱动
提示:更多驱动安装文档参考:https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver
1 [root@k8s ~]# kubectl cluster-info #查看集群Master信息
2 [root@k8s ~]# kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
3 [root@k8s ~]# kubectl expose deployment hello-minikube --type=NodePort
4 [root@k8s ~]# kubectl get pod #查看pod节点
5 [root@k8s ~]# kubectl get all --namespace=kube-system #查看部署组件
3.3 确认验证
1 [root@k8s ~]# minikube ssh #进入集群虚机
2 $ docker ps #查看所运行的容器
3 [root@k8s ~]# minikube dashboard #打开Kubernetes web界面
四 Minkube常见操做
4.1 常见操做
1 [root@k8s ~]# minikube version #查看安装Minkube版本
2 [root@k8s ~]# minikube status #查看状态
3 [root@k8s ~]# minikube start #启动一个Kubernetes
提示:minikube start可用于启动/建立集群,并配置运行单节点Kubernetes集群的虚拟机,同时会将kubectl安装配置为与此群集通讯。
1 [root@k8s ~]# minikube start --kubernetes-version v1.7.3
2 #指定特定版本启动Kubernetes。
3 root@k8s01:~# minikube stop #中止一个Kubernetes
提示:minikube stop将关闭minikube虚拟机,但会保留全部群集状态和数据。再次启动群集会将其恢复到以前的状态。
1 [root@k8s ~]# minikube ip #查看内部虚拟机启动的IP
2 [root@k8s ~]# minikube ssh #进入虚机所构建的集群内部
3 [root@k8s ~]# minikube logs #查看运行log
4 [root@k8s ~]# minikube addons list #查看addons的列表
1 root@k8s01:~# minikube start --kubernetes-version v1.7.3 #启动指定版本的Kubernetes
2 root@k8s01:~# minikube delete #关闭集群并删除minikube虚拟机,不保留任何虚机数据或状态,但~/.minikube目录会存在缓存文件。
3 root@k8s01:~# minikube dashboard #启动Kubernetes仪表盘
4.2 部分优化
为了可以在宿主机上使用内部docker相关命令,可进行如下操做::
1 [root@k8s ~]# eval $(minikube docker-env)
2 [root@k8s ~]# docker ps
参考文档:https://yq.aliyun.com/articles/221687
https://github.com/kubernetes/minikube/blob/v0.30.0/README.md
https://kubernetes.io/docs/setup/minikube/