GitOps实践 | 云原生Tekton CI流水线,从Gitlab到镜像构建以及企业微信消息通知
关注回复【学习交流群】加入【安全开发运维】答疑交流群请朋友们【多多点击文中的广告】,支持作者更新更多文章。目录:0x00 企业中使用云原生CI工具Tekton从git克隆源代码到镜像构建实践1.前言简述描述: 由于作者的工作及下一步学习计划的需要,作者将原本企业中的Jenkins持续集成环境,换为了更适合在云原生中进行CI-持续集成工具,即 Tekton 是一个开源的云原生 CICD(持续集成和持


关注回复【学习交流群】加入【安全开发运维】答疑交流群
请朋友们【多多点击文中的广告】,支持作者更新更多文章。
完整原文链接:
目录:

0x00 企业中使用云原生CI工具Tekton从git克隆源代码到镜像构建实践
1.前言简述
描述: 由于作者的工作及下一步学习计划的需要,作者将原本企业中的Jenkins持续集成环境,换为了更适合在云原生中进行CI-持续集成工具,即 Tekton 是一个开源的云原生 CICD(持续集成和持续交付/部署)解决方案,允许开发人员通过云平台和本地构建、测试和部署系统。前面我们已经介绍过了所以此处不再累述,后续作者也会更新ArgoCD在企业中的实践,从而完成完整的GitOps(CI/CD-持续集成交付环境),请大家多多关注支持。

此处,作者使用自己编写的一个简单JavaSpring项目进行演示,使用Task以及TaskRuns对象带领各位看友,简单尝试从git clone、到 build、再到镜像构建,最后利用企业微信机器人进行消息的通知,并学习一些基本的Tekton资源清单编写语法,针对后续Pipeline以及PipelineRuns有着极大的帮助,可直接应用在企业的CI持续集成流水线场景中。
温馨提示:此处作者并未使用官方文档通过hub库中来安装git clone[https://hub.tekton.dev/tekton/task/git-clone]、以及镜像构建 Kaniko[https://hub.tekton.dev/tekton/task/kaniko] 等task,这一点不同于在CSDN中的文章,其次是因为作者为了企业内部信息安全,而直接采用自行构建镜像以及Google官方的构建镜像工具Kaniko镜像,此外也带领各位看友,从最基础的环境配置起,提高学习收获成就感。
温馨提示: 为了尊重作者的实践劳动成功和防止爬虫恶意爬取,此篇实践文章为付费文章,以支持激励作者能够持之以恒的更新更多SevDevOps的实践文章,希望大家理解支持,谢谢,完整的流水线脚本请在文末自取。
好,实践出真知。
2.前置环境
描述: 在进行实践前我们需要配置DNS解析(硬解析也可以),以及我们用到前面我们安装的Gitlab(代码仓库)以及Harbor(镜像仓库)分别创建devops用户和devops机器账户,具体操作如下:
此处实践环境依赖于前一篇实践文章,若还没安装Tekton以及Gitlab(代码仓库)以及Harbor(镜像仓库)的朋友可访问如下文章学习实践,已安装的朋友直接进行下一步。
前置知识与环境说明
# K8S 高可用集群主机 x 4
系统发行版: Ubuntu 20.04
Kubernetes v1.23.17
Tekton -> Pipelines v0.44.4 | Triggers v0.22.2 | Dashboard v0.35.1
# Gitlab 代码仓库 & Harbor 镜像仓库主机 x 2
系统发行版: Kylin Linux Advanced Server V10
gitlab-server 10.20.176.250 | Gitlab v16.2.0
harbor-server 10.20.176.251 | Harbor v2.8.2
Docker v24.0.4 | containerd v1.6.21 | Docker-compose v2.20.2
-
GitOps实践|快速在银河麒麟KylinOS国产系统部署最新Gitlab-CE企业私有代码仓库
-
GitOps实践|快速在银河麒麟KylinOS国产系统部署最新Harbor企业私有镜像仓库
-
云原生 | 下一代CI/CD工具,Tekton入门部署指南
-
云原生 | 下一代CI/CD工具,Tekton牛刀小试自动化流水线
Gitlab 环境操作说明
Step 1.登录搭建的私有Gitlab代码服务器,创建一个devops用户。

Step 2.登录devops用户创建一个hello-world的仓库,在实际环境中只需将此用户加入到项目成员中权限设置为Reporter或者Guest即可, 此处作者使用git将测试代码已经上传到Gitlab仓库中Master分支,注意最新Gitlab以及Github已经将当前默认分支master更改为main主分支,所以在拉取时不要弄错了。

温馨提示: 若需还有朋友不了解或者熟悉Git的请参考作者的此篇文章【Git学习之路汇总】[https://blog.weiyigeek.top/2018/1-1-1.html#Git学习之路汇总]。
Harbor 环境操作说明
Step 1.登录Harbor后台管理页面,创建两个项目一个公共的devops项目(用于存放公共镜像),一个私有的app项目(用于存放企业中代码项目的构建镜像)。
Step 2.创建一个系统级机器人账户 'robot$devops',针对项目分别选择赋予所需权限,注意创建成功后只有唯一一次复制当前令牌的机会,所以要保存好此令牌哟!

K8S 集群节点主机操作
Step 1.此处作者为了演示就直接向节点中的主机添加Gitlab以及Harbor网址的硬解析,通常情况下企业内部应该有自己的DNS服务器可以在上面配置A记录解析即可。
tee -a /etc/hosts <<'EOF'
10.20.176.250 gitlab.weiyigeek.top
10.20.176.251 harbor.weiyigeek.top
EOF
Step 2.在Master主节点机器上,创建一个ssh认证公密钥,操作如下下述所示, Gitlab 公密钥认证配置参考地址: https://docs.gitlab.com/ee/user/ssh.html
# 1.生成ssh公密钥,注意密钥的名称,作者设置为 ssh-privatekey 这是为了后续 tekton 使用的方便。
ssh-keygen -t ed25519 -C "devops@weiyigeek.top" -f ~/.ssh/ssh-privatekey
# Generating public/private ed25519 key pair.
# Enter passphrase (empty for no passphrase): [密码为空]
# Enter same passphrase again: [密码为空]
# Your identification has been saved in /root/.ssh/ssh-privatekey
# Your public key has been saved in /root/.ssh/ssh-privatekey.pub
# 2.将指定的密钥文件设置保存在 ~/.ssh/config 文件
tee -a ~/.ssh/config <<'EOF'
# Private GitLab instance
Host gitlab.weiyigeek.top
PreferredAuthentications publickey
IdentityFile ~/.ssh/ssh-privatekey
StrictHostKeyChecking no
# Github instance
Host github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/ssh-privatekey
StrictHostKeyChecking no
EOF
Step 3.将生成的ssh公钥文件复制到Gitlab里devops用户设置中SSH密钥中,加入后使用ssh -T命令进行验证。
# 1.查看生成的 ssh-privatekey.pub 公钥文件
cat ~/.ssh/ssh-privatekey.pub
ssh-ed25519 AAAAC3NzaC1lZD**隐藏打码**slTC+I21vt7NvUzGC4RNc+ devops@weiyigeek.top
# 2.验证与私有gitlab代码仓库的连接情况,若配置成果
ssh -T git@gitlab.weiyigeek.top -i ~/.ssh/ssh-privatekey
Welcome to GitLab, @devops!

完整原文:
更多推荐
https://mp.weixin.qq.com/s/PVcZ95lFISx5el1d4tHw0g



所有评论(0)