问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Jenkins安装Kubernetes插件并发布服务

创作时间:
作者:
@小白创作中心

Jenkins安装Kubernetes插件并发布服务

引用
CSDN
1.
https://blog.csdn.net/wangerzheng/article/details/141724341

本文将详细介绍如何在Jenkins中安装和配置Kubernetes插件,以及如何使用Jenkins构建和部署Kubernetes服务。

1. 安装Kubernetes插件

登录 Jenkins,系统管理→ 插件管理 → 搜索 kubernetes,选择第二个 Kubernetes,点击 安装,安装完成后重启 Jenkins 。

2. 对接Kubernetes集群、申请Kubernetes凭据

因为 Jenkins 服务器在 kubernetes 集群之外,所以我们准备以下文件才能从外面连接到 kubernetes 集群。

登录 Jenkins,点击右上角「用户」 → 左下角「凭据」:

然后点击 System,选择全局凭据(Unrestricted)

添加凭据,类型选择 X.509 Client Certificate

  • Client Key: /root/.kube/config文件中 client-key 对应的 key 文件
  • Client Certificate: /root/.kube/config文件中 client-certificate 对应的 crt 或是 pem 文件
  • Server CA Certificate: /root/.kube/config 文件中 certificate-authority 对应的 crt 或是 pem 文件,K8S 的最高权限证书
  • ID:可不填写,默认会自动生成一串字符串,也可以自行设置
  • 描述:描述下这个凭据的作用,比如这个可以写 对接 K8S 集群凭据

填写完毕,点击确定。可以看到一个凭据,后面会用到

3. 配置Kubernetes集群对接

登录 Jenkins,点击 系统管理 → Clouds,新增一个云;(注:此处需要注意一下,有的jenkins版本Clouds是在系统配置中的最后面)

  • Kubernetes 地址:kubernetes服务地址,也就是 apiserver 的地址,一般是master 节点 NodeIP+6443 端口
  • Kubernetes 服务证书 key:kube-ca.crt 文件的内容
  • 凭据:刚才创建的 certificate 凭据
  • Jenkins 地址:Agent 连接 Jenkins Master 的地址

4. 在Jenkins节点安装kubectl命令行工具

curl -LO "https://storage.googleapis.com/kubernetes-release/release/v1.21.1/bin/linux/amd64/kubectl"
chmod u+x ./kubectl

5. 创建流水线测试容器部署

创建流水线

#!/usr/bin/env groovy
library 'pipeline-libraries'
pipeline {
    agent any
    environment{
        DEVOPS_URL ='http://10.10.10.10:389/dppipeline'
        pipelineId ='c4402a6dbd28430cad9050b9109a7c89'
        instNumber ='13'
        repoName =''  
        mavenSettingsId ='global-maven-settings-1'
        DEVOPS_WEB_URL =''
    }
    stages {
        stage('k8s'){
            steps{
                script{
                    def image = params.GG
                    echo "{image}"
                    withKubeConfig([credentialsId: 'cd5a993e-7763-426e-bb1a-be9548aa43e5',serverUrl: 'https://10.10.10.1:6443']) {
                        sh './kubectl get nodes'
                        sh './kubectl run hello-test --image=test/hello:1.5-01 --port=8080'
                        sh './kubectl set image deploy nginx -n devops-middleware nginx=test/hello:1.0'
                    }
                }
            }
        }
    }
}

流水线创建成功

登录业务集群查看pod发布正常

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号