使用 minikube 在本地搭建 k8s 已经比以前要简单很多了。本文,我们通过简短的三分钟来重现一下在本地搭建 k8s 实验环境的步骤。

Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架。如果您是首次阅读本系列文章。建议可以先从本文末尾的入门文章开始了解。

下载 Minikube

首先,你可能会考虑从官网下载 minikube 然后进行安装,但是这样实际上可以预知的是,在后续的使用中你可能会到由于网络的特殊性,无法正常地启动。

因此,需要使用一些特殊的办法来解决这个问题。

这里,我们直接使用由阿里云团队针对中国大陆网络环境进行优化的版本。

Mac OSX

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Linux

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Windows

https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-windows-amd64.exe

下载 minikube-windows-amd64.exe 文件,并重命名为 minikube.exe

下面我们都将围绕 windows 版本进行说明和演示。

虽然官方版本已经支持中国区的镜像加速,但是截至笔者自己发文的时候,还是存在各种问题。本着人的生命是有限的基本原则,我们可以先跳过这些恼人的问题。

安装 Minikube

windows 版本只要下载到特定文件夹,然后将这个文件夹,加入到 PATH 当中即可。这样以后无论在那个路径下都可以正常运行 minikube 命令。

启动 Hyper-v

虽然最新的 minikube 对于 Docker 和 Hyper-v 都是首选驱动,但是 Docker 无法使用 ingress 插件,因此考虑使用 Hyper-v。

使用管理员权限运行以下脚本来启用 Hyper-v:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

启用后需要重新启动操作系统才能生效。

配置 Minikube

使用管理员权限打开一个控制台,并运行以下命令,来设置驱动、CPU 和内存:

minikube config set driver hyperv
minikube config set cpus 8
minikube config set memory 12288

CPU 和内存可以按照你的实际情况进行设置。其中内存的单位为 MB,12288 即表示 12G。

在 Hyper-v 中,这实际上就是虚拟机的 CPU 和内存。

启动 k8s

使用管理员权限打开一个控制台,并运行以下命令,来启动一个 k8s 节点:

minikube start

运行这段命令后,经过一段时间的等待,你应该会得到如下所示的输出内容,这就表示你已经正确启动了一个 k8s 节点:

PS C:/Users/Administrator> minikube start
Microsoft Windows 10 Enterprise 10.0.19042 Build 19042 上的 minikube v1.20.0
根据用户配置使用 hyperv 驱动程序
Starting control plane node minikube in cluster minikube
Creating hyperv VM (CPUs=8, Memory=12288MB, Disk=20000MB) ...
正在 Docker 20.10.6 中准备 Kubernetes v1.20.2…
Generating certificates and keys ...
Booting up control plane ...
Configuring RBAC rules ...
Verifying Kubernetes components...
Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5 (global image repository)
Enabled addons: storage-provisioner, default-storageclass
Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

启用 dashboard 看看集群

运行以下命令:

minikube dashboard

稍等片刻,浏览器便会打开 dashboard,你就可以看到集群的基本情况。

使用 lens 查看集群

除了使用原生的 dashboard,你也可以使用 lens 来查看这个集群的情况。

通过 https://k8slens.dev/ 下载和安装最新的 lens 版本。

然后打开之后,便可以通过 lens 来查看集群的基本情况。

安装 helm

为了验证这个集群的基础功能,我们尝试使用 helm 来安装一个简单的应用

首先,需要安装 helm。 helm 和 minikube 一样,是一个单文件的命令行程序。可以直接从 Github 上下载。

或者也可以通过以下地址加速下载:

https://www.newbe.pro/Mirrors/Mirrors-Helm/

下载,设置好 PATH 之后,我们就可以在控制台中调用 helm:

PS C:/Users/Administrator> helm version
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}

添加 bitnami 为 helm 包源

helm 实际上是一个包安装器,这个包被称为 charts,每个 chart 实质上就是一组 k8s 资源的定义。

因此,和软件安装一样,想要安装一个软件,首先需要选择一个软件包源来下载这个软件包。

bitnami 是 VMware 提供的一个包源,其中包含了一些已经被用于产线的常用中间件包,比如 mysql,elasticsearch,mongodb,wordpress 等等。

通过以下命令,便可以添加这个包源。

