zoukankan      html  css  js  c++  java
  • kubernets中jenkins使用清华源加速插件安装

    加速思路

    清华源jenkins插件地址

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    

    查看json中依然有很多源指向

    updates.jenkins-ci.org
    

      

    思路,在jenkins所在pod中添加一个sidecar,将 updates.jenkins-ci.org 重定向到 mirrors.tuna.tsinghua.edu.cn,不对原有jenkins镜像侵入,方便以后升级

    构建proxy-tuna镜像

    docker build -t dolphintwo/jenkins-plugins-proxy:v0.1 .
    
    • Dockerfile
    FROM nginx:1.17.6-alpine
    LABEL maintainer="dolphintwo dtdinghui2@gmail.com"
    
    COPY nginx.conf /etc/nginx/nginx.conf
    • nginx.conf
    user  nginx;
    worker_processes  auto;
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  localhost;
    
            location /download/plugins {
                proxy_next_upstream http_502 http_504 error timeout invalid_header;
                proxy_set_header Host mirrors.tuna.tsinghua.edu.cn;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
                rewrite /download/plugins(.*) /jenkins/plugins/$1 break;
                proxy_pass https://mirrors.tuna.tsinghua.edu.cn;
            }
        }
    }
    

      

    部署

    • jenkins-deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: jenkins
      labels:
        name: jenkins
    spec:
      replicas: 1
      selector:
        matchLabels:
          name: jenkins
      template:
        metadata:
          name: jenkins
          labels:
            name: jenkins
        spec:
          serviceAccountName: jenkins
          hostAliases:
          - ip: "127.0.0.1"
            hostnames:
            - "updates.jenkins-ci.org"        
          containers:
            - name: tuna-proxy
              image: dolphintwo/jenkins-plugins-proxy:v0.1
              imagePullPolicy: Always
              ports: 
                - containerPort: 80
            - name: jenkins
              image: jenkins/jenkins:lts-alpine
              imagePullPolicy: Always
              ports:
                - containerPort: 8080
                - containerPort: 50000
              resources:
                limits:
                  cpu: 4
                  memory: 8Gi
                requests:
                  cpu: 0.5
                  memory: 1000Mi
              env:
                - name: LIMITS_MEMORY
                  valueFrom:
                    resourceFieldRef:
                      resource: limits.memory
                      divisor: 1Mi
                - name: JAVA_OPTS
                  value: -Xmx$(LIMITS_MEMORY)m -XshowSettings:vm -Dhudson.slaves.NodeProvisioner.initialDelay=0 -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85
              volumeMounts:
                - name: jenkins-home
                  mountPath: /var/jenkins_home
          securityContext:
            fsGroup: 1000
          volumes: 
            - name: jenkins-home
              persistentVolumeClaim:
                claimName: jenkins-home
    

      注意添加sidecar并指定host拦截请求

      deployment只是本次实验中的示范,应该也可以创建有状态应用中使用

    验证

    在插件中心更新插件,查询pod中两个容器日志

     1 kubernetes-operator|⇒ kubectl -n ops logs jenkins-5f4996b99-77r98 jenkins --tail 50
     2 ...
     3 2019-12-27 07:36:14.430+0000 [id=84]    INFO    hudson.PluginManager#install: Starting installation of a batch of 1 plugins plus their dependencies
     4 2019-12-27 07:36:21.510+0000 [id=85]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of localization-zh-cn on behalf of admin
     5 2019-12-27 07:36:22.140+0000 [id=85]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading localization-zh-cn
     6 2019-12-27 07:37:32.662+0000 [id=79]    INFO    hudson.PluginManager#install: Starting installation of a batch of 15 plugins plus their dependencies
     7 2019-12-27 07:37:32.663+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of docker-commons on behalf of admin
     8 2019-12-27 07:37:32.666+0000 [id=79]    INFO    hudson.model.UpdateSite$Plugin#deploy: Adding dependent install of pipeline-model-api for plugin pipeline-model-extensions
     9 2019-12-27 07:37:33.703+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading docker-commons
    10 2019-12-27 07:37:34.042+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of kubernetes on behalf of admin
    11 2019-12-27 07:37:37.615+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading kubernetes
    12 2019-12-27 07:37:43.745+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of pipeline-stage-tags-metadata on behalf of admin
    13 2019-12-27 07:37:44.129+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading pipeline-stage-tags-metadata
    14 2019-12-27 07:37:44.186+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of git-server on behalf of admin
    15 2019-12-27 07:37:45.111+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading git-server
    16 2019-12-27 07:37:45.186+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of workflow-api on behalf of admin
    17 2019-12-27 07:37:46.614+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading workflow-api
    18 2019-12-27 07:37:46.952+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of workflow-cps on behalf of admin
    19 2019-12-27 07:37:47.469+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading workflow-cps
    20 2019-12-27 07:37:48.834+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of pipeline-model-api on behalf of admin
    21 2019-12-27 07:37:49.382+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading pipeline-model-api
    22 2019-12-27 07:37:51.666+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of pipeline-model-extensions on behalf of admin
    23 2019-12-27 07:37:52.192+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading pipeline-model-extensions
    24 2019-12-27 07:37:52.308+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of kubernetes-cd on behalf of admin
    25 2019-12-27 07:37:53.188+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading kubernetes-cd
    26 2019-12-27 07:38:29.885+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of branch-api on behalf of admin
    27 2019-12-27 07:38:30.424+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading branch-api
    28 2019-12-27 07:38:31.292+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of cloudbees-folder on behalf of admin
    29 2019-12-27 07:38:32.434+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading cloudbees-folder
    30 2019-12-27 07:38:33.025+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of pipeline-model-definition on behalf of admin
    31 2019-12-27 07:38:33.521+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading pipeline-model-definition
    32 2019-12-27 07:38:35.165+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of pipeline-model-api on behalf of admin
    33 2019-12-27 07:38:35.165+0000 [id=90]    INFO    h.m.UpdateCenter$InstallationJob#_run: Skipping duplicate install of: Pipeline: Model API@1.5.0
    34 2019-12-27 07:38:35.166+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Installation successful: pipeline-model-api
    35 2019-12-27 07:38:35.166+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of config-file-provider on behalf of admin
    36 2019-12-27 07:38:35.738+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading config-file-provider
    37 2019-12-27 07:38:36.331+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of gradle on behalf of admin
    38 2019-12-27 07:38:39.430+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading gradle
    39 2019-12-27 07:38:41.012+0000 [id=90]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of role-strategy on behalf of admin
    40 2019-12-27 07:38:41.536+0000 [id=90]    INFO    h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading role-strategy
    41 kubernetes-operator|⇒ kubectl -n ops logs jenkins-5f4996b99-77r98 tuna-proxy --tail 50
    42 127.0.0.1 - - [27/Dec/2019:07:36:22 +0000] "GET /download/plugins/localization-zh-cn/1.0.13/localization-zh-cn.hpi HTTP/1.1" 200 542952 "-" "Java/1.8.0_212" "-"
    43 127.0.0.1 - - [27/Dec/2019:07:37:34 +0000] "GET /download/plugins/docker-commons/1.16/docker-commons.hpi HTTP/1.1" 200 91018 "-" "Java/1.8.0_212" "-"
    44 127.0.0.1 - - [27/Dec/2019:07:37:43 +0000] "GET /download/plugins/kubernetes/1.22.3/kubernetes.hpi HTTP/1.1" 200 995984 "-" "Java/1.8.0_212" "-"
    45 127.0.0.1 - - [27/Dec/2019:07:37:44 +0000] "GET /download/plugins/pipeline-stage-tags-metadata/1.5.0/pipeline-stage-tags-metadata.hpi HTTP/1.1" 200 10708 "-" "Java/1.8.0_212" "-"
    46 127.0.0.1 - - [27/Dec/2019:07:37:45 +0000] "GET /download/plugins/git-server/1.9/git-server.hpi HTTP/1.1" 200 30408 "-" "Java/1.8.0_212" "-"
    47 127.0.0.1 - - [27/Dec/2019:07:37:46 +0000] "GET /download/plugins/workflow-api/2.38/workflow-api.hpi HTTP/1.1" 200 155980 "-" "Java/1.8.0_212" "-"
    48 127.0.0.1 - - [27/Dec/2019:07:37:48 +0000] "GET /download/plugins/workflow-cps/2.78/workflow-cps.hpi HTTP/1.1" 200 597525 "-" "Java/1.8.0_212" "-"
    49 127.0.0.1 - - [27/Dec/2019:07:37:51 +0000] "GET /download/plugins/pipeline-model-api/1.5.0/pipeline-model-api.hpi HTTP/1.1" 200 2436323 "-" "Java/1.8.0_212" "-"
    50 127.0.0.1 - - [27/Dec/2019:07:37:52 +0000] "GET /download/plugins/pipeline-model-extensions/1.5.0/pipeline-model-extensions.hpi HTTP/1.1" 200 38764 "-" "Java/1.8.0_212" "-"
    51 127.0.0.1 - - [27/Dec/2019:07:38:29 +0000] "GET /download/plugins/kubernetes-cd/2.2.0/kubernetes-cd.hpi HTTP/1.1" 200 34436567 "-" "Java/1.8.0_212" "-"
    52 127.0.0.1 - - [27/Dec/2019:07:38:31 +0000] "GET /download/plugins/branch-api/2.5.5/branch-api.hpi HTTP/1.1" 200 308984 "-" "Java/1.8.0_212" "-"
    53 127.0.0.1 - - [27/Dec/2019:07:38:32 +0000] "GET /download/plugins/cloudbees-folder/6.10.1/cloudbees-folder.hpi HTTP/1.1" 200 218594 "-" "Java/1.8.0_212" "-"
    54 127.0.0.1 - - [27/Dec/2019:07:38:35 +0000] "GET /download/plugins/pipeline-model-definition/1.5.0/pipeline-model-definition.hpi HTTP/1.1" 200 1490265 "-" "Java/1.8.0_212" "-"
    55 127.0.0.1 - - [27/Dec/2019:07:38:36 +0000] "GET /download/plugins/config-file-provider/3.6.3/config-file-provider.hpi HTTP/1.1" 200 196260 "-" "Java/1.8.0_212" "-"
    56 127.0.0.1 - - [27/Dec/2019:07:38:40 +0000] "GET /download/plugins/gradle/1.35/gradle.hpi HTTP/1.1" 200 71048 "-" "Java/1.8.0_212" "-"
    57 127.0.0.1 - - [27/Dec/2019:07:38:41 +0000] "GET /download/plugins/role-strategy/2.16/role-strategy.hpi HTTP/1.1" 200 104551 "-" "Java/1.8.0_212" "-"

    成功!

    严禁第三方爬虫网站爬取,转载请在醒目位置注明出处:https://www.cnblogs.com/dolphintwo/p/12107853.html

  • 相关阅读:
    @Autowired和@Resource的区别是什么?
    关于事务,事务的特性,spring事务的传播特性
    Java 用Freemarker完美导出word文档(带图片)
    关于 MySQL查询当天、本周,本月,上一个月的数据
    js如何使用radio
    Freemarker提供了3种加载模板目录的方法
    190707Python-MySQL
    190707Python-RabbitMQ
    190707select和selector模块
    4、kubernetes资源清单快速入门190625
  • 原文地址:https://www.cnblogs.com/dolphintwo/p/12107853.html
Copyright © 2011-2022 走看看