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的时候报错,所以也失败了。
结果:失败