前言
在之前的文章中已经搭建好了
k8s
集群跟KubeSphere
的可视化系统,但是在实际应用上我们服务的镜像推送都需要在集群的所有节点上手动进行docker build
,非常不方便。所以我们需要一个私有的镜像仓库。
容器仓库的选择
- 公共仓库
- docker hub
- 云镜像仓库
- 私有仓库
- registry
- Harbor
在企业应用上肯定会选择私有仓库,这时候就需要在registry
跟Harbor
中选择一个了。
registry
是docker官方
提供的私有镜像仓库,但是没有图形页面,没有权限控制,并且每次传输都会传输全量文件。Harbor
是VMware
的开源项目,提供了管理图形界面
,基于角色的访问控制(Role Based Access Control),镜像远程复制同步,AD/lDAP集成,以及审计日志等企业用户需求的功能,同时还 原生支持中文。
Harbor
相对registry
具有了许多在应用上的优点,所以Harbor是更多企业的选择,本篇就是要为k8s集群集成我们的私有Harbor
仓库
配置依赖
正常Harbor
仓库应该选择一个独立的服务器进行安装部署,保证那边集群产生了问题也不会影响到私有镜像仓库,但是我们也是实验的场景,可以选择安装在k8s
资源足够的集群上。
更新软件包
代码语言:javascript复制yum -y install yum-utils device-mapper-persistent-data lvm2
安装docker(如果在k8s集群上安装就不需要,已经安装了docker)
指定yum镜像
代码语言:javascript复制yum-config-manager --add-repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
代码语言:javascript复制yum list docker-ce --showduplicates|sort -r # 查询docker版本
yum -y install docker-ce-18.09.8 # 安装指定版本,根据生产环境自行选择
安装docker-compose
使用docker compose
可以一键安装Harbor,但是要做高可用的仓库还是手工部署。
下载docker-compose
执行下载命令:
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加可执行权限
代码语言:javascript复制chmod x /usr/local/bin/docker-compose
查看docker-compose版本
代码语言:javascript复制docker-compose -version
这里的docker-compose
版本是1.27.4
安装Harbor
下载Harbor
代码语言:javascript复制wget https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-offline-installer-v2.1.1.tgz
上面下载地址特别慢的话使用下面的国内代理地址下载
代码语言:javascript复制wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz
下载速度还是很快的
解压Harbor
代码语言:javascript复制tar xvf harbor-offline-installer-v2.5.3.tgz -C /home/ && cd /home/harbor/
配置Harbor
编辑harbor.yml文件
代码语言:javascript复制vim harbor.yml
修改下图内容的配置,一个是配置https证书,一个是配置data数据目录。hostname参数
修改成本机的hostname名称
创建配置的目录
创建配置文件中放置证书跟data的文件目录
代码语言:javascript复制mkdir -p /home/harbor/certs /home/harbor/data
生成SSL证书(如果有证书无需生成)
如果有自己的证书可以将证书crt
跟key
文件放到上面配置的目录,如果没有就按此步骤自签一个
生成证书
代码语言:javascript复制openssl req -newkey rsa:4096 -nodes -sha256 -keyout /home/harbor/certs/harbor.key -x509 -out /home/harbor/certs/harbor.crt -subj /C=CN/ST=BJ/L=BJ/O=DEVOPS/CN=harbor.wangzy.com -days 3650
参数解释
代码语言:javascript复制- req 产生证书签发申请命令
- newkey 生成新私钥
- rsa:4096 生成秘钥位数
- nodes 表示私钥不加密
- sha256 使用SHA-2哈希算法
- keyout 将新创建的私钥写入的文件名
- x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
- out 指定要写入的输出文件名
- subj 指定用户信息
- days 有效期(3650表示十年)
再次查看certs目录就存在了证书
启动Harbor
代码语言:javascript复制./install.sh
等待安装完成
如下图安装完成
验证Harbor
代码语言:javascript复制安装完成后访问
https://服务器ip地址
,访问的时候会有一个警告,点击高级
选择忽略继续访问
即可,然后就到了我们的Harbor登陆页
默认管理员用户名:admin 密码:Harbor12345 修改的话可以修改harbor.yml的配置
登陆成功就到了Harbor的主页了
如果想要通过自签的域名访问需要配置本机的hosts,将服务器的ip指向我们签发的域名
harbor.wangzy.com
,具体怎么操作搜一下怎么配置hosts就行