工欲善其事必先利其器 之 Minikube
前言
随着容器技术的发展壮大,越来越多的企业选择了使用容器部署应用。应用部署简单了,但大量的容器改如何管理呢?总不能让运维人员一个容器一个容器去操作吧。
说到这里,聪明的你应该已经想到了,那有没有什么工具可以管理这些容器呢?当然有了,目前比较主流容器编排技术 Docker Compose 和 Kubernetes。
今天呢我们学习后者 Kubernetes 来管理容器,为什么选择 Kubernetes 呢,Kubernetes 不仅仅是容器管理这么简单,它还有更加强大的功能。
那你可能又有疑惑了,学习 Kubernetes 和 Minikube 有什么关系呢?
哈哈,原因很简单,Kubernetes 环境搭建比较复杂。Minikube 是专门为开发人员准备的,方便开发人员进行调试。而且安装很简单,上手很快。看到这里,相信你已经知道 Minikube 是做什么的了,接下来将带你进行 Minikube 的安装,以及运行你的第一个 Kubernetes 应用。
一、Minikube 概述
Minikube 是本地 Kubernetes,专注于让 Kubernetes 易于学习和开发。Minikube 支持 macOS、Linux 和 Windows 上快速搭建本地 Kubernetes 集群。
二、Minikube 特性
支持最新的 Kubernetes 版本(+6 个以前的次要版本)
跨平台(Linux、macOS、Windows)
部署为 VM、容器或裸机
多个容器运行时(CRI-O、containerd、docker)
用于快速图像推送的Docker API 端点
高级功能,例如LoadBalancer、文件系统挂载和 FeatureGates
用于轻松安装 Kubernetes 应用程序的插件
三、Minikube 功能
支持docker,podman等多种容器引擎
镜像缓存
dashboard
访问主机资源
安装扩展
文件系统挂载
文件同步
支持 NodePort 和LoadBalancer
支持私有镜像源
日志分级
四、搭建你自己的 Minikube
由于笔者用的是 Windows 操作系统,下面案例将在 Windows 操作系统上搭建。
-
环境准备
2 个或更多 CPU
2GB 可用内存
20GB 可用磁盘空间
网络连接
容器或虚拟机管理器,例如:Docker、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox或VMWare
这里笔者使用的是 Docker ,在使用 Minikube 安装 Kubernetes 之前,请确保我们的机器已经正确安装并且启动 Docker。如果你的操作系统没有安装 Docker ,可以参考我的另一篇文章 工欲善其事必先利其器 之 DockerDesktop
-
第一步 下载安装包
这里需要下载两个安装包
kubectl for Windows
Minikube for Windows
-
第二步 安装 minikube
找到下载好的安装包
minikube-installer.exe
双击,按照提示进行操作即可。验证安装,在终端输入
minikube version
看到如下信息,说明 minikube 安装成功了
minikube version
输出信息
minikube version: v1.19.0
commit: 15cede53bdc5fe242228853e737333b09d4336b5
-
第三步 安装 kubectl
找到下载好的安装包
kubectl.exe
,添加到操作系统PATH
下。添加好PATH
后,在终端输入kubectl version --client
看到如下信息,说明 kubectl 环境变量已经生效
kubectl version --client
输出信息
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.2", GitCommit:"092fbfbf53427de67cac1e9fa54aaa09a28371d7", GitTreeState:"clean", BuildDate:"2021-06-16T12:59:11Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"windows/amd64"}
-
第四步 使用
Minikube 安装成功了,如何使用呢?
我们需要在操作系统终端 或 PowerShell 这样的命令行终端,然后尝试一些 minikube 命令。如何打开终端呢?
Windows 打开终端的快捷键
win+r
在弹出的窗口输入cmd
点击确定
按钮,即可进入命令行终端,传说中的黑窗口。运行 Minikube 之前,我们先来运行一下
minikube status
。
minikube status
输出信息
minikube
type: Control Plane
host: Stopped
kubelet: Stopped
apiserver: Stopped
kubeconfig: Stopped
到这,别忘了我们的目标是要搭建一个mini版的 Kubernetes 集群。所以革命尚未成功,我们仍然需要进行后续操作。
-
第五步 启动你的第一个 Kubernetes 集群
启动集群,在终端输入
minikube start
minikube start
输出信息
* Microsoft Windows 10 Home China 10.0.19041 Build 19041 上的 minikube v1.19.0
* 自动选择 docker 驱动。其他选项:virtualbox, ssh
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
> index.docker.io/kicbase/sta...: 357.67 MiB / 357.67 MiB 100.00% 1.95 MiB
! minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.20, but successfully downloaded kicbase/stable:v0.0.20 as a fallback image
* Creating docker container (CPUs=2, Memory=3883MB) .../ E0807 17:31:41.808445 25672 kic.go:257] icacls failed applying permissions - err
! This container is having trouble accessing https://k8s.gcr.io
* To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
* 正在 Docker 20.10.5 中准备 Kubernetes v1.20.2…
- Generating certificates and keys ...
- Booting up control plane ...
- Configuring RBAC rules ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
验证集群,在终端输入 kubectl cluster-info
看到如下信息,说明 Kubernetes 集群安装成功了
kubectl cluster-info
输出信息
Kubernetes control plane is running at https://127.0.0.1:2438
KubeDNS is running at https://127.0.0.1:2438/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'
-
开启 dashboard
开启集群 dashboard,在终端输入
minikube dashboard
minikube dashboard
输出信息
* 正在开启 dashboard ...
- Using image kubernetesui/dashboard:v2.1.0
- Using image kubernetesui/metrics-scraper:v1.0.4
* 正在验证 dashboard 运行情况 ...
* Launching proxy ...
* 正在验证 proxy 运行状况 ...
* Opening http://127.0.0.1:11739/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
浏览器地址栏输入 http://127.0.0.1:11739/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
看到如下页面说明 dashboard 启动成功
五、Minikube 常用命令
命令 | 含义 | 备注 |
---|---|---|
minikube start | 启动集群 | |
minikube status | 查看集群状态 | |
minikube dashboard | 访问在 minikube 集群中运行的 kubernetes dashboard | |
minikube pause | 停止集群中的容器 | |
minikube unpuase | 恢复集群中的容器 | |
minikube ip | 查看虚拟机ip | |
minikube ssh | 登陆到虚拟机 | |
minikube delete | 删除集群 |
总结
以上就是本文的主要内容,本文介绍了什么是 Minikube ,为什么使用 Minikube ,怎么搭建 Minikube,Minikube 常用命令。本专栏后面的文章将带你认识其它的开发利器 ,敬请期待哦(*^▽^*)
。
声明
以上内容均来源于网络,如有错误,请多多包含。
参考文献
Minikube for Windows
kubectl for Windows
Minikube Documentation