本文主要是介绍dockerhub被墙后macos如何搭建本地minikube的环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
macos上如何安装
最近因为dockerhub在已经在国内被墙了,因此在安装minikube 存在一些镜像拉不下来的情况,当然最好的办法是直接使用翻墙vpn即可使用。
但是因为我目前的电脑是公司电脑,不允许安装此类软件,因此我要想办法如何把镜像down下来。
macos上安装minikube 相对几个命令搞定。
0.报错信息
➜ ~ kubectl get pods -n kubernetes-dashboard NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-b5fc48f67-hp846 0/1 ImagePullBackOff 0 2m27s kubernetes-dashboard-779776cb65-ll9w6 0/1 ImagePullBackOff 0 2m27s
具体报错信息
kubectl get events -n kubernetes-dashboard
8m21s Warning Failed pod/dashboard-metrics-scraper-65457555b7-cp557 Error: ErrImagePull 4m46s Normal BackOff pod/dashboard-metrics-scraper-65457555b7-cp557 Back-off pulling image "kubernetesui/metrics-scraper:v1.0.1" 8m7s Warning Failed pod/dashboard-metrics-scraper-65457555b7-cp557 Error: ImagePullBackOff 4m22s Normal Scheduled pod/dashboard-metrics-scraper-65457555b7-jff4r Successfully assigned kubernetes-dashboard/dashboard-metrics-scraper-65457555b7-jff4r to minikube 2m50s Normal Pulling pod/dashboard-metrics-scraper-65457555b7-jff4r Pulling image "kubernetesui/metrics-scraper:v1.0.1" 2m49s Warning Failed pod/dashboard-metrics-scraper-65457555b7-jff4r Failed to pull image "kubernetesui/metrics-scraper:v1.0.1": Error response from daemon: Get "https://registry-1.docker.io/v2/": EOF
ImagePullBackOff
状态表示 Kubernetes 无法拉取指定的 Docker 镜像。这通常是因为镜像名称或标签不正确,或者 Kubernetes 无法访问镜像仓库。以下是一些可能的解决方法:
1. 检查镜像名称和标签
确保你使用的镜像名称和标签是正确的。例如,kubernetes-dashboard
和 dashboard-metrics-scraper
的镜像名称和标签是否正确。
你可以通过以下命令查看 Pod 的详细信息,包括镜像名称和标签:
kubectl describe pod <pod-name> -n kubernetes-dashboard
2. 确保镜像存在于镜像仓库
确保镜像存在于你指定的镜像仓库中。你可以尝试手动拉取镜像以验证:
docker pull kubernetesui/metrics-scraper:v1.0.8 docker pull kubernetesui/dashboard:v2.0.0
3. 使用 Minikube 加载本地镜像
如果你已经在本地 Docker 环境中拉取了镜像,可以使用 Minikube 将本地镜像加载到 Minikube 集群中:
minikube image load kubernetesui/metrics-scraper:v1.0.8 minikube image load kubernetesui/dashboard:v2.0.0
4. 配置镜像拉取策略
确保你的 Pod 配置中使用了正确的镜像拉取策略。你可以在 Pod 的 YAML 文件中设置 imagePullPolicy
为 IfNotPresent
或 Never
,以确保 Kubernetes 使用本地镜像而不是尝试从远程仓库拉取。
例如:
spec:containers:- name: kubernetes-dashboardimage: kubernetesui/dashboard:v2.0.0imagePullPolicy: IfNotPresent- name: dashboard-metrics-scraperimage: kubernetesui/metrics-scraper:v1.0.8imagePullPolicy: IfNotPresent
5. 检查网络连接
确保你的 Kubernetes 集群能够访问外部网络。如果你在防火墙或代理后面,可能需要配置网络设置以允许访问 Docker 镜像仓库。
6. 查看事件日志
查看事件日志以获取更多关于镜像拉取失败的详细信息:
kubectl get events -n kubernetes-dashboard
7. 手动更新镜像
如果你已经在本地 Docker 环境中拉取了镜像,可以手动更新 Deployment 以使用本地镜像:
kubectl set image deployment/kubernetes-dashboard kubernetes-dashboard=kubernetesui/dashboard:v2.0.0 -n kubernetes-dashboard kubectl set image deployment/dashboard-metrics-scraper dashboard-metrics-scraper=kubernetesui/metrics-scraper:v1.0.8 -n kubernetes-dashboard
8.解决方案
因此我选用了从可以下载到此镜像的地方下载镜像
docker pull kubernetesui/metrics-scraper:v1.0.8 docker images docker save -o metrics-scraper.tar kubernetesui/metrics-scraper:v1.0.8 docker load -i metrics-scraper.tar docker save -o dashboard.tar kubernetesui/dashboard:v2.0.0 docker load -i dashboard.tar
然后,我导入到镜像仓库后,使用第七步,直接手动更新了 Deployment 以使用本地镜像
’在执行
minikube dashboard
这篇关于dockerhub被墙后macos如何搭建本地minikube的环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!