上一节我们了解了如何发布镜像到镜像仓库,这一节来学习如何使用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组件: