从零开始的云计算生活——第六十天,志在千里,使用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: default
  name: 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: default
  name: pod-reader-role-binding
subjects:
- kind: ServiceAccount
  name: jenkins
  namespace: default
roleRef:
  kind: Role
  name: pod-reader-role
  apiGroup: rbac.authorization.k8s.io

生成token

kubectl -n default create token jenkins

最后将token填写道"凭据"中

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

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

三.创建项目

选择pipeline

复制代码
pipeline {
    agent any
    stages {
        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: nginx

spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

---

apiVersion: v1
kind: Service
metadata:
  name: nginx

spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: NodePort

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql

spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123.com"
        ports:
        - containerPort: 3306

---

apiVersion: v1
kind: Service
metadata:
  name: mysql

spec:
  selector:
    app: mysql
  ports:
  - protocol: TCP
    port: 3306
    targetPort: 3306
  type: ClusterIP

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: php

spec:
  replicas: 1
  selector:
    matchLabels:
      app: php
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - name: php
        image: php:7.4-fpm
        ports:
        - containerPort: 9000

更新仓库

git add .

设置忽略信息

开始构建

构建成功

相关推荐
云算计27 分钟前
给太空云计算提出10个问题
云计算
CNNACN电商经济1 小时前
上能电气2025年财报:储能出海点燃业绩引擎
生活
※※冰馨※※2 小时前
【C++】通过 Git 访问阿里云 Codeup 仓库
git·阿里云·云计算
摇滚侠2 小时前
JAVA 项目教程《苍穹外卖-番外篇-阿里云对象存储》,微信小程序项目,前后端分离,从开发到部署
阿里云·云计算
小仓桑18 小时前
【Agent智能体项目实战一】阿里云通义千问兼容 OpenAI 接口实现 AI 对话
人工智能·阿里云·云计算·agent
AI周红伟19 小时前
周红伟:豆包大模型的尽头是直播间,豆包开启AI购物内测 电商平台加码“一句话购物”
人工智能·阿里云·云计算·腾讯云·openclaw
威联通安全存储19 小时前
某大型食品饮料企业:基于威联通 TS-h1290FX 的中央数据管控与合规实践
大数据·人工智能·云计算
大树8820 小时前
国产液冷产业链的突破:应对龙虾大模型等终端算力需求激增的倒逼效应
科技·ai·云计算
未来之窗软件服务1 天前
阿里云 page-agent 核心逻辑梳理[AI人工智能(六十一)]—东方仙盟
人工智能·阿里云·云计算·仙盟创梦ide·东方仙盟
武汉唯众智创1 天前
云计算大数据实训平台:从私有云到容器化的教学实现|原理+实操+踩坑+性能全解析
大数据·人工智能·云计算·云计算实训室·大数据实训室·职校云计算大数据实训室建设·职校实训室建设