一、集群环境规划配置


生产环境不要使用一主多从,要使用多主多从。这里使用三台主机进行测试一台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


微信图片_20220519173259.png



修改后执行以下命令:



测试是否能够连得上:



微信图片_20220519173302.png


三、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执行)


初始化



微信图片_20220519173306.png

初始化成功


创建必要文件



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是否运行





成功后显示如下界面:


微信图片_20220519173309.png


Nginx


9、安装Kubernetes管理界面Dashboard


  Kubernetes可以通过命令行工具kubectl完成所需要的操作,同时也提供了方便操作的管理控制界面,用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。


1、下载安装配置文件recommended.yaml ,注意在https://github.com/kubernetes/dashboard/releases查看Kubernetes 和 Kubernetes Dashboard的版本对应关系。


微信图片_20220519173313.png


版本对应关系



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登录成功后就进入了后台管理界面,原先命令行的操作就可以在管理界面进操作了


微信图片_20220519173315.png


输入token


微信图片_20220519173319.png


管理界面


四、GitLab安装配置


  GitLab是可以部署在本地环境的Git项目仓库,这里介绍如何安装使用,在开发过程中我们将代码上传到本地仓库,然后Jenkins从仓库中拉取代码打包部署。


1、下载需要的安装包,下载地址 https://packages.gitlab.com/gitlab/gitlab-ce/ ,我们这里下载最新版gitlab-ce-14.4.1-ce.0.el7.x86_64.rpm,当然在项目开发中需要根据自己的需求选择稳定版本


微信图片_20220519173322.png


image.png


2、点击需要安装的版本,会提示安装命令,按照上面提示的命令进行安装即可



3、配置并启动Gitlab



4、查看Gitlab状态



5、设置初始登录密码



5、浏览器访问服务器地址,默认是80端口,所以直接访问即可,在登录界面输入我们上面设置的密码root/root1234。


微信图片_20220519173325.png


image.png


微信图片_20220519173329.png


image.png


6、设置界面为中文


User Settings ----> Preferences ----> Language ----> 简体中文 ----> 刷新界面


微信图片_20220519173333.png


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的后台界面了


微信图片_20220519173337.png


jenkins


微信图片_20220519173340.png


sonarqube


5、Jenkins登录初始化


从Jenkins的登录界面提示可以知道,默认密码路径

为/var/jenkins_home/secrets/initialAdminPassword,这里显示的事Docker容器内部的路径,实际对应我们上面服务器设置的路径为/data/docker/ci/jenkins/home/secrets/initialAdminPassword ,我们打开这个文件并输入密码就可以进入Jenkins管理界面


微信图片_20220519173343.png


插件管理界面


6、选择安装推荐插件,安装完成之后,根据提示进行下一步操作,直到进入管理后台界面


微信图片_20220519173346.png


image.png


微信图片_20220519173350.png


image.png


微信图片_20220519173353.png


image.png