专栏首页木二天空附002.Minikube介绍及使用

附002.Minikube介绍及使用

一 Minikube介绍

1.1 概述

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

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

1.2 Minkube功能

Minikube支持Kubernetes功能,例如:

  • DNS
  • NodePorts
  • ConfigMaps和Secrets
  • 仪表板
  • Container Runtime:Docker,rktCRI-Ocontainerd
  • 启用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/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 003.Kubernetes二进制部署准备

    其他更多前置准备见:https://kubernetes.io/zh/docs/setup/independent/install-kubeadm/

    木二
  • 001.Amoeba读写分离部署

    Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba forMysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在...

    木二
  • 008.Docker Flannel+Etcd分布式网络部署

    Flannel是一种基于overlay网络的跨主机容器网络解决方案,即将TCP数据包封装在另一种网络包里面进行路由转发和通信,Flannel是CoreOS开发,...

    木二
  • jvisualvm.exe远程连接tomcat

    花时间实践了下jvisualvm.exe远程监控tomcat jvisualvm.exe 是java自带一个jvm监控可视化工具,在%JAVA_HOME%/bi...

    技术蓝海
  • Confluence 6 在数据源连接中启用校验查询

    你应该可以从中断的数据库连接中重新获得所有的数据库连接而不需要重启 Confluence。

    HoneyMoose
  • Android 全局使用第三方字体

        将文件放入工程assets目录下。(一般个人习惯单独命名一个文件夹放字体文件,也可直接放入根目录,但记得改引用路径)

    用户3030674
  • Confluence 6 下载和安装 MySQL 驱动

    基于许可证的现在,我们没有将 MySQL 的数据库捆绑到 Confluence 中。需要将你的数据库驱动在 Confluence 中可用:

    HoneyMoose
  • 单片机模块化程序: 给串口接收,发送数据都使用上缓存管理吧

    杨奉武
  • 【产品动态】智能钛 TI-ONE 重庆地域服务将于3月31日正式下线

            您好!为了给您提供更好的服务,腾讯云智能钛机器学习平台 TI-ONE 上海地域服务和广州地域服务已正式上线。由于运营策略调整,如之前通知:智能钛...

    腾讯智能钛AI开发者
  • 集群间部署 Ehcache 实战

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    剑影啸清寒

扫码关注云+社区

领取腾讯云代金券