jenkins对接K8S

创建连接K8S的凭据

查看需要使用到的命名空间
[root@k8s ~]# kubectl get ns |grep arts-system
arts-system       Active   16d
创建service accounts
[root@k8s ~]# kubectl create sa jenkins-k8s -n arts-system
serviceaccount/jenkins-k8s created
[root@k8s ~]# kubectl get sa -n arts-system |grep jenkins
jenkins-k8s   1         14s
对jenkins做cluster-admin绑定
[root@k8s ~]# kubectl create clusterrolebinding jenkins-k8s-role-binding --clusterrole cluster-admin --serviceaccount=arts-system:jenkins-k8s -n arts-system
clusterrolebinding.rbac.authorization.k8s.io/jenkins-k8s-role-binding created
[root@k8s ~]# kubectl get clusterrolebinding -n arts-system
NAME                       AGE
jenkins-k8s-role-binding   29s
system:coredns             3y264d
查看arts-system命名空间中的sa和secret
[root@k8s ~]# kubectl get sa,secret -n arts-system
NAME                         SECRETS   AGE
serviceaccount/default       1         16d
serviceaccount/jenkins-k8s   1         3m30s

NAME                             TYPE                                  DATA   AGE
secret/default-token-scbjb       kubernetes.io/service-account-token   3      16d
secret/jenkins-k8s-token-qjr6p   kubernetes.io/service-account-token   3      3m30s
提取token
[root@k8s ~]# kubectl describe secrets jenkins-k8s-token-qjr6p -n arts-system
Name:         jenkins-k8s-token-qjr6p
Namespace:    arts-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: jenkins-k8s
              kubernetes.io/service-account.uid: e7d1633d-3419-4a95-b8e8-e4f1956989e8

Type:  kubernetes.io/service-account-token

Data
====
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IlNybzBGYzNoYklYWlJlM2NsU0VWNTY2TGZlM2E3a1RUYm5ObmJxLXFZMjAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJhcnRzLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJqZW5raW5zLWs4cy10b2tlbi1xanI2cCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJqZW5raW5zLWs4cyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImU3ZDE2MzNkLTM0MTktNGE5NS1iOGU4LWU0ZjE5NTY5ODllOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDphcnRzLXN5c3RlbTpqZW5raW5zLWs4cyJ9.wIPNdnYKqNGdUv0bYwDgGFW4_EhR3vKcFdHsmrQFbtiWomLBQERZe9xs1adO4qJm5V40sCozWJWiv6yE9ZN8stEI_FTJcaLDeLJDqYe-2BAuGXG6sDOUsjk2vc7K4NJb2xi508xyof5xuS2mTBwMXiyO_zhefrXVq9NrQd9hrUFQOhcod_SoWu965unOA4uDqxi9Sgll4RW-yG9lN5PK18xaGEHvJHldS_vT8JhvQ1lvjxDWxZkYvXJLN9i0Yp0bHal6GNCl4tDaMmTCyvuhuhBWldB57fwNrO71hrl1rN8BKy0ngeJ4SUr3TqA0cSpDXyAdS01OnwaokiVt3APM-A
ca.crt:     1099 bytes

jenkins上创建连接K8S的凭证

请添加图片描述

jenkins连接K8S

请添加图片描述

配置连接k8s

### Jenkins Kubernetes Docker CI/CD 集成教程 #### 构建环境准备 为了实现持续集成和交付(CI/CD),构建工具的选择至关重要。Jenkins作为流行的自动化服务器,在CI/CD流程中扮演着重要角色[^1]。 对于容器化应用而言,Docker提供了便捷的方式打包应用程序及其依赖项到轻量级容器之中。通过定义`Dockerfile`来指定镜像的基础层以及安装必要的软件包和服务,可以确保开发、测试乃至生产环境中的一致性[^2]。 ```dockerfile FROM python:3.6.5 RUN mkdir -p /var/www/gitlab-ci-example WORKDIR /var/www/gitlab-ci-example/ ADD . /var/www/gitlab-ci-example/ RUN pip install -U pip && pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ``` 上述`Dockerfile`展示了如何基于Python官方镜像创建自定义的应用程序运行时环境,并利用阿里云PyPI源加速Python库的下载过程。 #### 设置Kubernetes集群中的Jenkins代理节点 为了让Jenkins能够高效运作于Kubernetes之上,需配置动态启动Pod形式的工作空间。这通常涉及到编写特定格式的YAML描述文档,即所谓的“pod模板”,它指定了执行器所使用的资源请求、限制条件以及其他属性设置。 当有新的任务提交给Jenkins时,会依据此模版自动触发新实例的生成;待作业完成后则销毁这些临时计算单元以节省成本并提高安全性。 #### 实现完整的CI/CD流水线 借助插件机制,Jenkins可轻松对接Git仓库监听变更事件,一旦检测到分支推送或者标签打上动作发生,则立即拉取最新代码版本开始编译验证工作流: - **Source Code Management**: GitLab/GitHub等平台托管下的项目源码。 - **Build Step**: 利用Maven, Gradle 或者 Makefile完成Java/C++项目的组装操作;而对于Web框架来说可能是NPM/Yarn脚本调用或是简单的Shell指令集组合。 - **Test Phase**: 单元测试覆盖率统计、静态分析报告产出等功能模块接入。 - **Artifact Publishing**: 将成功构建出来的制品上传至Artifactory/Nexus私仓供后续环节引用。 最后一步便是将经过全面质检后的产物推送到Docker Registry里边去形成可供分发部署的标准映像文件。 #### 自动化部署策略设计 考虑到微服务架构下多组件协同工作的特点,推荐采用Helm Chart封装整个系统的发布方案。其优势在于不仅简化了复杂对象之间的关联关系表达方式,而且允许运维人员灵活调整参数选项满足不同场景需求变化的要求。 与此同时,针对每一次迭代更新都应制定严谨回滚预案,以便快速响应潜在风险带来的挑战,保障线上业务稳定可靠运转不受影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值