工欲善其事必先利其器 之 Minikube

工欲善其事必先利其器 之 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 操作系统上搭建。

这里笔者使用的是 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-dashboard.png


五、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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容