minikuber安装问题总结
本人初学k8s,以此文章记录自己minikuber安装遇到的问题,同时分享出来给大家作为参考。文中的大部分方法为网上查询得到,在此文以作总结。文章中解决方法可能有些问题和拙劣,欢迎各位的指正。
前言
本人初学k8s,以此文章记录自己minikuber安装遇到的问题,同时分享出来给大家作为参考。文中的大部分方法为网上查询得到,在此文以作总结。文章中解决方法可能有些问题和拙劣,欢迎各位的指正。
一.minikuber start 安装失败
1.镜像文件下载失败
报错:Unable to find image gcr.io/k8s-minikube/kicbase:v0.0.10 ...
因为有个镜像下载不下来,这个镜像不是从阿里云上下载的 gcr.io/k8s-minikube/kicbase:v0.0.10
解决方案:#
查找替代的镜像,比如anjone/kicbase
#下载对应镜像
docker pull anjone/kicbase
#指定镜像运行,这里本人是root用户运行须加--force
minikube start --vm-driver=docker --base-image="anjone/kicbase" --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --force
2.kubernetes 1.24以上版本不支持docker
有两种方法解决
1.安装cri_docker
2.指定低于1.24的版本进行安装
由于安装cri_docker稍复杂这里选择指定版本进行安装
在minikube start 中加上 --kubernetes-version=v1.22.3,此外不可版本过低否则minikube不兼容。
这里的1.22.3版本本人测试能够正常安装。
minikube start --kubernetes-version=v1.22.3
二.CoreDNS循环检测
kubectl get po -A查看集群报8080被拒绝,集群没有成功启动。
kubectl get po -A查看集群CoreDNS pod状态为CrashLoopBackOff
解决方法
kubectl -n kube-system edit configmap coredns
注释掉带有loop的行,保存退出
删除CoreDNS pod,重新生成
kubectl -n kube-system delete pod -l k8s-app=kube-dns
三.minikube dashboard 仪表盘无法启动
kubectl get po -A查看集群
发现两个dashboard相关的pod镜像拉取失败
查看对应pod的日志
kubectl describe pod pod名 -n pod所属的命名空间
例子
kubectl describe pod dashboard-metrics-scraper-687748788c-vph45 -n kubernetes-dashboard
查看日志,找出没有拉取到的镜像
没有拉取到的镜像为
kubernetesui/dashboard:v2.7.0
kubernetesui/metrics-scraper:v1.0.8
手动拉取镜像(如果手动拉取镜像失败,文章后面有解决方法)
docker pull kubernetesui/dashboard:v2.7.0
将镜像导入minikuber
minikube image load kubernetesui/metrics-scraper:v1.0.4
重新生成pod
kubectl delete pod pod名 -n pod所属的命名空间
解决docker拉取不到镜像
bash -c "$(curl -sSLf https://xy.ggbond.org/xy/docker_pull.sh)" -s 须要拉取的镜像名 保存记录镜像源文件的地址
例子
bash -c "$(curl -sSLf https://xy.ggbond.org/xy/docker_pull.sh)" -s kubernetesui/metrics-scraper:v1.0.8 /dockerImageSouce
成功拉取后会在对应地址下生成名为docker_mirrors.txt文件保存记录镜像源
使用此方法拉取镜像大概率会导致minikube的集群全部失效,原因是因为使用的脚本不断尝试新的镜像源,反复重启docker。具体如何避免重启docker导致集群失效的方法,本人学艺不精无法解决。希望哪位大神能给予指导。
四.minikube dashboard 仪表盘url无法访问
如果是本机启动minikube dashboard一般情况不会出现此问题
虚拟机搭建出现此问题须要配置代理
kubectl proxy --address='0.0.0.0' --accept-hosts='访问仪表盘的IP' --port=指定一个端口号
或直接开启
kubectl proxy --address='0.0.0.0' --disable-filter=true --port=8001
之后将生成的url前面的ip和端口号替换为虚拟机ip和指定的端口号
如果服务器和访问的地址不在一个网络,则须要内外穿透
这里本人使用的是ngrok
在官网下载好对应的tar包,解压安装
ngrok | API Gateway, IoT Device Gateway, Secure Tunnels for Containers, Apps & APIs
注册账户,生成authtoken
ngrok authtoken 加上自己的authtoken
ngrok https 指定的端口
ngrok会生成一个可以访问的url
用此url替换掉minikube dashboard生成的url前面的IP和端口即可成功访问
更多推荐
所有评论(0)