helm repo add bitnami https://charts.bitnami.com/bitnami

添加好之后,可以使用以下命令来查看已经添加的所有包源:

PS C:/Users/Administrator> helm repo list
NAME URL
bitnami https://charts.bitnami.com/bitnami
dapr https://dapr.github.io/helm-charts/

使用 helm 安装一个 nginx

这里我们以安装一个简单的 nginx 为例,演示一下如何安装 helm chart 包。

通过运行以下命令,便可以从 bitnami 上安装一个 nginx 到集群中:

helm install my-release bitnami/nginx

同时,如果你前面安装了 lens, 那么也可以通过左侧的 APP/Charts 来安装:

安装好之后,便可以使用 k8s 的 port-forward 功能来查看安装结果。当然,在 lens 上,只需要一次鼠标点击可以:

移除安装的 helm chart

通过 lens app/release 菜单,你可以非常简单的移除刚刚安装的 chart。

停止和移除 minikube 节点

如果你想停止当前 minikube 节点以节约资源,可以运行以下命令:

minikube stop

如果你想移除安装的 minikube 节点(hyper-v 虚拟机),可以运行以下命令:

minikube delete --all

本篇小结

通过简单的 minikube 、 helm 和 lens, 你便可以拥有一个非常简单的 k8s 测试环境。

一切就是这样的轻松愉快。

相关链接

af 开头的链接为 af code,你可以通过 https://af.newbe.pro/ 来了解如何使用此链接进行快速收藏。

阿里云版本 minikub

https://github.com/AliyunContainerService/minikube

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL0FsaXl1bkNvbnRhaW5lclNlcnZpY2UvbWluaWt1YmUiLCJ0IjoiQWxpeXVuQ29udGFpbmVyU2VydmljZS9taW5pa3ViZSIsInRzIjpbIms4cyIsIm1pbmlrdWJlIiwiXHU5NjNGXHU5MUNDXHU0RTkxIl19

Github minikub

https://github.com/kubernetes/minikube

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvbWluaWt1YmUiLCJ0Ijoia3ViZXJuZXRlcy9taW5pa3ViZTogUnVuIEt1YmVybmV0ZXMgbG9jYWxseSIsInRzIjpbImdpdGh1YiIsIm1pbmlrdWJlIl19

Github minikub

https://github.com/kubernetes/minikube

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvbWluaWt1YmUiLCJ0Ijoia3ViZXJuZXRlcy9taW5pa3ViZTogUnVuIEt1YmVybmV0ZXMgbG9jYWxseSIsInRzIjpbImdpdGh1YiIsIm1pbmlrdWJlIl19

Github helm

https://github.com/helm/helm

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2hlbG0vaGVsbSIsInQiOiJoZWxtL2hlbG06IFRoZSBLdWJlcm5ldGVzIFBhY2thZ2UgTWFuYWdlciIsInRzIjpbImdpdGh1YiIsImhlbG0iXX0=

Github helm 加速下载

https://www.newbe.pro/Mirrors/Mirrors-Helm/

af://1eyJ1IjoiaHR0cHM6Ly93d3cubmV3YmUucHJvL01pcnJvcnMvTWlycm9ycy1IZWxtLyIsInQiOiJIZWxtIFx1NTZGRFx1NTE4NVx1NTJBMFx1OTAxRlx1NEUwQlx1OEY3RCB8IG5ld2JlIiwidHMiOlsiaGVsbSIsIm1pcnJvciJdfQ==

Github bitnami charts

https://github.com/bitnami/charts

af://1eyJ1IjoiaHR0cHM6Ly9naXRodWIuY29tL2JpdG5hbWkvY2hhcnRzIiwidCI6ImJpdG5hbWkvY2hhcnRzOiBIZWxtIENoYXJ0cyIsInRzIjpbImJpdG5hbWkiLCJjaGFydHMiLCJoZWxtIl19

