microk8s 是ubuntu 生态里的一个可以单机使用的k8s版本,非常适合学习。这里记录一下,microk8s k8s的安装过程。
准备一台ubuntu虚拟机,这里从ubuntu网站下载了20.x的稳定桌面版。
1. 进入系统后再命令行中输入:
sudo snap install microk8s --classic --channel=1.18/stable
提示数据密码后,进入下载与安装过程。
2. 将当前用户加入microk8s 创建的群组:
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
su - $USER
3. 现在可以用以下命令查看以下microk8s 的状态:
从状态上来看,Microk8s已经运行了,但是主要插件还没有安装。
4. 安装dns 插件
microk8s enable dns
5. 安装dashboard:
microk8s enable dashboard
安装完成后检查一下,是否所有的Pod都成功启动了: microk8s kubectl get pods -A
都成功启动,则显示如下图,如有Image下载失败,可参照注释部分,手动下载。
想要访问dashboard,还需要通过下面的命令获取创建时生成的临时Token:
现在将dashboard 服务映射到本地及端口10443
映射完成后可以通过本地Node端口100443访问dashboard.
或者使用本地安装Poxy方式,执行一下命令,在本地启动一个Proxy服务:
microk8s kubectl proxy
完成后通过本地浏览器,输入以下地址访问:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
注意命名空间是kube-system.
输入上文提到的获取Token的命令:
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d" "-f1)
microk8s kubectl -n kube-system describe secret$token
Copy并黏贴Token,进入Dashboard
6. 安装Metrics Server
主要用来显示CPU,memory等资源消耗。
microk8s enable dashboard
检查pod,发现为起来,同样需要手动pull一下Image,并导入microk8s中,参考Notes部分。
完成后重新登陆dashboard,点击node等资源,即可看到资源使用情况。
Notes:==============================================
使用describe命令检查服务,发现都没有起来, 无法下载pause:3.1等来自k8s 镜像仓库的包。
显示所有的Pod:
microk8s kubectl
查看kubesystem命名空间,所有addon的pod相信信息:
microk8s kubectl describe pod [pod name] -n kubesystem
解决方案: 安装 docker:
sudo apt-get install docker.io
添加用户到docker group, 并使用该用户:
sudo usermod -aG docker ${USER}
su - ${USER}
使用Docker 从其它镜像仓库下载pause:3.1 镜像:
docker pull mirrorgooglecontainers/pause:3.1
下载后修改Tag:
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
将Puase从docker环境中导出为,pause.tar
docker save k8s.gcr.io.pause > pause.tar
将导出的文件,导入microk8s 镜像列表中:
microk8s ctr image import pause.tar
稍后重新检查pod状态。
通常使用 kubectl describe pod [podname] -n kube-system 来查看系统命名空间的pod详情。
相同问题的镜像还包括:
令一种,通过修改镜像地址,来处理以来无法启动问题的方法(网上搜到的,还没有尝试)
--------------------------------------------------------------------------------------------------------------------------------------
修改pod的sandbox
pod的sandbox 默认是 k8s.gcr.io/pause:3.1,这个镜像是无法获取的。需要将sandbox修改为国内可以获取的镜像。
修改/var/snap/microk8s/current/args/kubelet。 添加--pod-infra-container-image=s7799653/pause:3.1
修改/var/snap/microk8s/current/args/containerd-template.toml的plugins -> plugins.cri -> sandbox_image为s7799653/pause:3.1
重启服务
microk8s.stop
microk8s.start
https://www.jianshu.com/p/02fd2540fab2