什么是MicroK8s
MicroK8s是一款功能强大,重量轻,可靠的生产型Kubernetes衍生版。 它是一种企业级Kubernetes发行版,具有较小的磁盘和内存占用空间,同时提供开箱即用的生产级附加组件,如Istio,Knative,Grafana,Cilium等。MicroK8s是最小,最快的多节点Kubernetes。
非常适合使用在小型VPS或者IoT设备,如树莓派等。不建议使用MicroK8s来学习Kubernetes。
官方网站:https://microk8s.io
准备环境
Ubuntu 20.04 LTS
开始安装
1. 安装过程非常简单
Ubuntu直接使用snap安装即可,但snap国内没有源,安装会比较慢。
sudo snap install microk8s --classic
这里提供下两种snap包离线安装的方式:
1) 使用可以上网的Ubuntu先进行下载
snap download core18 snap download microk8s
然后将下载下的文件复制到目标主机再使用以下命令安装(包版本可能更新与本文不一致)
sudo snap ack core18_2344.assert
sudo snap install core18_2344.snap
sudo snap ack microk8s_3052.assert
sudo snap install microk8s_3052.snap --classic
2) 若没有可上网的Ubuntu机器,则可使用api下载
sudo apt install curl jq -y
curl -H ‘Snap-Device-Series: 16’ http://api.snapcraft.io/v2/snaps/info/core18 | jq -r ‘.[“channel-map”][0].download.url’ | xargs wget -c
curl -H ‘Snap-Device-Series: 16’ http://api.snapcraft.io/v2/snaps/info/microk8s | jq -r ‘.[“channel-map”][0].download.url’ | xargs wget -c
以上命令会自动下载amd64架构最新稳定版的core18和microk8s包,然后将下载下来的snap文件复制到目标机,执行以下命令安装(文件名可能与本文不一致)
sudo snap install CSO04Jhav2yK0uz97cr0ipQRyqg0qQL6_2344.snap –dangerous
sudo snap install EaXqgt1lyCaxKaQCU349mlodBkDCXRcg_3052.snap –dangerous –classic
2. 配置防火墙
没有防火墙可忽略此步
sudo ufw allow in on cni0 && sudo ufw allow out on cni0
sudo ufw default allow routed
3. 部分image准备
由于一些众所周知的原因,k8s.gcr.io在国内无法正常访问,因此要预先准备相关的容器镜像
sudo cat << EOF > ~/pull_microk8s_images.sh
#!/bin/bash
images=(
k8s.gcr.io/pause:3.1=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1
k8s.gcr.io/metrics-server/metrics-server:v0.5.2=registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.5.2
k8s.gcr.io/ingress-nginx/controller:v1.1.0=registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.1.0
)
OIFS=\$IFS;
for image in \${images[@]};do
IFS=’=’
set \$image
microk8s.ctr image pull \$2
microk8s.ctr image tag \$2 \$1
microk8s.ctr image rm \$2
IFS=\$OIFS;
done
EOF
sudo bash ~/pull_microk8s_images.sh
4. 配置用户权限
sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube newgrp microk8s
5. 启用插件
microk8s enable dns dashboard storage
6. 启动服务并确认状态
microk8s start
microk8s status
7. 访问dashboard
现获得bashboard的Cluster IP
microk8s.kubectl describe -n kube-system service/kubernetes-dashboard | grep IP:
用以下命令获得token,并打开浏览器访问上面获得Cluster IP: https://<cluster ip>
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1) microk8s kubectl -n kube-system describe secret $token
或者用更简单的方法
microk8s dashboard-proxy
根据生成的url和token直接访问
8. 启用prometheus
sudo microk8s enable prometheus
microk8s kubectl port-forward -n monitoring service/prometheus-k8s --address 0.0.0.0 9090:9090
执行完以上命令后,不要退出,通过http://127.0.0.1:9090来访问prometheus,按Ctrl+C停止访问
microk8s kubectl port-forward -n monitoring service/grafana –address 0.0.0.0 3000:3000
执行完以上命令后,不要退出,通过http://127.0.0.1:3000来访问grafana,默认用户名和密码都是admin,按Ctrl+C停止访问