在 Manjaro/Archlinux 上通过 Minikube 在本地学习 Kubernetes
在此页
- 第 1 步 - 安装依赖包
- 第 2 步 - 安装 Docker-Machine 和 KVM2 驱动程序
- 第 3 步 - 安装 Minikube 和 Kubectl
- 第 4 步 - 使用 Minikube 进行 Kubernetes 初始化
- 第 5 步 - 测试部署
- 第 6 步 - 访问 Kubernetes 仪表板
- 参考资料
Minikube 是一种允许您在本地计算机系统上运行 Kubernetes 的工具。 Minikube 将根据您使用的 vm-driver 在 VM 内创建一个单节点 Kubernetes 集群。 Minikube 非常适合学习 Kubernetes,包括测试、开发或培训目的。
在本教程中,我们将逐步向您展示如何在 Manjaro/ArchLinux 上使用 Minikube 在本地创建单节点 Kubernetes 集群。本指南将使用 KVM2 驱动程序在本地实现 Kubernetes 集群,并包含一个 Nginx 服务部署示例。
我们将要做什么:
- 安装依赖包
- 安装 Docker 机器和 KVM2 驱动程序
- 安装 Minikube 和 Kubectl
- 使用 Minikube 进行 Kubernetes 初始化
- 测试部署
- 访问 Kubernetes 仪表板
第 1 步 - 安装软件包依赖项
我们要做的第一步是安装所有依赖包,包括 qemu KVM 和 dnsmasq。
使用下面的 pacman 命令安装 qemu 和 dnsmasq。
sudo pacman -Sy libvirt qemu ebtables dnsmasq

安装完成后,将用户添加到 libvirt 组并重新加载。
sudo usermod -a -G libvirt $(whoami)
newgrp libvirt
现在启动 libvirtd 和 virtlogd 服务,并将这些服务添加到引导时间。
sudo systemctl start libvirtd.service
sudo systemctl enable libvirtd.service
sudo systemctl start virtlogd.service
sudo systemctl enable virtlogd.service
系统上已经安装了 qemu KVM 包和依赖项。

第 2 步 - 安装 Docker-Machine 和 KVM2 驱动程序
Minikube 使用docker-machine 来管理Kubernetes VM,我们需要为其安装docker-machine-driver-kvm2。
使用下面的 pacman 命令安装 docker 机器。
sudo pacman -Sy docker-machine
现在使用 yaourt 命令从 AUR 存储库安装 docker-machine-driver-kvm2。
yaourt -Sy docker-machine-driver-kvm2
等待安装。

第 3 步 - 安装 Minikube 和 Kubectl
对于本指南,我们将从 AUR 存储库安装 Minikube 和 kubectl。
运行下面的 yaourt 命令。
yaourt -Sy minikube-bin kubectl-bin
安装完成后,检查 Minikube 版本和 kubectl 命令。
minikube version
whereis kubectl
kubectl -h

第 4 步 - 使用 Minikube 进行 Kubernetes 初始化
使用下面的 Minikube 命令初始化单节点 Kubernetes 集群。
minikube start --vm-driver kvm2
该命令将下载 Minikube ISO 文件并在系统上创建 KVM 虚拟机。
完成后,您将得到如下结果。

Kubernetes 已使用 Minikube 安装在本地计算机上,通过运行以下所有命令进行检查。
minikube status
kubectl cluster-info
kubectl get nodes
现在您将看到下面的结果。

Kubernetes 集群在 IP 地址为 192.168.39.78 的本地计算机上启动并运行,使用 Kubernetes v1.10 和一个名为 minikube 的单节点作为集群的主节点。
第 5 步 - 测试部署
在此步骤中,我们将通过为 Nginx Web 服务器创建新部署来测试 kubernetes。
创建一个名为 project/nginx/ 的新目录并转到它。
mkdir -p projects/nginx/
cd projects/nginx/
现在为我们的部署配置创建一个新的 yaml 文件。
vim nginx-deployment-service.yaml
并在下面粘贴配置。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
run: nginx-service
spec:
type: NodePort
ports:
- port: 80
protocol: TCP
selector:
app: nginx
保存并退出。
现在通过运行下面的 kubectl 命令来创建部署。
kubectl create -f nginx-deployment.yaml

完成后,检查 Kubernetes 部署。
kubectl get deployments
kubectl describe deployments nginx-deployment
您将在列表中获得 nginx-deployment。

现在检查 Kubernetes 服务。
kubectl get services
kubectl describe services nginx-service
你会看到 NodePort nginx-service 在端口 32274 上运行。

检查 Kubernetes 集群 IP 并使用 curl 命令访问它。
minikube ip
curl -I http://192.168.39.49:32274/
您将从 Nginx Web 服务器获得响应。

下面是我们从网络浏览器访问时的结果。

第 6 步 - 访问 Kubernetes 仪表板
Minikube 提供了一个命令来访问在 Minikube 集群中运行的 Kubernetes 仪表板。
运行下面的命令。
minikube dashboard
该命令将使用系统上的默认 Web 浏览器打开 Kubernetes 仪表板。
下面是 Kubernetes 仪表板。

使用 Minikube 在本地计算机 Manjaro/Archlinux 上安装 Kubenrnetes 已成功完成。