DevOps基础设施配置之jenkins对接K8S

这篇具有很好参考价值的文章主要介绍了DevOps基础设施配置之jenkins对接K8S。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我们在构建K8S基于Jenkins的devops流水线的时候,有一个很重要的步骤就是将Jenkins和K8S对接,这样才能充分运用Jenkins与K8S的特性【pod slave】完成流水线的运行,本文主要记录如何配置Jenkins与K8S集群的对接

1.创建kubernetes cloud

提示:因为创建过程中需要使用token凭证,因此可以先参考步骤1.2.4先行创建

1.1 进入Configure Clouds

根据jenkins版本不同,进入Configure Clouds的路径也不一样,但基本上都可以通过[Manage Jenkins]–>[Manage Nodes and Clouds]或者[Manage Nodes]–>[Configure Clouds]进入

*如果出现如下界面:jenkins k8s,kubernetes,jenkins,kubernetes

请安装插件:jenkins k8s,kubernetes,jenkins,kubernetes

1.2配置Kubernetes Cloud details

jenkins k8s,kubernetes,jenkins,kubernetes
主要有三个地方需要自定义修改
jenkins k8s,kubernetes,jenkins,kubernetes

1.2.1 Kubernetes 地址:

默认是https://kubernetes.default,也可以,我习惯写全,当然,如果Jenkins部署在K8S集群外部,则需要写K8S apis-server的真实地址

1.2.2 禁用htts证书检查

如果你觉得不安全,自行根据网上教程配置,但在内网集群内的话,基本不会有外部威胁

1.2.3 Kubernetes 命名空间

这里就是用来运行pod slave的namespace

1.2.4 凭据

相当于你链接到K8S集群,在集群内进行操作的权限凭证,配置方式有多种,这里选择serviceaccount的方式

rbac授权
Jenkins通过kubernetes-plugin对k8s进行操作,需要在k8s内提前进行rbac授权。这里我们为了方便管理,我们为其绑定cluster-admin角色。当然也可以进一步缩小使用权限,这个根据各个公司的管理制度自行确定

(1)创建serviceaccounts

kubectl create sa devops-jenkins

(2)对jenkins做cluster-admin绑定

kubectl create clusterrolebinding devops-jenkins-role-binding --clusterrole cluster-admin --serviceaccount=devops:devops-jenkins

(3)kubernetes-plugin与k8s连接时,并不是直接使用serviceaccount,而是通过token。因此我们需要获取serviceaccount:jenkins对应的token。

查看sa

[root@master pkg]# kubectl get sa -n devops
NAME             SECRETS   AGE
default          1         7d18h
devops-jenkins   1         7d2h
jenkins          1         7d18h

查看secret

[root@master pkg]# kubectl describe sa devops-jenkins -n devops
Name:                devops-jenkins
Namespace:           devops
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   devops-jenkins-token-7wnbx
Tokens:              devops-jenkins-token-7wnbx
Events:              <none>

获取token

[root@master pkg]# kubectl describe secrets devops-jenkins-token-7wnbx -n devops
Name:         devops-jenkins-token-7wnbx
Namespace:    devops
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: devops-jenkins
              kubernetes.io/service-account.uid: bd379a1d-7e8f-4e4c-aa92-76383c1397ba

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1099 bytes
namespace:  6 bytes
token:      eyJhbGciO...  ###这里就是所需的token

使用获取到的token创建jenkins凭证
jenkins k8s,kubernetes,jenkins,kubernetes

2.存储kubeconfig

在K8S集群的devops中,我们经常会将构建以及部署过程放在临时pod中执行,即所谓的slave pod,因此在部署过程中需要将目标集群的kubeconfig传递到slave pod中,这样就可以直接在pod中执行kubectl apply deploy.yaml --kubeconfig=config

2.1 安装Config File Provider Plugin

直接在Plugin Manager中按照名称搜索安装即可

2.2 配置kubeconfig

依次进入Manage Jenkins–>Managed files–>Add a new Config
jenkins k8s,kubernetes,jenkins,kubernetes
选择Custom file,ID可自行配置或使用默认,然后点击下一步
jenkins k8s,kubernetes,jenkins,kubernetes
从K8S集群获取到kubeconfig

cat /root/.kube/config

将config文件里的内容完整复制后,粘贴到Content框里,提交即可
jenkins k8s,kubernetes,jenkins,kubernetes
之后再managed file的主页面可以看到我们刚配置的文件
jenkins k8s,kubernetes,jenkins,kubernetes

2.3 生成jenkinsfile script

