k8s学习 — (DevOps实践)第十三章 DevOps 环境搭建

gitlab-ctl restart


### 1.2 页面配置



查看默认密码

cat /etc/gitlab/initial_root_password

登录后修改默认密码 > 右上角头像 > Perferences > Password

修改系统配置:点击左上角三横 > Admin

Settings > General > Account and limit > 取消 Gravatar enabled > Save changes

关闭用户注册功能

Settings > General > Sign-up restrictions > 取消 Sign-up enabled > Save changes

开启 webhook 外部访问

Settings > Network > Outbound requests > Allow requests to the local network from web hooks and services 勾选

设置语言为中文(全局)

Settings > Preferences > Localization > Default language > 选择简体中文 > Save changes

设置当前用户语言为中文

右上角用户头像 > Preferences > Localization > Language > 选择简体中文 > Save changes


### 1.3 配置 Secret



创建 gitlab 默认用户名密码 secret

echo root > ./username
echo wolfcode > password
kubectl create secret generic git-user-pass --from-file=./username --from-file=./password -n kube-devops


### 1.4 为项目配置 Webhook


进入项目点击侧边栏设置 > Webhooks 进入配置即可


URL:在 jenkins 创建 pipeline 项目后  
 触发来源:


1. 推送事件:表示收到新的推送代码就会触发
2. 标签推送事件:新标签推送才会触发
3. 评论:根据评论决定触发
4. 合并请求事件:创建、更新或合并请求触发


添加成功后,可以在下方点击测试按钮查看 jenkins 是否成功触发构建操作


### 1.5 卸载



停止服务

gitlab-ctl stop

卸载 rpm 软件(注意安装的软件版本是 ce 还是 ee)

rpm -e gitlab-ce

查看进程

ps -ef|grep gitlab

干掉第一个 runsvdir -P /opt/gitlab/service log 进程

删除 gitlab 残余文件

find / -name gitlab | xargs rm -rf
find / -name gitlab | xargs rm -rf


## 2 Harbor


### 2.1 安装 Harbor



下载 harbor 安装包

解压后执行 install.sh 就行


### 2.1 配置 Secret



创建 harbor 访问账号密码(需要将下访问的配置信息改成你自己的)

kubectl create secret docker-registry harbor-secret --docker-server=192.168.113.122:8858 --docker-username=admin --docker-password=wolfcode -n kube-devops


## 3 SonarQube


### 3.1 安装 SonarQube



进入 /opt/k8s/devops

kubectl apply -f sonarqube/


### 3.2 生成服务 token



登录到 sonarqube 后台,点击头像 > MyAccount > Security > Generate Tokens > generate 生成 token 并复制


### 3.3 创建 Webhook 服务



点击顶部菜单栏的配置 > 配置(小三角) > 网络调用

Name:wolfcode-jenkins
URL:http://:/sonarqube-webhook/


### 3.4 创建项目



SonarQube 顶部菜单栏 Projects > Create new project > 配置基础信息并保存 > Provide a token > Generate 生成 token > Continue

分别选择 Java / Maven 后,按照脚本配置 Jenkinsfile 中的 sonar 配置信息

mvn sonar:sonar -Dsonar.projectKey=k8s-cicd-demo


## 4 Jenkins


### 4.1 构建带 maven 环境的 jenkins 镜像



构建带 maven 环境的 jenkins 镜像

docker build -t 192.168.113.122:8858/library/jenkins-maven:jdk-11 .

登录 harbor

docker login -uadmin 192.168.113.122:8858

推送镜像到 harbor

docker push 192.168.113.122:8858/library/jenkins-maven:jdk-11


### 4.2 安装 Jenkins



进入 jenkins 目录,安装 jenkins

kubectl apply -f manifests/

查看是否运行成功

kubectl get po -n kube-devops

查看 service 端口,通过浏览器访问

kubectl get svc -n kube-devops

查看容器日志,获取默认密码

kubectl logs -f pod名称 -n kube-devops


### 4.3 安装插件


#### 4.3.1 Build Authorization Token Root


构建授权 token


#### 4.3.2 Gitlab


gitlab 配置插件


#### 4.3.3 SonarQube Scanner



代码质量审查工具

在 Dashboard > 系统管理 > Configure System 下面配置 SonarQube servers

Name:sonarqube # 注意这个名字要在 Jenkinsfile 中用到
Server URL:http://sonarqube:9000
Server authentication token:创建 credentials 配置为从 sonarqube 中得到的 token

进入系统管理 > 全局工具配置 > SonarQube Scanner > Add SonarQube Scanner
Name:sonarqube-scanner
自动安装:取消勾选
SONAR_RUNNER_HOME:/usr/local/sonar-scanner-cli


#### 4.3.4 Node and Label parameter


节点标签参数配置


#### 4.3.5 Kubernetes



jenkins + k8s 环境配置

进入 Dashboard > 系统管理 > 节点管理 > Configure Clouds 页面

配置 k8s 集群
名称:kubernetes
点击 Kubernetes Cloud details 继续配置
Kubernetes 地址:
如果 jenkins 是运行在 k8s 容器中,直接配置服务名即可
https://kubernetes.default
如果 jenkins 部署在外部,那么则不仅要配置外部访问 ip 以及 apiserver 的端口(6443),还需要配置服务证书
Jenkins 地址:
如果部署在 k8s 集群内部:http://jenkins-service.kube-devops
如果在外部:http://192.168.113.120:32479(换成你们自己的)

配置完成后保存即可


#### 4.3.6 Config File Provider


用于加载外部配置文件,如 Maven 的 settings.xml 或者 k8s 的 kubeconfig 等


#### 4.3.7 Git Parameter


git 参数插件,在进行项目参数化构建时使用


### 4.4 创建 gitlab 访问凭证



系统管理 > 安全 > Manage Credentials > System > 全局凭据(unrestricted) > Add Credentials

范围:全局
用户名:root
密码:wolfcode
ID:gitlab-user-pass


## 5 案例:SpringBoot 项目 CICD


### 5.1 配置节点标签


系统管理 > 节点管理 > 列表中 master 节点最右侧的齿轮按钮


修改标签的值与项目中 Jenkinsfile 中 agent > kubernetes > label 的值相匹配


### 5.2 创建流水线项目


在首页点击 Create a Job 创建一个流水线风格的项目


### 5.3 Webhook 构建触发器



----------- Jenkins 流水线项目 Webhook 配置 -----------
在 Jenkins 项目配置下找到构建触发器栏目

勾选 Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.113.121:31216/project/k8s-cicd-demo

上方的 URL 就是用于配置到 gitlab 项目 webhook 的地址

启用 Gitlab 构建触发器:
Push Events:勾选,表示有任意推送到 git 仓库的操作都会触发构建
Opend Merge Request Events:勾选,表示有请求合并时触发构建

点击高级 > Secret Token > Generate 按钮,生成 token

保存以上配置

----------- GitLab 项目 Webhook 配置 -----------
进入 GitLab 项目设置界面 > Webhooks

将上方 Jenkins 中的 URL 配置到 URL 处

将上方生成的 Secret Token 配置到 Secret 令牌

按照需求勾选触发来源,这里我依然勾选 推送事件、合并请求事件

取消 SSL 验证

点击添加 webhook 按钮,添加后可以点击测试确认链接是否可以访问


### 5.4 Pipeline 脚本配置


流水线:选择定义为 Pipeline script from SCM 从远程仓库拉取 Jenkinsfile 配置


配置 SCM 为 Git



Repositories:
Repository URL:仓库地址
Credentials:仓库访问的账号密码
Branches to build:选择拉取哪个分支下的代码
脚本路径:Jenkinsfile 脚本文件名称以及所在路径


### 5.5 检查/创建相关凭证


#### 5.5.1 Harbor 镜像仓库凭证


通过系统管理 > Manage Credentials > 凭据 > System > 全局凭证 > Add Credentials 添加 Username with password 类型凭证


填写好用户名密码后,需要注意凭证 id 要与 Jenkinsfile 中的 **DOCKER\_CREDENTIAL\_ID** 一致


#### 5.5.2 Gitlab 访问凭证


通过系统管理 > Manage Credentials > 凭据 > System > 全局凭证 > Add Credentials 添加 Username with password 类型凭证


填写好用户名密码后,需要注意凭证 id 要与 Jenkinsfile 中的 **GIT\_CREDENTIAL\_ID** 一致


#### 5.5.3 kubeconfig 文件 id



1. 事先安装 Config File Provider 插件

2. 进入系统管理 > Mapped files > Add a new Config 添加配置文件

2.1 Type 选择 Custom file 点击 next

2.2 在 k8s master 节点执行 cat ~/.kube/config 查看文件内容,并将所有内容复制

2.3 将复制的内容贴到 Config file 的 Content 中后点击 Submit 保存并提交

3. 复制保存后文件 id 到 Jenkinsfile 中的 KUBECONFIG_CREDENTIAL_ID 处


#### 5.5.4 SonarQube 凭证



1. 进入 SonarQube 系统,点击右上角用户头像 > 我的账号 进入设置页面

2. 点击 安全 > 填写令牌名称 > 点击生成按钮生成 token > 复制生成后的 token

3. 进入 jenkins 添加凭证管理页面,添加 Secret Text 类型的凭证,将 token 贴入其中

4. 保证凭证 id 与 Jenkinsfile 文件中的 SONAR_CREDENTIAL_ID 一致


### 5.6 添加 SonarQube Webhook



1. 进入 SonarQube 管理页面,点击顶部菜单栏的配置 > 配置(小三角) > 网络调用

2. 点击右侧创建按钮创建新的 Webhook,并填写名称与地址

名称:jenkins

地址:http://jenkins访问ip:端口/sonarqube-webhook/


### 5.7 项目构建



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值