Ubuntu上安装MicroK8s

什么是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停止访问

发表评论

您的电子邮箱地址不会被公开。