简单三分钟,本地搭建 k8s的更多相关文章

  1. 三分钟快速搭建分布式高可用的Redis集群

    这里的Redis集群指的是Redis Cluster,它是Redis在3.0版本正式推出的专用集群方案,有效地解决了Redis分布式方面的需求.当单机内存.并发.流量等遇到瓶颈的时候,可以采用这种Re ...

  2. windows+mysql集群搭建-三分钟搞定集群

    注:本文来源:  陈晓婵   <  windows+mysql集群搭建-三分钟搞定集群   > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...

  3. 转载:Windows下三分钟搭建Shadowoscks服务器端

    Windows下三分钟搭建Shadowoscks服务器端 之前在V2EX上有人问为啥没人做个在Windows上一键运行Shadowsocks服务器端的程序,我只想说……这是因为没人关注我的libQtS ...

  4. Hexo + Serverless Framework,简单三步搭建你的个人博客

    很多人都想拥有自己的个人博客,还得看起来漂亮.酷酷的.尤其对开发者来说,不仅可以分享技术(装)心得(逼),面试的时候还能成为加分.这里介绍两款好用的神器,不用忙前(前端)忙后(后端),简单3min即可 ...

  5. 15分钟从零开始搭建支持10w+用户的生产环境(三)

    上一篇文章介绍了这个架构中,选择MongoDB做为数据库的原因,及相关的安装操作. 原文地址:15分钟从零开始搭建支持10w+用户的生产环境(二)   三.WebServer 在SOA和gRPC大行其 ...

  6. unity3d 三分钟实现简单的赛车漂移

    提到赛车游戏,大家最关心的应该就是漂移吧?! 从学unity开始,我就一直在断断续续的研究赛车 因为自己技术太烂.悟性太差等原因,我走了不少弯路 也许你会说,网上那么多资料,你不会查啊 是啊!网上一搜 ...

  7. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

  8. 三分钟入坑指北 🔜 Docsify + Serverless Framework 快速创建个人博客系统

    之前由于学摄影的关系,为了提高自己的审美,顺便锻炼下自己的英文能力,翻译了不少国外艺术类的 文章.最近一直想搭一个个人博客来存放这些内容,又懒得折腾建站,遂一直搁置. 直到偶然发现了 docsify ...

  9. 15分钟从零开始搭建支持10w+用户的生产环境(四)

    上一篇文章,介绍了这个架构中,WebServer的选择,以及整个架构中扩展时的思路. 原文地址:15分钟从零开始搭建支持10w+用户的生产环境(三)   五.架构实践 前边用了三篇文章,详细介绍了这个 ...

随机推荐

  1. [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)

    目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2 ...

  2. php header 设置文件下载

    控制器 php 代码: $filepath = "http://www.jiesen365.com/uploadfile/20150519044903-897.pdf"; //下载 ...

  3. anyRTC iOS端屏幕录制开发指南

    一. 概述 实现直播过程中共享屏幕分为两个步骤:屏幕数据采集和流媒体数据推送.前对于 iOS 来说,屏幕采集需要系统的权限,受制于iOS系统的限制,第三方 app 并没有直接录制屏幕的权限,必须通过系 ...

  4. QGIS打印布局中绘制多个子图

    QGIS如何绘制多图 数据准备 这是一份英国大曼彻斯特地区的数据,里面包含了教育.收入.人口密度.绿地比例.城市比例等数据,我们准备把这些数据在地图上呈现出来,为此,我们需要做在地图中绘制6幅子图,这 ...

  5. [考试总结]noip模拟33

    连炸两场... 伤心... 第一个题目首先因为有期望坐镇,然后跳过... 然后第二个题目发现题目挺绕的,然后转化了一句话题意,然后..... \(\huge{\text{转化错了!!!!}}\) 然而 ...

  6. 工具idea 基于maven 创建springMVC项目

    SpringMVC Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单.这些控制器一般不 ...

  7. appium自动化测试(5)-一些pyhon操作

    1.套件的问题 将所有的测试用例加进去,会一个个执行,用于用例名字没有规范test开头的时候 def suite(): suite = unittest.TestSuite suite.addTest ...

  8. 实现 pow 函数

    1 ////实现pow函数 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 double power(double,int) ; ...

  9. 本以为精通Android事件分发机制,没想到被面试官问懵了

    文章中出现的源码均基于8.0 前言 事件分发机制不仅仅是核心知识点更是难点,并且还是View的一大难题滑动冲突解决方法的理论基础,因此掌握好View的事件分发机制是十分重要的. 一.基本认识 1. 事 ...

  10. 跟我一起写 Makefile(十)

    四.foreach 函数 foreach函数和别的函数非常的不一样.因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语 ...