Jenkins X--(4)如何解决镜像下载不了问题

Jenkins X--(4)如何解决镜像下载不了问题_第1张图片

从这篇文章开始就写写如何在虚拟机中通过minikube搭建一个K8s集群,并在这个K8s集群里安装Jenkins X,体验一把云原生下的CICD框架是如何运行的。在开始介绍搭建K8s、JenkinsX之前,我先说一下如何解决在搭建过程中遇到的一个大难题:镜像下载问题。在使用minikube搭建K8s环境时可以指定国内的阿里云,但Jenkins X只能从国外网站下载了。

在网上也有几种下载的方法:

①自己租用能访问云服务器,然后docker pull & docker save,然后再下载下来使用。

②使用aliyun的镜像地址(这个只能用于使用yum install安装K8s,但如果在安装过程中涉及到docker pull xxx镜像时无效)

③使用github和docker hub共同完成镜像的拉取(经济实惠,性价比高)。

这篇文章也主要介绍如何使用GithubDocker hub实现国外镜像的拉取,为搭建K8s环境、JenkinsX环境以及需要安装任何在国内访问不到镜像时指了一条光明大道。也希望能够帮助想踏上K8s,云原生这条船但苦于镜像无处拉取的臭味相投朋友。在通过github编写代码之前,请先到Docker hub上搜索一下,没准你想要的那个版本别人已经上传上去了,这就省大事了。如果没有再进行后面的步骤。

1、准备条件

①GitHub账号

②Docker Hub账号

2、Github代码库

在GitHub上新建一个代码库,或者直接fork我的k8s代码库,这个代码库专门用来存储需要构建镜像的Dockerfile。不同的镜像最好根据镜像路径创建目录。

Jenkins X--(4)如何解决镜像下载不了问题_第2张图片

添加相应的Dockerfile,如下图所示,内容比较简单,就是拉取一下所需要的镜像。

Jenkins X--(4)如何解决镜像下载不了问题_第3张图片

3、Docker hub上构建镜像

在Docker Hub上新建一个账号,登录后,在账号设置里,设置关联账号,用于关联你自己的代码库,当有变更时能够触发构建。

Jenkins X--(4)如何解决镜像下载不了问题_第4张图片

新建一个镜像仓库,根据需要设置镜像的名字和备注,下面选择已经Connected的Github代码托管平台,选择自己账号下的k8s代码库。在BUILD RULES里添加一条构建规则。选择构建的信息,比如来源类型,哪个分支,镜像版本,以及Dockerfile所在路径(从代码库的根目录开始 使用 / 斜杠。)然后点击Create & Build

Jenkins X--(4)如何解决镜像下载不了问题_第5张图片

等待一段时间(有时会很长。小时级,主要是等待时间,真正构建很快),等构建成功后,在Tags里会看到我们想要的标签版本。此时就可以在服务器上使用docker pull xinglongjian/kube-apiserver:TAG下载镜像了。


Jenkins X--(4)如何解决镜像下载不了问题_第6张图片

4、查看镜像状态

有几种方法可以查看k8s集群或JenkinsX构建过程中到底有没有成功,如果没有成功,是什么原因导致的。我们得先发现问题,才能想办法解决问题。

①在构建时,最好再开一个窗口,tail -f /var/log/message 能够显示出系统的信息,如果出现镜像拉不下来,这里也会显示。

②使用kubectl describe pod xxx -n namespace能够查看这个pod的详细信息,如果镜像拉不下来,这里也会显示。

好了,镜像问题解决了,后续就可以开始环境搭建了。



本人水平有限,难免有错误或疏漏,望大家指正,欢迎留言交流。欢迎关注本人微信公众号:DevOps亮哥

你可能感兴趣的:(Jenkins X--(4)如何解决镜像下载不了问题)