Jenkins Kubernetes静态agent节点的构建

K8s部署静态节点


在命令行中启动节点
 
java -jar agent.jar -jnlpUrl http://139.198.166.235:8080/computer/build%2D02/jenkins-agent.jnlp -secret 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba -workDir "/var/jenkins"
Run from agent command line, with the secret stored in a file:
 
echo 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba > secret-file
java -jar agent.jar -jnlpUrl http://139.198.166.235:8080/computer/build%2D02/jenkins-agent.jnlp -secret @secret-file -workDir "/var/jenkins"

 我们不需要对agent创建service去访问它,这就是一个执行引擎,执行完了挂掉 。

[root@master cicd]# cat agent.yaml 
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    k8s-app: jenkinsagent
  name: jenkinsagent
  namespace: devops
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: jenkinsagent
  template:
    metadata:
      labels:
        k8s-app: jenkinsagent
      namespace: devops
      name: jenkinsagent
    spec:
      containers:
        - name: jenkinsagent
          image: jenkins/inbound-agent
          securityContext:
            privileged: true
          imagePullPolicy: IfNotPresent
          resources:
            limits:
              cpu: 1000m
              memory: 2Gi
            requests:
              cpu: 500m
              memory: 512Mi
          env:
            - name: JENKINS_URL
              value: http://139.198.166.235:8080
            - name: JENKINS_SECRET
              value: 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba
            - name: JENKINS_AGENT_NAME
              value: build-02
            - name: JENKINS_AGENT_WORKDIR
              value: /home/jenkins/workspace
[root@master cicd]# kubectl apply -f agent.yaml 
deployment.apps/jenkinsagent created


[root@master cicd]# kubectl get pod -n devops
NAME                          READY   STATUS    RESTARTS   AGE
jenkins-797ccbdbc5-84jdl      1/1     Running   0          13m
jenkinsagent-586d9594-8pn9w   1/1     Running   0          8s
[root@master cicd]# kubectl logs -f jenkinsagent-586d9594-8pn9w -n devops
Oct 28, 2021 3:22:40 AM hudson.remoting.jnlp.Main createEngine
INFO: Setting up agent: build-02
Oct 28, 2021 3:22:40 AM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
Oct 28, 2021 3:22:41 AM hudson.remoting.Engine startEngine
INFO: Using Remoting version: 4.11
Oct 28, 2021 3:22:41 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /home/jenkins/workspace/remoting as a remoting work directory
Oct 28, 2021 3:22:41 AM org.jenkinsci.remoting.engine.WorkDirManager setupLogging
INFO: Both error and output logs will be printed to /home/jenkins/workspace/remoting
Oct 28, 2021 3:22:41 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [http://139.198.166.235:8080/]
Oct 28, 2021 3:22:41 AM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping]
Oct 28, 2021 3:22:41 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Agent discovery successful
  Agent address: 139.198.166.235
  Agent port:    50000
  Identity:      67:e8:d2:73:d1:cf:01:f6:6c:a4:cb:b3:0f:25:8c:3d
Oct 28, 2021 3:22:41 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
Oct 28, 2021 3:22:41 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to 139.198.166.235:50000
Oct 28, 2021 3:22:41 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP4-connect
Oct 28, 2021 3:22:41 AM org.jenkinsci.remoting.protocol.impl.BIONetworkLayer$Reader run
INFO: Waiting for ProtocolStack to start.
Oct 28, 2021 3:22:42 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Remote identity confirmed: 67:e8:d2:73:d1:cf:01:f6:6c:a4:cb:b3:0f:25:8c:3d
Oct 28, 2021 3:22:42 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected

同样的,这个agent pod里面是没有mvn这些构建工具的,可以使用卷的形式挂载进去。或者使用这个镜像作为基础镜像将工具打入到这个镜像里面更加方便。

Guess you like

Origin blog.csdn.net/qq_34556414/article/details/121010147