如果你的网络环境好,装microk8s还是很省事的,比安装kubernetes要省事。
网络环境不好的话,都麻烦,要手动处理镜像拉不下来的问题。
1. 安装
sudo snap install microk8s --classic
2. 设置kubectl别名
sudo snap alias microk8s.kubectl kubectl
3. 修改pause:3.1的镜像地址
这个镜像我这的网络必拉不下来
3.1 修改/var/snap/microk8s/current/args/kubelet
sudo vim /var/snap/microk8s/current/args/kubelet
在最下面添加
--pod-infra-container-image=s7799653/pause:3.1
3.2 修改/var/snap/microk8s/current/args/containerd-template.toml
sudo vim /var/snap/microk8s/current/args/containerd-template.toml
找到sandbox_image,替换镜像地址
sandbox_image = "s7799653/pause:3.1"
4. 重启microk8s
microk8s stop
microk8s start
5. 启用 dns和 dashboard,这个过程里会拉镜像,有点慢
microk8s enable dns dashboard
6. 重启microk8s
microk8s stop
microk8s start
7. 查看microk8s状态,解决镜像问题
这次安装metrics-server镜像拉不下来,下面有解决方法
7.1查看运行状态
microk8s status
image.png
7.2查看pot情况
都是running就是正常的
kubectl get po -n kube-system
image.png
发现我这里metrics-server-5f8f64cb86-8fpp4状态是ImagePullBackOff,不正常,要处理
7.3查看单个pot的log
sudo kubectl describe pods metrics-server-5f8f64cb86-8fpp4 -n kube-system
结果是
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Failed 3m45s (x5 over 7m52s) kubelet Error: ImagePullBackOff
Normal Pulling 3m31s (x4 over 9m) kubelet Pulling image "k8s.gcr.io/metrics-server/metrics-server:v0.5.2"
Warning Failed 3m1s (x4 over 7m52s) kubelet Failed to pull image "k8s.gcr.io/metrics-server/metrics-server:v0.5.2": rpc error: code = Unknown desc = failed to pull and unpack image "k8s.gcr.io/metrics-server/metrics-server:v0.5.2": failed to resolve reference "k8s.gcr.io/metrics-server/metrics-server:v0.5.2": failed to do request: Head "https://k8s.gcr.io/v2/metrics-server/metrics-server/manifests/v0.5.2": dial tcp 142.251.8.82:443: i/o timeout
Warning Failed 3m1s (x4 over 7m52s) kubelet Error: ErrImagePull
Normal BackOff 2m45s (x6 over 7m52s) kubelet Back-off pulling image "k8s.gcr.io/metrics-server/metrics-server:v0.5.2"
发现是镜像没拉下来
到dockerhub上搜了下metrics-server:v0.5.2找到一个同步的镜像,手动拉一下这个镜像
docker pull v5cn/metrics-server:v0.5.2
修改镜像名,改为和microk8s要拉的镜像名一致
docker tag v5cn/metrics-server:v0.5.2 k8s.gcr.io/metrics-server/metrics-server:v0.5.2
导出该镜像
docker save -o metrics-server.tar k8s.gcr.io/metrics-server/metrics-server:v0.5.2
把该镜像导入microk8s中
microk8s.ctr image import metrics-server.tar
再重启microk8s
microk8s stop
microk8s start
再查看pot状态
kubectl get po -n kube-system
image.png
都Running了,真TM费劲
如果有拉不下来的镜像,就用这种方式
8. 修改web的端口
kubectl edit svc -n kube-system kubernetes-dashboard
把spec.type修改为NodePort
在spec.ports中添加nodePort: 30000
image.png
9. 打开页面
是https的,https://ip:30000
点高级,再点继续前往 image.png
9. 获取token,进入dashboard
为了找怎么获取token,也就花了亿点点时间,查了或多帖子,都不行,可能是microk8s更新了,以前的获取token的方法不能用。
这个是好用的
microk8s dashboard-proxy
最下面显示了token
image.png
这个是启动了dashboard代理,可以用10443端口访问
token粘贴出来之后,就可以把dashboard-proxy停掉了,还用之前的https://ip:30000访问
在集群的Nodes里,可以看到当前节点
网友评论