一、集群环境规划配置
生产环境不要使用一主多从,要使用多主多从。这里使用三台主机进行测试一台Master(172.16.20.111),两台Node(172.16.20.112和172.16.20.113)
1、设置主机名
CentOS7安装完成之后,设置固定ip,三台主机做相同设置
三台主机ip分别设置好之后,修改hosts文件,设置主机名
2、时间同步
开启chronyd服务
设置开机启动
测试
3、禁用firewalld和iptables(测试环境)
4、禁用selinux
5、禁用swap分区
注释掉 /dev/mapper/centos-swap swap
6、修改linux的内核参数
7、配置ipvs
安装ipset和ipvsadm
添加需要加载的模块(整个执行)
添加执行权限
执行脚本
查看是否加载成功
以上完成设置之后,一定要执行重启使配置生效
二、Docker环境安装配置
1、安装依赖
docker依赖于系统的一些必要的工具:
2、添加软件源
3、安装docker-ce
4、启动服务
5、查看安装版本
启动服务使用docker version查看一下当前的版本:
6、 配置镜像加速
通过修改daemon配置文件/etc/docker/daemon.json加速,如果使用k8s,这里一定要设置 "exec-opts": ["native.cgroupdriver=systemd"]。 "insecure-registries" : ["172.16.20.175"]配置是可以通过http从我们的harbor上拉取数据。
7、安装docker-compose
如果网速太慢,可以直接到 https://github.com/docker/compose/releases 选择对应的版本进行下载,然后上传到服务器/usr/local/bin/目录。
注意:(非必须设置)开启Docker远程访问 (这里不是必须开启的,生产环境不要开启,开启之后,可以在开发环境直连docker)
修改ExecStart,添加 -H tcp://0.0.0.0:2375
修改后执行以下命令:
测试是否能够连得上:
三、Harbor私有镜像仓库安装配置(重新设置一台服务器172.16.20.175,不要放在K8S的主从服务器上)
首先需要按照前面的步骤,在环境上安装Docker,才能安装Harbor。
1、选择合适的版本进行下载,下载地址:
2、解压
3、配置
4、将hostname改为当前服务器地址,注释掉https配置。
5、执行安装命令
6、查看安装是否成功
7、harbor的启动停止命令
8、访问harbor管理台地址,上面配置的hostname, http://172.16.20.175 (默认用户名/密码: admin/Harbor12345):
三、Kubernetes安装配置
1、切换镜像源
2、安装kubeadm、kubelet和kubectl
3、配置kubelet的cgroup
4、启动kubelet并设置开机启动
5、初始化k8s集群(只在Master执行)
初始化
初始化成功
创建必要文件
6、加入集群(只在Node节点执行)
在Node节点(172.16.20.112和172.16.20.113)运行上一步初始化成功后显示的加入集群命令
在Master查看集群状态
7、安装网络插件(只在Master执行)
镜像加速:修改kube-flannel.yml文件,将quay.io/coreos/flannel:v0.15.0 改为 quay.mirrors.ustc.edu.cn/coreos/flannel:v0.15.0
执行安装
再次查看集群状态,(需要等待一段时间大概1-2分钟)发现STATUS都是Ready。
8、集群测试
使用kubectl安装部署nginx服务
查看服务
服务显示service/nginx的PORT(S)为80:32605/TCP, 我们在浏览器中访问主从地址的32605端口,查看nginx是否运行
成功后显示如下界面:
Nginx
9、安装Kubernetes管理界面Dashboard
Kubernetes可以通过命令行工具kubectl完成所需要的操作,同时也提供了方便操作的管理控制界面,用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。
1、下载安装配置文件recommended.yaml ,注意在https://github.com/kubernetes/dashboard/releases查看Kubernetes 和 Kubernetes Dashboard的版本对应关系。
版本对应关系
2、修改配置信息,在service下添加 type: NodePort和nodePort: 30010
注释掉以下信息,否则不能安装到master服务器
新增nodeName: master,安装到master服务器
3、执行安装部署命令
4、查看运行状态命令,可以看到service/kubernetes-dashboard 已运行,访问端口为30010
5、创建访问Kubernetes Dashboard的账号
6、查询访问Kubernetes Dashboard的token
7、在页面访问Kubernetes Dashboard,注意一定要使用https,https://172.16.20.111:30010 ,输入token登录成功后就进入了后台管理界面,原先命令行的操作就可以在管理界面进操作了
输入token
管理界面
四、GitLab安装配置
GitLab是可以部署在本地环境的Git项目仓库,这里介绍如何安装使用,在开发过程中我们将代码上传到本地仓库,然后Jenkins从仓库中拉取代码打包部署。
1、下载需要的安装包,下载地址 https://packages.gitlab.com/gitlab/gitlab-ce/ ,我们这里下载最新版gitlab-ce-14.4.1-ce.0.el7.x86_64.rpm,当然在项目开发中需要根据自己的需求选择稳定版本
image.png
2、点击需要安装的版本,会提示安装命令,按照上面提示的命令进行安装即可
3、配置并启动Gitlab
4、查看Gitlab状态
5、设置初始登录密码
5、浏览器访问服务器地址,默认是80端口,所以直接访问即可,在登录界面输入我们上面设置的密码root/root1234。
image.png
image.png
6、设置界面为中文
User Settings ----> Preferences ----> Language ----> 简体中文 ----> 刷新界面
image.png
7、Gitlab常用命令
五、使用Docker安装配置Jenkins+Sonar(代码质量检查)
实际项目应用开发过程中,单独为SpringCloud工程部署一台运维服务器,不要安装在Kubernetes服务器上,同样按照上面的步骤安装docker和docker-compose,然后使用docker-compose构建Jenkins和Sonar。
1、创建宿主机挂载目录并赋权
2、新建Jenkins+Sonar安装脚本jenkins-compose.yml脚本,这里的Jenkins使用的是Docker官方推荐的镜像jenkinsci/blueocean,在实际使用中发现,即使不修改插件下载地址,也可以下载插件,所以比较推荐这个镜像。
3、在jenkins-compose.yml文件所在目录下执行安装启动命令
安装成功后,展示以下信息
4、查看服务的启动情况
我们发现 jenkins端口映射到了18081 ,但是sonarqube没有启动,查看日志发现
sonarqube文件夹没有权限访问,日志上显示容器目录的权限不够,但实际是宿主机的权限不够,这里需要给宿主机赋予权限
执行重启命令
再次使用命令查看服务启动情况,就可以看到jenkins映射到18081,sonarqube映射到19000端口,我们在浏览器就可以访问jenkins和sonarqube的后台界面了
jenkins
sonarqube
5、Jenkins登录初始化
从Jenkins的登录界面提示可以知道,默认密码路径
为/var/jenkins_home/secrets/initialAdminPassword,这里显示的事Docker容器内部的路径,实际对应我们上面服务器设置的路径为/data/docker/ci/jenkins/home/secrets/initialAdminPassword ,我们打开这个文件并输入密码就可以进入Jenkins管理界面
插件管理界面
6、选择安装推荐插件,安装完成之后,根据提示进行下一步操作,直到进入管理后台界面
image.png
image.png
image.png