最小化K8s环境部署之MicroK8s¶
一 背景¶
MicroK8s是目前最小、最快与Kubernetes全面兼容的集群系统,主要用于工作站和小型团队,但是目前镜像并没有与snap打包在一起,还在gcr.io上,国内下载上还是有问题。MicroK8s适合离线开发、原型开发和测试,尤其是运行VM作为小、便宜、可靠的k8s用于CI/CD。支持arm架构,也适合开发 IoT 应用,通过 MicroK8s 部署应用到小型Linux设备上。
二 MicroK8s特点¶
- MicroK8轻巧 :团队成员希望最小的Kubernetes用于笔记本电脑和工作站的开发。 MicroK8s提供了轻量级的独立Kubernetes,在Ubuntu上运行时,它与Azure AKS,Amazon EKS和Google GKE兼容。
- MicroK8很简单 :MicroK8s通过单软件包安装来最大程度地减少管理和操作,该软件包没有活动部件(开箱即用),并且包括所有依赖项。
- MicroK8是安全的 :对于所有安全问题,更新始终可用,并且可以立即应用或安排更新以适合企业的维护周期。 此外,MicroK8具有最新的隔离功能,可在工作站上安全运行。 通过将Kubernetes,Docker.io,iptables和CNI的所有二进制文件打包在单个snap软件包中,可以实现这种隔离。
- MicroK8是最新的 :MicroK8s跟踪上游Kubernetes,并在上游Kubernetes发行的同一天发布beta,发行候选版本和最终版本。 您可以跟踪最新的Kubernetes或坚持使用从1.10开始的任何Kubernetes版本。 当出现新的主要Kubernetes版本时,您可以自动升级或使用单个命令进行升级。
- MicroK8是全面的 :MicroK8s包括精选的清单,用于常见的Kubernetes功能和服务。 MicroK8带有Docker注册表,使用户可以在笔记本电脑上制作,推送和部署容器。
三 安装部署¶
3.1 运行环境¶
- 操作系统 Ubuntu 18.04 LTS 或16.04 LTS 环境 (或其他支持
snapd
的操作系统- see the snapd documentation)。 - 至少 20G 磁盘空间, (建议)4G 内存。
$ snap install microk8s --classic
2021-08-06T16:56:05+08:00 INFO Waiting for automatic snapd restart...
microk8s (1.21/stable) v1.21.3 from Canonical✓ installed
四 使用¶
$ microk8s kubectl get nodes
NAME STATUS ROLES AGE VERSION
vm-0-17-ubuntu NotReady <none> 2m7s v1.21.3-3+90fd5f3d2aea0a
$ microk8s kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 2m27s
# 检测服务状态
$ microk8s status --wait-ready
# 启用相关组建
$ microk8s enable dashboard dns registry istio
# 查看k8s
$ microk8s kubectl get all --all-namespaces
# 访问dashboard
$ microk8s dashboard-proxy
# 使用以有kubectl管理
$ sudo microk8s kubectl config view --raw > $HOME/.kube/config
# 查看插件
$ microk8s.status
使用宿主机kubectl管理集群
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl &&\
chmod +x ./kubectl &&\
$ mv ./kubectl /usr/bin/kubectl
$ microk8s kubectl config view --raw > $HOME/.kube/config
$ kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-f7868dd95-s4c5m 0/1 Pending 0 5m33s
kube-system calico-node-8mxlc 0/1 Init:0/3 0 5m27s
五 其他¶
与Minikube不同,IT管理员或开发人员可以使用MicroK8s创建多节点集群。如果MicroK8s在Linux上运行,甚至不需要VM。在Windows和macOS上,MicroK8s使用名为Multipass的VM框架为Kubernetes集群创建VM。