Jenkins在Kubernetes中持续部署

Jenkins在Kubernetes中持续部署Jenkins 在 Kubernetes 中持续部署 pipeline agent kubernetes label jenkins slave yaml apiVersion v1 kind Pod metadata name jenkins slave spec

大家好,我是讯享网,很高兴认识大家。

Jenkins在Kubernetes中持续部署


pipeline { agent { kubernetes { label "jenkins-slave" yaml ''' apiVersion: v1 kind: Pod metadata: name: jenkins-slave spec: containers: - name: jnlp image: jenkins-slave-jdk:1.8 imagePullPolicy: Never ''' } } stages { stage('TestAgent') { steps { sh 'hostname' } } stage('CheckOut') { steps { checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'bcfe14cb-2215-4862-a472-641f0241b573', url: 'http://139.198.166.235:81/devop/devops-skywalking-service.git']]]) } } stage('Build') { steps { script{ sh 'ls' sh 'pwd' } } } } }

讯享网
讯享网Started by user admin Running in Durability level: MAX_SURVIVABILITY [Pipeline] Start of Pipeline [Pipeline] echo [WARNING] label option is deprecated. To use a static pod template, use the 'inheritFrom' option. [Pipeline] podTemplate [Pipeline] { [Pipeline] node Created Pod: kubernetes ops/jenkins-slave-4l66j-8c8gs [Normal][ops/jenkins-slave-4l66j-8c8gs][Scheduled] Successfully assigned ops/jenkins-slave-4l66j-8c8gs to node2 [Normal][ops/jenkins-slave-4l66j-8c8gs][Pulled] Container image "jenkins-slave-jdk:1.8" already present on machine [Normal][ops/jenkins-slave-4l66j-8c8gs][Created] Created container jnlp [Normal][ops/jenkins-slave-4l66j-8c8gs][Started] Started container jnlp Agent jenkins-slave-4l66j-8c8gs is provisioned from template jenkins-slave-4l66j --- apiVersion: "v1" kind: "Pod" metadata: annotations: buildUrl: "http://jenkins.ops/job/devops-eurka-service/1/" runUrl: "job/devops-eurka-service/1/" labels: jenkins: "slave" jenkins/label-digest: "03ddc3eddf95d5470d5c7fb6d2937abaeca3b79e" jenkins/label: "jenkins-slave" name: "jenkins-slave-4l66j-8c8gs" spec: containers: - env: - name: "JENKINS_SECRET" value: "" - name: "JENKINS_AGENT_NAME" value: "jenkins-slave-4l66j-8c8gs" - name: "JENKINS_NAME" value: "jenkins-slave-4l66j-8c8gs" - name: "JENKINS_AGENT_WORKDIR" value: "/home/jenkins/agent" - name: "JENKINS_URL" value: "http://jenkins.ops/" image: "jenkins-slave-jdk:1.8" imagePullPolicy: "Never" name: "jnlp" resources: limits: {} requests: memory: "256Mi" cpu: "100m" volumeMounts: - mountPath: "/home/jenkins/agent" name: "workspace-volume" readOnly: false nodeSelector: kubernetes.io/os: "linux" restartPolicy: "Never" volumes: - emptyDir: medium: "" name: "workspace-volume" Running on jenkins-slave-4l66j-8c8gs in /home/jenkins/agent/workspace/devops-eurka-service [Pipeline] { [Pipeline] stage [Pipeline] { (TestAgent) [Pipeline] sh + hostname jenkins-slave-4l66j-8c8gs [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (CheckOut) [Pipeline] checkout The recommended git tool is: NONE using credential bcfe14cb-2215-4862-a472-641f0241b573 Cloning the remote Git repository Cloning repository http://139.198.166.235:81/devop/devops-skywalking-service.git > git init /home/jenkins/agent/workspace/devops-eurka-service # timeout=10 Fetching upstream changes from http://139.198.166.235:81/devop/devops-skywalking-service.git > git --version # timeout=10 > git --version # 'git version 1.8.3.1' using GIT_ASKPASS to set credentials gitlab-devop > git fetch --tags --progress http://139.198.166.235:81/devop/devops-skywalking-service.git +refs/heads/*:refs/remotes/origin/* # timeout=10 Avoid second fetch Checking out Revision 8a64baee6dec360e22cc89 (refs/remotes/origin/master) > git config remote.origin.url http://139.198.166.235:81/devop/devops-skywalking-service.git # timeout=10 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 > git config core.sparsecheckout # timeout=10 > git checkout -f 8a64baee6dec360e22cc89 # timeout=10 Commit message: "all" First time build. Skipping changelog. [Pipeline] } [Pipeline] // stage [Pipeline] stage (hide) [Pipeline] { (Build) [Pipeline] script [Pipeline] { [Pipeline] sh + ls LICENSE README.md basic-common db eureka-service gateway-service k8s lombok.config order-service pom.xml portal-service product-service stock-service [Pipeline] sh + pwd /home/jenkins/agent/workspace/devops-eurka-service [Pipeline] } [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] } [Pipeline] // podTemplate [Pipeline] End of Pipeline Finished: SUCCESS
[root@master ~]# kubectl get pod -n ops -w NAME READY STATUS RESTARTS AGE grafana-757fcd5f7c-fx72b 1/1 Running 15 11d jenkins-797ccbdbc5-88qrd 1/1 Running 6 45h jenkins-slave-mhzxx-g29pz 0/1 Pending 0 0s jenkins-slave-mhzxx-g29pz 0/1 Pending 0 0s jenkins-slave-mhzxx-g29pz 0/1 ContainerCreating 0 0s jenkins-slave-mhzxx-g29pz 0/1 ContainerCreating 0 1s jenkins-slave-mhzxx-g29pz 1/1 Running 0 2s jenkins-slave-mhzxx-g29pz 1/1 Terminating 0 4m30s jenkins-slave-mhzxx-g29pz 1/1 Terminating 0 4m31s jenkins-slave-mhzxx-g29pz 0/1 Terminating 0 4m31s jenkins-slave-mhzxx-g29pz 0/1 Terminating 0 4m39s jenkins-slave-mhzxx-g29pz 0/1 Terminating 0 4m39s


讯享网

讯享网def project = "dev" def app_name = "java-demo" def image_name = "${registry}/${project}/${app_name}:${BUILD_NUMBER}" pipeline { agent { kubernetes { label "jenkins-slave" yaml ''' apiVersion: v1 kind: Pod metadata: name: jenkins-slave spec: containers: - name: jnlp image: jenkins-slave-jdk:1.8 imagePullPolicy: Never volumeMounts: - name: docker-cmd mountPath: /usr/bin/docker - name: docker-sock mountPath: /var/run/docker.sock - name: maven-cache mountPath: /root/.m2 volumes: - name: docker-cmd hostPath: path: /usr/bin/docker - name: docker-sock hostPath: path: /var/run/docker.sock - name: maven-cache hostPath: path: /tmp/m2 ''' } } stages { stage('TestAgent') { steps { sh 'hostname' } } stage('CheckOut') { steps { checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]], extensions: [], userRemoteConfigs: [[credentialsId: "${credentialsId}", url: "${srcUrl}"]]]) } } stage('Build') { steps { script{ sh """ mvn clean package -Dmaven.test.skip=true mvn -v """ } } } stage('Artifact') { steps { script{ withCredentials([usernamePassword(credentialsId: 'd8e0980c-1ffb-4096-a0b7-8fc3f', passwordVariable: 'passwd', usernameVariable: 'user')]) { sh """ docker build -t ${image_name} . docker login -u ${user} -p ${passwd} ${registry} docker push ${image_name} """ } } } } stage('Deploy') { steps { script{ configFileProvider([configFile(fileId: '22bdbd6d-14f4-49c1-a924-5cea69', targetLocation: "admin.kubeconfig")]){ sh """ sed -i 's#IMAGE_NAME#${image_name}#' deployment.yaml sed -i 's#REPLICAS#${ReplicaCount}#' deployment.yaml kubectl apply -f deployment.yaml -n ${Namespace} --kubeconfig=admin.kubeconfig """ } } } } } }

 ------------------------------------------------------------------------------------------------------------------------------

 可以看到在使用华为云部署的时候,使用先创建configmap,及先发布应用的配置。

小讯
上一篇 2025-02-20 20:45
下一篇 2025-03-10 18:41

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122002.html