您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

学习k8s,分享给大家一个开箱即用的minikube 环境

时间:2021-03-01 11:29:19  来源:  作者:

最近在学习#Kubernetes#, 主要是想打一个基础开发环境, 从最基本、最简单的#minikube#开始搭起吧, 顺便也学习一下搭建过程.

谁知道这个minikube 环境, 在目前的国内环境下, 还真是不容易自己从头搭建啊! 记录一下自己的过程, 最后和大家分享一个已经配置好的Minikube 环境, 安装在Virtualbox 里的一个虚拟机, 大家以后可以直接使用, 少走弯路哇!

 

一、 Minikube 简介

#minikube#是一种可以在本地轻松运行Kubernetes的工具。minikube在笔记本电脑的VM中运行单节点Kubernetes集群,供希望尝试Kubernetes或日常开发的用户测试使用。特点是不能启动生产集群,没有高可用性的单节点机器。

使用Minikube CLI管理虚拟机上的Kubernetes环境,比如:启动,停止,删除,获取状态等。

Minikube 实际上就是在本机启动一个虚拟环境, 在虚拟环境里面安装Kubernetes 的各种组件

学习k8s,分享给大家一个开箱即用的minikube 环境

 

二、minikube 搭建过程以及遇到的各种坑

在本机(macbook Pro , macOS 11.2.2) 上安装minikube, 真是遇到了各种坑! 感觉最主要的是, 在当前国内的环境下, 是无法访问谷歌的一些地址, 尤其是各种repository源, 这就造成安装上的困难!

而且, 国内的文档吧, 参差不齐, 没有一个特别好的、系统性强的文档供参考, 可能是我没有找到特别合适的文档, 但是从百度上搜到的文档, 大多如此, 只言片语居多.

 

下载minikube 没啥难度, homebrew 就搞定了:

brew install minikube

 

按说, 对于Minikube , 目前最简单的应该是使用Docker 作为driver, 也就是在启动Minikube 时候, 指定:

minikube start --driver=docker

但是不知道为啥, 我Mac上面的Docker Desktop , 在启动Kubernetes 时候始终是失败的, 原因尚未查明, 毕竟对于K8S的理解和使用还不是那么深入......

 

所以, 我在启动minikube 的时候, 指定了virtualbox:

minikube start --driver=virtualbox

这个时候, 主要是提示访问不了谷歌的image 源k8s.gcr.io.

学习k8s,分享给大家一个开箱即用的minikube 环境

 

现在国内形势如此, 对于外网的访问就是艰难, 也不排除国外的"卡脖子"的因素, 作为一名程序员也只能是默默打开公司的vpn, 但是在实际运行的时候, 使用vpn 方案也不太行得通, 里面会提示说api server 没有启动, 导致最后的失败.

学习k8s,分享给大家一个开箱即用的minikube 环境

 

折腾很久, 就是在这个VM 里面安装Kubernetes 的时候, 兜兜转转, 错误很多, 实在是令人气馁.

 

三、开箱即用的Minikube 环境介绍

最后没办法, 看着Virtualbox 里面的这个VM, 心想别人应该有分享的VM 吧, 于是到Vagrant Box 市场里面搜索了一下,还真的是有, 那就不自己折腾了, 下载下来直接用现成的吧!

Box 市场上的这个环境, 源代码是在Github 的这个位置:
Q24/vagrant-box-centos7-minikube

学习k8s,分享给大家一个开箱即用的minikube 环境

https://github.com/Q24/vagrant-box-centos7-minikube

作者在基于Centos 7 精简版之上, 配置了minikube 的环境, 虚拟机里面已经安装有:

  • ansible
  • minikube
  • docker
  • helm
  • kubectl
  • kubetail

我们作为Vagrant 的终端用户, 只需要下载这个Vagrantfile 就好了, 这是我在本机启动好之后的界面, 增加了GNOME 桌面.

在使用默认的vagrant 账号和密码登录VM 之后, 启用桌面环境即可:

startx
学习k8s,分享给大家一个开箱即用的minikube 环境

minikube 桌面

简单检查一下, 可以看到minikube 的状态是正常而且完整的:

minikube status
学习k8s,分享给大家一个开箱即用的minikube 环境

minikube status

Minikube的dashboard 也很简单的打开:

minikube dashboard
学习k8s,分享给大家一个开箱即用的minikube 环境

 

四、通过hello world来快速学习

来一个Hello world的小例子:

        apiVersion: Apps/v1
        kind: Deployment
        metadata:
          name: hello-world
        spec:
          selector:
            matchLabels:
              run: load-balancer-example
          replicas: 2
          template:
            metadata:
              labels:
                run: load-balancer-example
            spec:
              containers:
                - name: hello-world
                  image: registry.cn-hangzhou.aliyuncs.com/aliyun_google/google-sample-node-hello:1.0
                  ports:
                    - containerPort: 8080
                      protocol: TCP

该文件简单描述了一个k8s deployment 资源的属性, 包含一个deployment, 一个replicaSets 每一个replicaSets 包含两个Pod.

每个Pod中运行一个容器, 容器的镜像源是
registry.cn-hangzhou.aliyuncs.com/aliyun_google/google-sample-node-hello:1.0, 容器端口8080.

启动应用
保存该文件为 hello-application.yaml, 运行如下命令:

kubectl apply -f ./hello-application.yaml 

查看deploymen 状态如下:

kubectl get deployment
学习k8s,分享给大家一个开箱即用的minikube 环境

kubectl get deployment

暴露应用访问入口
运行如下命令 服务暴露方式为NodePort

 kubectl expose deployment hello-world --type NodePort --name node-service

查看node-service:

kubectl get service node-service
学习k8s,分享给大家一个开箱即用的minikube 环境

kubectl get service node-service

kubectl describe service node-service
学习k8s,分享给大家一个开箱即用的minikube 环境

kubectl describe service node-service

可以看到 服务通过33557 端口映射到容器的8080端口,这样我们就可以通过 33557端口访问容器内的web应用了. 如下响应正常

学习k8s,分享给大家一个开箱即用的minikube 环境

浏览器访问

五 虚拟机分享

 

最后, 直接把我本地的这个Virtualbox 虚拟机分享给大家吧, 使用虚拟机可以免去配置环境的过程, 加快学习的脚步!

文件3.7G 左右, 可以直接在某度云盘下载:

链接:
https://pan.baidu.com/s/1pq-sYaWEUOxNipUqnRbp7A

为了避免文章被盗, 有需要这个虚拟机的,点击关注后, 私信给我, 即可分享给您密码



Tags:minikube 环境   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
最近在学习#Kubernetes#, 主要是想打一个基础开发环境, 从最基本、最简单的#minikube#开始搭起吧, 顺便也学习一下搭建过程.谁知道这个minikube 环境, 在目前的国内环境下,...【详细内容】
2021-03-01  Tags: minikube 环境  点击:(228)  评论:(0)  加入收藏
▌简易百科推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(33)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  石老师小跟班    Tags:Redis主从复制   点击:(117)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条