我们利用jenkins自带的工具【流水线语法】自动生成调用命令
jenkins k8s,kubernetes,jenkins,kubernetes文章来源地址https://www.toymoban.com/news/detail-681355.html

        stage('deploy to test') {
            when {
                branch 'test'
            }
            steps {
                input(id: 'deploy-to-test', message: 'deploy to test?')
                container("maven") {
                    script{
                        configFileProvider([configFile(fileId: 'f087251c-7058-458d-b26f-8512f3cf3d56', targetLocation: 'dev.kubeconfig')]) {
                            sh '''
                            kubectl get node --kubeconfig=dev.kubeconfig
                            '''
                        }
                    }
                }
            }
        }

到了这里,关于DevOps基础设施配置之jenkins对接K8S的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据基础设施搭建 - Hbase

    首先保证Zookeeper和Hadoop正常运行 新增内容: 使环境变量生效: 不使用hbase内置的zookeeper,使用独立zookeeper 内容: 表明zookeeper集群,hbase web访问路径 内容: regionserver所在机器 内容: 8.3.1 创建表 在first_namespace命名空间中创建表格student,两个列族。info列族数据维护的版本数

    2024年01月24日
    浏览(41)
  • 大数据基础设施搭建 - Spark

    内容: 到YARN WEB页面查看任务提交情况 内容: 4.3.1 启动SparkSQL客户端(Yarn方式) 4.3.2 启动Hive客户端 优势在哪里??

    2024年04月09日
    浏览(39)
  • 云计算概论 -- 云基础设施机制

    逻辑网络边界 虚拟服务器 云存储设备 云使用监控 资源复制 一、逻辑网络边界 (一)逻辑网络边界 逻辑网络边界是将一个网络环境与通信网络的其他部分隔离开来,形成一个虚拟网络边界,它包含并隔离了一组相关的基于云的IT资源,这些资源在物理上可能是分布式的。 逻辑

    2023年04月08日
    浏览(37)
  • 云计算基础设施总体架构介绍

    云计算基础设施是指由硬件资源和资源抽象控制组件构成的支撑云计算的基础设施,包括为云服务客户提供计算资源、存储资源、网络资源、安全资源所需的软硬件设备及云管理平台。云计算基础设施总体架构如图1 所示。 图1 云计算基础设施总体架构  资源池包括计算资源

    2024年02月11日
    浏览(28)
  • 关键信息基础设施安全相关材料汇总

    关键信息基础设施作为国家重要的战略资源,关系国家安全、国计民生和公共利益,具有基础性、支撑性、全局性作用,保护关键信息基础设施安全是国家网络安全工作的重中之重。 本文主要梳理关键信息基础设施安全保护领域相关的法律法规及政策汇编,以供大家参考。

    2024年01月22日
    浏览(29)
  • Web3社交基础设施SBT

    今年年初,V神发表了一篇文章并提出soulbound token(SBT)概念,5月份,又联合撰写了一篇《去中心化社会:找寻 Web3 的灵魂》,让「去中心化社会」和「SBT」概念在大熊市又爆火一波。 SBT到底是什么,有什么价值?在概念到应用的路上都有哪些阻碍呢? 本文将从以下几个方面展

    2024年02月04日
    浏览(31)
  • Genesis公链——专为元宇宙打造基础设施

    在过去的 30 年中,互联网技术不断进化,人们通过网络互相沟通、产生联系的方式也在迭代升级。从 Web1.0 到 Web3.0、从单一的文本内容到即将到来的元宇宙,技术进步对我们造成了太大的改变。 近年来元宇宙这个概念能被各方关注,主要是因为元宇宙是一个大整合,包括5

    2024年02月12日
    浏览(25)
  • 精选博客系列|VMware如何实现多云基础设施

    私有云,公有云,多云,边缘云… 如今,组织的团队、数据和工作负载分布在各种环境中。毫无疑问,这导致了技术上的复杂性增加、安全风险加剧、成本飙升和云战略不连贯的问题。 “39% 的高管难以在(他们的)公有云上实现一套共同的控制。” 使用 VMware 跨云服务,您

    2024年02月08日
    浏览(26)
  • 云计算时代:数字化转型的基础设施

    目录 一、前言 二、云计算的基础概念 三、企业采用云计算的优势 四、行业应用案例 五、未来发展与挑战 六、总结 随着数字化转型的加速,越来越多的企业开始选择云计算作为信息技术应用的基础设施。那么,云计算究竟有哪些优势?未来发展趋势又是怎样的呢?让我们一

    2024年02月05日
    浏览(28)
  • 安全和权限管理:安全模式和角色基础设施

    在现代计算机系统中,安全和权限管理是一个至关重要的领域。随着互联网的普及和数字化进程的加快,计算机系统面临着越来越多的安全威胁。为了保护系统和数据的安全,我们需要一种有效的安全模式和角色基础设施。本文将深入探讨这两个方面的概念、原理和实践,并

    2024年02月20日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包