从0搭建部署 Dokcer、Rancher、K8S、Harbor
从0开始搭建部署 Dokcer、Rancher、K8S、Harbor
配置要求:
- 虚拟机系统CentOS 7,之前版本不支持docker
- 内存4G,2C,有条件的建议double
- 一套虚拟机VMware fusion ,有条件的可以直接阿里云走起
正文:
1. 虚拟机:
我是在本机虚拟机内操作的,云产品选手略过前面几步
- 在VM上安装虚拟机驱动,设置虚拟机最低配置4G2C,硬盘20就可以
- 固定虚拟机网络IP,防止后续操作时IP变化影响集群不可用
命令: ifconfig 查询虚拟机IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33 固定静态IP的文件
图上位置为虚拟机ip
BOOTPROTO="static" #修改为静态,默认为dhcp
IPADDR="192.168.98.131" #静态ip地址
NETMASK="255.255.255.0" #子网掩码,固定这么写
GATEWAY="192.168.98.2" #网关地址,前三个网段取ip地址,最后一位填2
DNS1="192.168.98.2" #DNS服务器,前三个网段取ip地址,最后一位填2
修改后:wq保存,然后重启网络 : service network restart
修改后测一下网络是否正常,ping www.baidu.com
3. 以上完成后,建议备份虚拟机,避免后续安装过程出错,找不出问题,重复操作以上步骤
2.Docker
- 卸载旧版本,新建虚拟机无需操作
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
- 安装依赖
sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
- 切换镜像源
sudo yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
- 设置yum软件源缓存并安装docker-ce
sudo yum makecache fast sudo yum install docker-ce
- 启动docker
sudo systemctl start docker //启动Docker
- 设置开机启动
sudo systemctl enable docker //设置开机启动
- 测试 HelloWorld镜像
docker run hello-world
- 配置镜像加速
sudo vi /etc/docker/daemon.json { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com" ] }
PLS:阿里云选手,配置阿里云镜像加速器
替换registry-mirrors的value值为上面加速器地址
- 重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
3.Rancher
我们通过Rancher来构建K8s的集群,Rancher是为使用容器的公司打造的容器管理平台,通过 Rancher,企业不再需要使用一系列开源软件从零开始构建一个容器服务平台。同时 Rancher 还提供了一个全栈容器部署和管理平台,用于管理 Docker 和 Kubernetes。
2.Rancher 主要组件和功能图示
Rancher 提供的功能:
支持 K8s 集群的身份验证和基于角色的访问控制(RBAC),使管理员可以全方面的控制所有集群的访问。
支持 K8s 资源监控,并在需要时发送告警,同时可以将容器内的日志发送给外部日志系统,还可以通过应用商店与 Helm 集成。
支持与外部的 CI/CD 流水线系统进行对接,同时 Rancher 本身也提供了简单易用的流水线来帮忙我们自动部署和升级工作负载。
安装:
- 安装Rancher镜像
docker pull rancher/rancher
- 查看镜像列表
docker image ls
- 添加宿主机挂在目录
mkdir -p /docker_volume/rancher_home/rancher mkdir -p /docker_volume/rancher_home/auditlog
- 启动容器
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 \ -v /docker_volume/rancher_home/rancher:/var/lib/rancher \ -v /docker_volume/rancher_home/auditlog:/var/log/auditlog \ --name rancher rancher/rancher
- 查看启动容器状态
docker container ls
-
到这里Rancher就安装好了,端口默认80,可直接访问自己的ip登录看一下,初始密码自己设置
PLS:我这里在安装的时候遇到了服务和容器已经启动,但访问Rancher可视化界面一直失败,有此问题的朋友可以参考这篇:docker启动rancher后访问不了Clusters界面_樵浅的博客-CSDN博客使用docekr部署rancher的时候,无法登陆rancher界面https://blog.csdn.net/Zxiaobinggan/article/details/125077218
原因大概是安装的docker服务版本和Rancher版本不融合,实际在启动容器时,并没有在docker服务基础上运行,指定版本后可以登录 -
进到主页面先添加集群
- 选择自定义
- 输入名字直接下一步
- 第一次添加需要都勾选
- 之后再终端执行命令,然后点击完成,
这里可能会重复失败,操作慢一些,终端操作完后等一下再去界面Done
。 - 等待安装完成显示
Active
- 选择自定义
4.Harbor
Harbor是VMware公司开源的企业级DockerRegistry项目,其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。简单来说就是Docker的registry V2
结构图奉上:
主要组件包括proxy,他是一个nginx前端代理,主要是分发前端页面ui访问和镜像上传和下载流量,上图通过深蓝色线标志;ui提供了一个web管理页面,当然还包括了一个前端页面和后端API,底层使用mysql数据库;registry是镜像仓库,负责存储镜像文件,当镜像上传完毕后通过hook通知ui创建repositry,上图通过红色线标志,当然registry的token认证也是通过ui组件完成;adminserver是系统的配置管理中心附带检查存储用量,ui个jobservice启动时候需要加载adminserver的配置,通过灰色线标志;jobservice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log,上图通过紫色线标志;log是日志汇总组件,通过docker的log-dirver把日志汇总到一起,通过蓝色线条标志
安装:
这里我们采用离线方式安装,需要github下载两个项目包,在线下载很慢会出错,建议RMB玩家使用迅雷或者云会员下载
版本自选,不要选最新版不稳定,下载docker-compose看一下自己的docker版本,如果是19.x,docker-compose选择20.x +,下载时选择-rc2不要选错,下载之后重命名docker-compose,这里有个坑,不改名安装时不识别
下载好Harbor后,解压
打开harbor.yml,修改配置文件里的hostname为自己虚拟机ip,端口默认80,和Rancher冲突,改一个,因为https需要证书,所以本机测试时,建议注掉
修改完成后,再上传CentOS,这里上传可以用XFTP,或者直接虚连接上传也可
scp ./harbor/* root@192.168.98.131:~/harbor/ #如果上传失败手动创建目录
scp ./docker-compose root@192.168.98.131:/usr/local/bin/docker-compose #上传到bin目录
chmod 777 /usr/local/bin/docker-compose # 授权docker-compose操作权限
上传到指定目录下后,无需安装命令,直接查版本
docker-compose version
这样docker-compose就完成了
Harbor安装很容易,确保配置文件修改好,进到目录下,直接执行两个启动项就可以,这里也有个坑,执行启动项时,无响应,原因是没有赋予执行权限
cd ~/harbor/ #因为之前我是拷贝到这个目录,其它目录同理。
./prepare #准备环境
./install.sh #安装harbor
chomd +x prepare
chomd +x install.sh
执行后等待安装完成就OK了,我这里没有遇到报错,不赘述了
登录:ip端口直接访问,用户名:admin 密码:
Harbor12345配置文件yml里可以修改
PLS:追加一个问题,次日重启虚拟机后,容器服务依然在,但可视化界面登录又失败了,很无奈,解决方法暂时使用重启docker
systemctl restart docker
这样只能解决Rancher,要登录Harbor还是不行,所以这里我单独重启了一下Harbor,可以检查一下容器启动时,是否使用的-d后台运行,如果Harbor一直处于假死状态,可以做一个开机自启动脚本
[root@ecsnode01 harbor]# docker-compose down --关闭harbor服务
[root@ecsnode01 harbor]# ./install.sh --重启Harbor服务
[Step 0]: checking installation environment ...
Note: docker version: 1.12.6
Note: docker-compose version: 1.17.1
[Step 1]: loading Harbor images ...
Loaded image: goharbor/registry-photon:v2.6.2-v1.6.2
Loaded image: goharbor/notary-server-photon:v0.5.1-v1.6.2
Loaded image: goharbor/clair-photon:v2.0.6-v1.6.2
Loaded image: goharbor/chartmuseum-photon:v0.7.1-v1.6.2
Loaded image: goharbor/harbor-log:v1.6.2
Loaded image: goharbor/harbor-db:v1.6.2
Loaded image: goharbor/harbor-jobservice:v1.6.2
Loaded image: goharbor/nginx-photon:v1.6.2
Loaded image: goharbor/notary-signer-photon:v0.5.1-v1.6.2
Loaded image: goharbor/harbor-migrator:v1.6.2
Loaded image: goharbor/harbor-adminserver:v1.6.2
Loaded image: goharbor/harbor-ui:v1.6.2
Loaded image: goharbor/redis-photon:v1.6.2
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
✔ ----Harbor has been installed and started successfully.----
更多推荐
所有评论(0)