使用Minikube在Linux上本地运行Kubernetes-现在具有Kubernetes 1.14支持

作者: 伊霍尔·德沃雷茨基(Ihor Dvoretskyi),开发倡导者,云原生计算基金会

几天前,Kubernetes社区宣布 Kubernetes 1.14,Kubernetes的最新版本。伴随着它,Kubernetes项目的一部分Minikube最近击中了 1.0里程碑,它支持 Kubernetes 1.14 默认。

Kubernetes是分布式Cloud Native计算领域的真正赢家(也是事实上的标准)。虽然它可以处理 5000个节点 在单个集群中,使用Kubernetes在单台计算机(例如笔记本电脑,开发人员工作站等)上进行本地部署是一种越来越普遍的场景。

几周前,我在Twitter上进行了一项民意调查,要求社区指定他们在Linux上本地运行Kubernetes的首选选项:

这是有关Linux上本地部署选项的系列文章的第一篇,它将介绍Minikube,这是社区中最受欢迎的,用于在本地计算机上运行Kubernetes的解决方案。

迷你库 是跨平台,社区驱动的 Kubernetes 分发,主要用于本地环境。它部署了一个单节点集群,这对于在本地主机上启动并运行一个简单的Kubernetes集群是一个极好的选择。

迷你库设计为用作虚拟机(VM),默认的VM运行时为 虚拟盒子。同时,可扩展性是Minikube的关键优势之一,因此可以将其与 司机 在VirtualBox之外。

默认情况下,Minikube使用Virtualbox作为运行时来运行虚拟机。 Virtualbox是一个跨平台的解决方案,可以在包括GNU / Linux,Windows和macOS在内的各种操作系统上使用。

同时,QEMU / KVM是Linux原生的虚拟化解决方案,与Virtualbox相比可能会带来更多好处。例如,在GNU / Linux服务器上使用KVM要容易得多,因此,您不仅可以在具有GUI的Linux工作站或便携式计算机上运行单节点Minikube集群,还可以在远程无头服务器上运行单节点Minikube集群。

不幸的是,Virtualbox和KVM不能同时使用,因此,如果您已经在一台机器上运行KVM工作负载,并且还希望在其中运行Minikube,则首选使用KVM minikube驱动程序。

在本指南中,我们将重点介绍在Ubuntu 18.04上使用KVM驱动程序运行Minikube(我使用的是在 packet.com

迷你库架构(资料来源:kubernetes.io)

迷你库架构(资料来源:kubernetes.io)

免责声明

这不是Minikube的官方指南。您可能会在官方网站上找到有关运行和使用Minikube的详细信息 网页,其中涵盖了不同的用例,操作系统,环境等。相反,本指南的目的是提供在Linux上运行带有KVM的Minikube的简单明了的指南。

先决条件

  • 您喜欢的任何Linux(在本教程中,我们将使用Ubuntu 18.04 LTS,并且以下所有说明均适用于该Linux。如果您喜欢使用其他Linux发行版,请查看相关文档)
  • libvirt 和QEMU-KVM已安装并正确配置
  • The Kubernetes CLI (Kubectl) for operating the Kubernetes cluster

QEMU / KVM和libvirt安装

注意:如果已经安装,请跳过

在继续之前,我们必须验证主机是否可以运行基于KVM的虚拟机。可以使用 好的 工具,可在Ubuntu上使用。

sudo apt install cpu-checker && sudo 好的

If you receive the following output after running 好的, you can use KVM on your machine (otherwise, please check out your configuration):

$ sudo 好的
INFO: /dev/kvm exists
KVM acceleration can be used

Now let's install KVM and libvirt and add our current user to the libvirt group to grant sufficient permissions:

sudo apt install libvirt-clients libvirt-daemon-system qemu-kvm \
    && sudo usermod -a -G libvirt $(whoami) \
    && newgrp libvirt

After installing libvirt, you may verify the host validity to run the virtual machines with virt-host-validate tool, which is a part of libvirt.

sudo virt-host-validate

Kubectl(Kubernetes CLI)安装

注意:如果已经安装,请跳过

为了管理Kubernetes集群,我们需要安装 Kubectl,Kubernetes CLI工具。

The recommended way to install it on Linux is to download the pre-built binary and move it to a directory under the $PATH.

curl -LO //storage.googleapis.com/kubernetes-release/release/$(curl -s //storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl \
    && sudo install Kubectl /usr/local/bin && rm Kubectl

另外,可以使用多种不同的方法来安装kubectl(例如,以.deb或snap软件包的形式安装-请查看 Kubectl文档 找到最适合您的)。

迷你库安装

迷你库 KVM驱动程序安装

VM驱动程序是Minikube本地部署的基本要求。在本教程中选择使用KVM作为Minikube驱动程序时,让我们使用以下命令安装KVM驱动程序:

curl -LO //storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \
    && sudo install docker-machine-driver-kvm2 /usr/local/bin/ && rm docker-machine-driver-kvm2

迷你库安装

现在让我们安装Minikube本身:

curl -LO //storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
    && sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

验证Minikube安装

在继续之前,我们需要验证Minikube是否已正确安装。最简单的方法是检查Minikube的状态。

minikube version

要使用KVM2驱动程序:

现在,让我们使用Minikube和KVM运行本地Kubernetes集群:

minikube start --vm-driver kvm2

将KVM2设置为Minikube的默认VM驱动程序

如果将KVM用作我们计算机上Minikube的单个驱动程序,则将其设置为默认驱动程序并使用较少的命令行参数运行Minikube更为方便。以下命令将KVM驱动程序设置为默认值:

minikube config set vm-driver kvm2

现在,让我们像往常一样运行Minikube:

minikube start

验证Kubernetes安装

让我们检查Kubernetes集群是否已启动并正在运行:

Kubectl get nodes

现在,让我们运行一个简单的示例应用程序(在本例中为nginx):

Kubectl create deployment nginx --image=nginx

我们还要检查Kubernetes Pod是否已正确配置:

Kubectl get pods

截屏

[![asciicast](//asciinema.org/a/237106.svg)](//asciinema.org/a/237106)

下一步

至此,已经在本地计算机上适当地设置和配置了带有Minikube和KVM的Kubernetes集群。

要继续,您可以在项目网站上查看Kubernetes教程:

另外值得一看的是Linux基金会/云原生计算基金会的“ Kubernetes入门”课程,该课程可在EDX上免费获得: