从零开始学Kubernetes-9.使用Minikube搭建K8s环境

608 阅读3分钟

上一节我们了解了如何发布镜像到镜像仓库,这一节来学习如何使用Minikube配置一个Kubernetes集群

在将应用程序打包到镜像里并且将镜像上传到镜像仓库后,我们就可以将应用部署到k8s集群里了。

在部署之前,需要先配置好k8s集群。配置一个完整的、多节点的k8s集群还是比较复杂的,特别是在不熟悉Linux和网络管理的情况下。

正常安装k8s需要跨多个物理机或者虚拟机,并且需要正确地设置网络,以便k8s集群中运行的所有容器能够在一个扁平的网络内互相通信。

本文先介绍如何使用Minikube来搭建一个Kubernetes单节点环境

1.什么是Minikube

Minikube提供了一种非常简单快捷的方式来安装单节点Kubernetes环境。通过它,我们可以测试k8s的大部分功能、可以在本地开发应用程序、可以构建一个本地的沙箱环境。但是不能将其用于生产环境,因为它并不能完整地提供K8s的功能,比如不支持扩容也不能共享等。

Minikube支持的Kubernetes功能如下:

  • DNS
  • NodePorts(可使用“minikube service”命令来管理)
  • ConfigMaps和Secrets
  • 仪表板(Dashboards,minikube dashboard)
  • 容器运行时:Docker、CRI-O rkt、 containerd
  • Enabling CNI(容器网络接口)
  • Ingress
  • LoadBalancer(负载均衡,可以使用“minikube tunnel”命令来启用)
  • Multi-cluster(多集群,可以使用“minikube start -p ”命令来启用)
  • Persistent Volumes
  • RBAC
  • 通过命令配置apiserver和kubele

一般情况下,开发人员都是在自己的手提电脑上使用Minikube来第一次接触Kubernetes的。通过使用Minikube,一个单节点的k8s环境(不能称之为集群)就以VM的形式部署到本地了。Minikube支持大多数操作系统(Linux、Windows和OSX),支持多种虚拟化技术(Virtualbox、KVM、xhyve、VMware Fusion、Hyper-V)。

下图展示了在单个主机上设置Minikube的一些细节:

2.安装Docker

这个在之前发布的《6.运行一个简单的容器》文章中讲解过,此处忽略。

3.安装minikube

本文中我们使用阿里云提供的最新版的minikube。

curl -Lo minikube kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/re…

执上面的命令下载minikube,会在~目录下生成一个没有执行权限的minikube文件

添加执行权限并将其加到PATH路径下:

chmod +x minikube

sudo mv minikube /usr/local/bin

4.启动Minikube

创建docker组:

$ sudo groupadd docker

添加新用户,并加到docker组中:

useradd david

passwd david

sudo usermod -aG docker david && newgrp docker

切换到新用户:

su david

启动minikube:

minikube start

5.安装kubectl

kubectl是Kubenetes的命令行工具,通过它我们可以向Kubenetes集群执行命令,还可以部署应用、监管集群资源以及查看日志。

尽量使用最新版本的kubectl以避免一些莫名其妙的问题。

使用阿里云提供的版本:

curl -Lo kubectl kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-…

添加执行权限并将kubectl加到PATH路径下:

chmod +x ./kubectl

sudo mv ./kubectl /usr/local/bin

使用kubectl查看k8s集群的状态:

kubectl cluster-info

可以看到k8s“集群”已经启动起来了。

运行miniuke ssh命令进入到Minikube VM。然后使用top命令查看VM中运行的进程,可以看到很多k8s组件: