img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

※ 各章节重要知识点

k8s学习 — 各章节重要知识点

1 Gitlab

GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。

Gitlab 是被广泛使用的基于 git 的开源代码管理平台, 基于 Ruby on Rails 构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab 主要针对 group 和 project 两个维度进行代码和文档管理, 其中 group 是群组, project 是工程项目, 一个 group 可以管理多个project , 可以理解为一个群组中有多项软件开发任务, 而一个 project 中可能包含多个 branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。

1.1 安装 Gitlab

# 下载安装包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm

# 安装
rpm -i gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm

# 编辑 /etc/gitlab/gitlab.rb 文件
# 修改 external\_url 访问路径 http://<ip>:<port>
# 其他配置修改如下
gitlab_rails['time\_zone'] = 'Asia/Shanghai'
puma['worker\_processes'] = 2
sidekiq['max\_concurrency'] = 8
postgresql['shared\_buffers'] = "128MB"
postgresql['max\_worker\_processes'] = 4
prometheus_monitoring['enable'] = false

# 更新配置并重启
gitlab-ctl reconfigure
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://<sonar ip>:<sonar port>/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


![img](https://i-blog.csdnimg.cn/blog_migrate/c85bc66aac30296047c139588c3b1053.png)
![img](https://img-blog.csdnimg.cn/img_convert/befb449ac6a3e93c91098346342a01f8.png)
![img](https://img-blog.csdnimg.cn/img_convert/9d790a744198381aac8aa4269b95ba48.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**

片转存中...(img-SFYya4yO-1715816543059)]
[外链图片转存中...(img-wgb33BKI-1715816543059)]
[外链图片转存中...(img-mqJqYCy7-1715816543059)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