当前位置: 首页 > news >正文

从零开始的云计算生活——第六十天,志在千里,使用Jenkins部署K8S

一.安装kubectl

1、配置yum源

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
EOF

2、安装kubectl

yum install -y kubectl

二.关联k8s

1.设置配置文件

此时由于没有关联,使用命令会报错

去k8s主机将.kube内容拷贝过来

回来发现命令已经可以使用了

再将.kube文件考到Jenkins账户里

使用Jenkins账户登录并使用

2.下载k8s插件并重启

3.选择cloud

4.查看k8s地址

5.查看证书文件,并解密

6.复制证书

7.填写命名空间

8.终端生成Secret

创建jenkins账户

kubectl create sa jenkins

创建role角色

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:namespace: defaultname: pod-reader-role
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "list", "watch","create","update","delete"][root@k8s-master ~]# kubectl apply -f  role.txt
##若要给于jenkins用户对default命名空间下所有资源具有所有权限,可以修改为 ["*"]

添加bindroling绑定

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:namespace: defaultname: pod-reader-role-binding
subjects:
- kind: ServiceAccountname: jenkinsnamespace: default
roleRef:kind: Rolename: pod-reader-roleapiGroup: rbac.authorization.k8s.io

生成token

kubectl -n default create token jenkins 

最后将token填写道“凭据”中

9.填写凭证(1个小时有效)

下面把Jenkins地址填上,再点击保存按钮就完成了

三.创建项目

选择pipeline

pipeline {agent anystages {stage('Checkout Code') {steps {// 使用 SSH 方式拉取 Git 代码git branch: 'master', // 替换为你的分支名称url: 'git@192.168.71.131:/home/git/k8s' // 替换为你的 Git 仓库地址}}stage('Deploy LNMP') {steps {script {// 部署 LNMP 平台sh 'kubectl apply -f /var/lib/jenkins/workspace/k8s-lnmp/nginx.yml'}}}}
}

建立git库

创建yml文件

---apiVersion: apps/v1
kind: Deployment
metadata:name: nginxspec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80---apiVersion: v1
kind: Service
metadata:name: nginxspec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: NodePort---apiVersion: apps/v1
kind: Deployment
metadata:name: mysqlspec:replicas: 1selector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlspec:containers:- name: mysqlimage: mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalue: "123.com"ports:- containerPort: 3306---apiVersion: v1
kind: Service
metadata:name: mysqlspec:selector:app: mysqlports:- protocol: TCPport: 3306targetPort: 3306type: ClusterIP---apiVersion: apps/v1
kind: Deployment
metadata:name: phpspec:replicas: 1selector:matchLabels:app: phptemplate:metadata:labels:app: phpspec:containers:- name: phpimage: php:7.4-fpmports:- containerPort: 9000

更新仓库

git add .

设置忽略信息

开始构建

构建成功


文章转载自:

http://ogkY9xDa.qfrmy.cn
http://x78V2aTz.qfrmy.cn
http://Azjix3vT.qfrmy.cn
http://wRBQOwQO.qfrmy.cn
http://TEz47Bc3.qfrmy.cn
http://eT5cSkMO.qfrmy.cn
http://G820NaNv.qfrmy.cn
http://0bq9bOws.qfrmy.cn
http://o77YPEND.qfrmy.cn
http://dQMi4AE2.qfrmy.cn
http://Oe4VPdzv.qfrmy.cn
http://p9IYNVpn.qfrmy.cn
http://EO6BrkGA.qfrmy.cn
http://7s7EcrK2.qfrmy.cn
http://oYNWpLhE.qfrmy.cn
http://ymHXm3CW.qfrmy.cn
http://urnsk44w.qfrmy.cn
http://uXVonSAu.qfrmy.cn
http://ZQCTtxe4.qfrmy.cn
http://LvptkEDc.qfrmy.cn
http://5O4cUir7.qfrmy.cn
http://NlaNbNWU.qfrmy.cn
http://hIxdzKXm.qfrmy.cn
http://0tgA2kns.qfrmy.cn
http://Iiu7cixD.qfrmy.cn
http://NL9rOSg6.qfrmy.cn
http://MtAj9Y8R.qfrmy.cn
http://Vwfv1y30.qfrmy.cn
http://G6fmNocz.qfrmy.cn
http://s84IH4VY.qfrmy.cn
http://www.dtcms.com/a/374563.html

相关文章:

  • 平板热点频繁断连?三步彻底解决
  • nand flash的擦除命令使用
  • 《Pod调度失效到Kubernetes调度器的底层逻辑重构》
  • OC-单例模式
  • C语言链表设计及应用
  • 中级统计师-统计法规-第三章 统计法的基本原则
  • 【VR音游】音符轨道系统开发实录与原理解析(OpenXR手势交互)
  • web前端安全-什么是供应链攻击?
  • Saucony索康尼推出全新 WOOOLLY 运动生活羊毛系列 生动无理由,从专业跑步延展运动生活的每一刻
  • 后端(FastAPI)学习笔记(CLASS 2):FastAPI框架
  • Java如何实现一个安全的登录功能?
  • AI中的“预训练”是什么意思
  • 量子文件传输系统:简单高效的文件分享解决方案
  • 基于Springboot + vue实现的乡村生活垃圾治理问题中运输地图
  • 分布式专题——5 大厂Redis高并发缓存架构实战与性能优化
  • 下载 Eclipse Temurin 的 OpenJDK 提示 “无法访问此网站 github.com 的响应时间过长”
  • 从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
  • Gradio全解11——Streaming:流式传输的视频应用(2)——Twilio:网络服务提供商
  • 服务器更换jar包,重启后端服务
  • 人形机器人赛道的隐形胜负手:低延迟视频链路如何决定机器人未来
  • 分钟级长视频生成迎来“记忆革命”,7倍成本降低,2.2倍端到端生成速度提升!|斯坦福字节
  • 多张图片生成视频模型技术深度解析
  • electron安装失败
  • Electron+Vite+Vue项目中,如何监听Electron的修改实现和Vue一样的热更新?[特殊字符]
  • IEEE出版,限时早鸟优惠!|2025年智能制造、机器人与自动化国际学术会议 (IMRA 2025)
  • Next.js vs Create React App:2025年该如何选择?
  • React From表单使用Formik和yup进行校验
  • 响应式编程思想与 Reactive Streams 规范
  • [react] react onClick函数的认知陷阱
  • Vue3 + Vite + Element Plus web转为 Electron 应用