系列目录:
- 从零开始搭建k8s集群环境(一)——搭建镜像存储服和镜像服
- 从零开始搭建k8s集群环境(二)——构建Kubernetes安装包
- 从零开始搭建k8s集群环境(三)——搭建Master节点
- 从零开始搭建k8s集群环境(四)——添加Node节点
- 从零开始搭建k8s集群环境(五)——安装Pod网络
- 从零开始搭建k8s集群环境(六)——部署Dashboard UI
- 从零开始搭建k8s集群环境(七)——部署Ingress服务
- 从零开始搭建k8s集群环境(番外)——纯手动部署全套
标题很绕,镜像存储服和镜像服是两个概念:
- 镜像存储服:
docker registry
,用来存(push
)取(pull
)自己的image的服务器 - 镜像服:
docker mirror
,用来加速Docker pull
镜像文件的服务器
为什么一来就先搭建 Docker
镜像服务器呢,这么说吧:如果你也在几天时间经过无数次搭建、重置K8s环境的体验,然后感受到国内镜像下载的龟速速度之后,你也会先搭一个本地的镜像服务器的。
- 镜像存储服使用的是:VMware大厂的Harbor, 这里使用的是离线安装版,我已经受尽下载失败带来的羞辱了!!!另外,目前最新的 Harbor-v1.5.0 有一个巨大的不能忍的BUG,所以这里就用 Harbor-v1.4.0 做例子。
- 镜像服使用的是:Registry,虽然 Harbor 内部也是 Registry,但由于 Harbor 部署为mirror模式就是去了 push 能力,所以 Mirror 单独起容器部署。
注:由于目前
Harbor
如果配置其内置的Registry
为镜像模式,Harbor
会丧失push
能力,所以目前只能分开配置存储服和镜像服。
硬件环境说明:
- Master:VBox虚拟机/Centos_7.5-1804/192.168.56.100
- Images:VBox虚拟机/Centos_7.5-1804/192.168.56.101
- Node01:VBox虚拟机/Centos_7.5-1804/192.168.56.102
软件环境说明:
- docker-ce-17.03.2
- kubernetes-v1.9.0
- harbor-v1.4.0
这里主要操作 Images
机器。
1、安装Docker
Docker 使用离线版 docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
下载地址: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
1 | wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm |
启动docker
1 | systemctl enable docker |
查看docker版本
1 | $ docker version |
2、安装docker-compose
直接下载
1 | curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose |
python-pip安装
1 | # 安装python-pip |
源码安装
1 | wget https://github.com/docker/compose/archive/master.zip |
查看docker-compose版本
1 | $ docker-compose version |
二、部署镜像私服Harbor
Harbor官方网址: https://github.com/vmware/harbor
1、下载Harbor离线安装包
1 | wget https://storage.googleapis.com/harbor-releases/release-1.4.0/harbor-offline-installer-v1.4.0.tgz |
官方镜像站:http://harbor.orientsoft.cn/
2、解压
1 | tar zxvf harbor-offline-installer-v1.4.0.tgz |
3、修改配置文件
1 | cd harbor |
配置文件参数说明(转自:http://www.cnblogs.com/jicki/p/5737369.html)
1 | ## Configuration file of Harbor |
此处我们只修改 hostname=192.168.56.101
(私有仓库主机ip)
4、更新生成相关配置文件
1 | ./prepare |
5、安装
1 | # 启动 Docker |
完成完成之后就可以在浏览器中输入:http://192.168.56.101 进入Harbor
的 Web管理后台
(80
是 docker-compose.yml
配置文件中nginx容器的默认端口),默认的帐号密码是admin
, Harbor12345
(如果你没有修改harbor.cfg
中的 harbor_admin_password
)
查看 compose
状态
1 | docker-compose ps |
没意外的话,应该全部状态都是UP
需要修改web访问端口的话,先在 harbor.cfg
中hostname=192.168.56.101:5000
,再把 docker-compose.yml
中的 80
端口改为 5000
,如下(只贴修改部分)
1 | proxy: |
更多关于 docker-compose
命令相关参数选项可 查看官网
6、上传镜像到私有仓库
因为是本地环境,所以基本都是使用 HTTP
协议;哪台主机需要上传镜像到刚搭建的私有仓库,就需要更改 docker
进程启动的相关参数
A、修改docker守护进程启动参数
参数新增 --insecure-registry 192.168.56.101
1 | vi /etc/sysconfig/docker |
注意:
1 | --registry-mirror=https://olzwzeg2.mirror.aliyuncs.com |
是用于 docker
镜像下载加速,如何设置镜像加速
B、重启docker进程
重启进程前应先停掉所有在运行的容器
1 | systemctl restart docker |
C、修改docker镜像tag标签
格式为: ip/项目名/image名字:版本号
(项目名为 harbor
中的项目名)
1 | $ docker images |
D、登陆并push
1 | $ docker login 192.168.56.101:80 |
上传完后在 harbor web
界面的 test
项目下则可以看到刚上传的镜像了
7、从私有仓库下载镜像
在需要下载镜像的机器上,同样需要修改 docker
进程参数(跟上传镜像到私有仓库一样操作进行修改)
1 | docker pull 192.168.56.101/library/busybox:latest |
8、管理
1、修改端口号
对于 http
发布方式,Harbor
默认使用 80
端口,需要修改端口按照如下方法:
修改 docker-compose.yml
中 nginx
的配置,将 80:80
的第一个 80
改为自定义的端口号。
修改 common/templates/registry/config.yml
,在 auth
部分 $ui_url
后面加上自定义的端口号
修改完成后,运行下面的命令重新配置 Harbor
1 | docker-compose down |
对于第一次安装,直接修改完所有配置文件后执行 install.sh
就可以了。
2、停止/启动Harbor
1 | docker-compose stop |
3、卸载Harbor
执行如下步骤彻底删除Harbor,以便重新安装:
1 | sudo docker-compose down |
4、修改Harbor配置
首先删除 container
,修改配置,然后运行 install.sh
重新启动container,命令如下:
1 | docker-compose down |
三、部署镜像服Registry
由于 Harbor
已经包含了 registry
的镜像,我这里就将就使用这个镜像来部署了。
配置
创建一个存储 registery
配置的文件夹:
1 | mkdir registry |
拷贝 harbor
内 registry
的配置文件
1 | cp harbor/common/config/registry/* registry/ |
向 config.yml
追加代理配置
1 | cat>>registry/config.yml<<'EOF' |
创建一个 docker-compose.yml
文件,内容如下:
1 | version: '2' |
管理
1 | # 启动 |
使用
同阿里云设置,地址改一下就OK。 我这里地址根据配置文件就是:
1 | http://192.168.56.101:5000 |