• 2023Jenkins连接k8s


    首先配置k8s config文件
    1.方式获取k8s密钥
    cat .kube/config 
    2.导出方式或者密钥
    kubectl config view --raw > k8s-config-admin 
    
    • 1
    • 2
    • 3
    • 4

    请添加图片描述

    pipeline {
        agent {
            kubernetes {
                yaml '''
                    apiVersion: v1
                    kind: Pod
                    metadata:
                      labels:
                        some-label: devops
                    spec:
                      containers:
                      - name: docker
                        image: docker:19.03-dind
                        securityContext:
                          privileged: true
                        tty: true
                        hostPID: true
                      - name: kubectl
                        image: registry.cn-shenzhen.aliyuncs.com/jbjb/dbs:kubectl-128
                        command:
                        - cat
                        tty: true
                '''
            }
        }
        environment {
            image = "registry.cn-shenzhen.aliyuncs.com/jbjb/dockers:$JOB_NAME-$BUILD_ID"
        }
        stages {
            stage('Get Code') {
                steps {
                    
                checkout scmGit(branches: [[name: '*/lld']], extensions: [], userRemoteConfigs: [[credentialsId: 'll', url: 'http://git.xxx.com/new-test.git']])
                }
            }
            stage ("Docker Build") {
                steps {
                    container('docker') {
                        script {
                            withDockerRegistry(credentialsId: 'mydocker', url: 'https://registry.cn-shenzhen.aliyuncs.com') {
                                docker.build("${image}").push()
                                
                            }
                        }
                    }
                }
            }
            stage('Deploy to Kubernetes') {
                steps {
                    container('kubectl') {
                    withKubeCredentials(kubectlCredentials: [[credentialsId: 'kjbs', serverUrl: 'https://192.168.0.192:6443']]) {
                        sh 'kubectl get pods'
                    }
                }
            }
        }
    }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    最后一个stps也可以换成这样

            stage('Deploy to Kubernetes') {
                steps {
                    container('kubectl') {
                    withKubeConfig(credentialsId: 'kjbs', serverUrl: 'https://192.168.0.192:6443') {
                        sh 'kubectl get pods'
                    }
                }
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    withKubeCredentials 和 withKubeConfig 都是 Jenkins Pipeline 中用于指定 Kubernetes 凭据和配置的代码块,但它们之间有一些区别。
    1 withKubeCredentials:
    • withKubeCredentials 用于指定 Kubernetes 的凭据信息,包括凭据 ID、服务器 URL 等。
    • 适用于使用单个凭据来执行与 Kubernetes 相关的操作。
    • 指定的凭据信息仅适用于该代码块内的步骤。
    2 withKubeConfig:
    • withKubeConfig 用于指定完整的 Kubernetes 配置文件(kubeconfig)和凭据。
    • 可以使用自定义的 kubeconfig 文件,其中包含集群、用户、上下文等详细信息。
    • 适用于需要在多个步骤中重复使用相同的配置文件和凭据的情况。
    • withKubeConfig 代码块内的步骤都可以访问指定的 kubeconfig 文件和相关凭据。

    根据你可以选择适合场景的代码块。如果只需要在单个步骤中使用简单的凭据信息,那么使用 withKubeCredentials 就足够了。而如果需要在多个步骤中使用相同的配置文件和凭据,使用 withKubeConfig 更为方便。

    温馨提示debian12部署的k8s使用containerd运行是,jenkins 动态salve构建时,内核docker in docker时会错

  • 相关阅读:
    多层感知器(神经网络)与激活函数
    Day46 动态规划 part08
    leetcode543--二叉树的直径
    RaiDrive出现问题,里面的磁盘突然没了,怎么办
    Docker 容器编排
    HBase概念入门
    Java并发 | 23.[设计模式] 保护性暂停
    一周精彩内容分享(第16期)
    攻克3D神器Blender的第五天-【多边形建形、旋转】
    eyb:FastDFS的学习
  • 原文地址:https://blog.csdn.net/weixin_42562106/article/details/133979200