MicroK8s 是一个完全兼容的 Kubernetes 发行版,具有比大多数其他发行版更小的 CPU 和内存占用空间。它是从头开始设计的,旨在为计算能力和内存有限的设备提供完整的 Kubernetes 体验。
MicroK8s 拥有许多功能:
- 大小:它的内存和存储要求只是许多全尺寸 Kubernetes 集群所需的一小部分。事实上,它被设计为在单个节点/计算机上运行。
- 简单性:通过安装最低限度的功能集,MicroK8s 使管理集群变得简单。只需一个命令,我们就可以在几分钟内创建一个功能齐全的 Kubernetes 集群。
- 最新:MicroK8s 在同一天从核心 Kubernetes 项目中提取所有修复和更新,确保其集群几乎立即拥有最新的可用更改。
- 开发人员工作站:可以自动配置新的开发人员工作站,并确保开发人员有一个合适的 Kubernetes 环境来进行测试。
- CI/CD 服务器:使用可重复和固定的执行环境自动构建。
- IoT 设备:具有远程连接的小型内存设备可以运行自己的 Kubernetes 集群。
安装
MicroK8s 附带适用于每个主要操作系统的安装程序:Windows、Linux 和 macOS。
默认情况下,MicroK8s 在安装期间禁用大部分功能。因此,我们必须使用microk8s enable命令启用我们想要的功能。
下面是我们可能希望启用以获取传统 Kubernetes 设置的常见附加组件列表:
- cert-manager : 云原生证书管理
- 仪表板:Kubernetes 仪表板
- dns : CoreDNS 服务
- ingress:用于外部访问服务的入口控制器
- metallb:负载均衡器控制器
- metrics-server:用于 API 访问服务指标的 Kubernetes 指标服务器
- prometheus:用于监控和日志记录的 Prometheus 操作员
- rbac:用于授权的基于角色的访问控制
使用microk8s status命令检查 Microk8s 集群的状态
可以停止和启动 MicroK8s 集群:
$ microk8s stop |
当在笔记本电脑或其他没有专用电源的设备上运行时,MicroK8s 团队建议在不需要时关闭集群以节省电量。
部署应用
随着集群的启动和运行,我们现在可以使用几种不同的方式部署应用程序。
首先,我们可以使用传统的 YAML 文件来部署工作负载:
$ microk8s kubelet apply -f /path/to/deployment.yaml |
此外,启用 Helm 功能后,我们可以使用 Helm 图表部署应用程序:
$ microk8s helm install elasticsearch elastic/elasticsearch |
仪表板
要启用仪表板和入口附加组件,我们需要运行:
$ microk8s enable dashboard ingress |
如果我们已经启用了仪表板附加组件,我们可以通过首先启动端口转发来查看它:
$ microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443 |
然后我们可以使用 URL https://localhost:10443查看仪表板。要登录,我们需要一个令牌或完整的kubeconfig:
# Generate a token |
请注意,集群使用自签名证书,这将导致 Web 浏览器警告。
高可用性
MicroK8s 自称是生产级的,因此只要有多个节点可用,它也支持高可用性。从命令行添加节点很容易:
$ microk8s add-node |
这提供了我们启动新节点并将它们加入集群所需的所有信息。
从我们希望加入此集群的节点,运行:
$ microk8s join 192.168.64.2:25000/16715886fa58dcf561acbd6df44c614d/14b471cb0bb3 |
默认情况下,新节点是工作节点并运行控制平面,尽管可以将新节点添加为工作节点。工作节点可以调度工作负载但不提供高可用性。至少需要三个节点来运行控制平面以实现高可用性。