1 我变了

上一个系列,我们结尾的时候,笔者说了一句说要出一个基于k8s部署镜像仓库的系列,但是实践过程,出现一点问题,所以系列改成基于harbor部署私有仓库,虽然主题变了,但是两个主题想要解决的问题是一样:都是为了让k8s拉取镜像不会那么麻烦了。

2 说真的

基于harbor部署私有仓库,你需要了解harbor是什么。

  • 虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。
  • Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。
  • 它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能,完全的支持中文。




3 还是想告诉你

本来不想说的,但是我担心有些人不死心,就是想使用k8s来部署镜像仓库,所以我还是把我个人基于k8s部署镜像仓库的历程分享一下吧。

是这样的,要使用k8s来部署镜像仓库,需要先启用k8s的应用商店,所以下面的两种方式其实都是启动k8s应用商店的方式

3.1 k8s部署镜像仓库方式1

通过kubespher平台来修改配置以启用应用商店:

左上角:平台管理-集群管理-自定义CRD中-搜索栏中输入 clusterconfiguration -点击出现的项目-找到openpitrix,修改值为true ,点击右下角,更新 。顺利的话,点击 平台管理-集群管理-服务组件  右边栏目中就可以看到添加的项目,但是不顺利的话,就需要查看日志看下错误了。

注意【更新及安装需要一定时间,可以用下面 的日志查看命令来看更新进度】

下面这个命令,直接在kubesphere的右下角的控制工具kubectl里头运行即可。

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

很不幸,作者安装失败了,报错如下:

TASK [common : debug] **********************************************************
ok: [localhost] => {
    "msg": [
        "1. check the storage configuration and storage server",
        "2. make sure the DNS address in /etc/resolv.conf is available",
        "3. execute 'kubectl logs -n kubesphere-system -l job-name=minio-make-bucket-job' to watch logs",
        "4. execute 'helm -n kubesphere-system uninstall ks-minio && kubectl -n kubesphere-system delete job minio-make-bucket-job'",
        "5. Restart the installer pod in kubesphere-system namespace"
    ]
}

TASK [common : fail] ***********************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "It is suggested to refer to the above methods for troubleshooting problems ."}

PLAY RECAP *********************************************************************
localhost                  : ok=34   changed=22   unreachable=0    failed=1    skipped=87   rescued=0    ignored=0

结果:失败

上面这个问题,通过多种方式都没有解决掉,不得已只能转战第二种方式

3.2 k8s部署镜像仓库方式2

方式2是通过修改kk的配置文件,然后重新用kk来安装k8s和kubesphere,如果能装好,会自动装好我们要的应用商店。

运行命令vim  config-sample.yaml修改config-sample.yaml

openpitrix:

    enabled: true # 找到这个配置将"false" to "true"

应用修改配置,需要执行如下命令

./kk create cluster -f config-sample.yaml

上面这种方式,我其实非常的嫌弃的。因为会出现一种问题,这个问题我描述你们要是没经历过根本就不懂是什么问题。

但是也是在下载openpitrix的时候报错,所以也失败了。

结果:失败