前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes部署jenkins

kubernetes部署jenkins

作者头像
菲宇
发布2019-06-12 15:51:58
1.8K1
发布2019-06-12 15:51:58
举报
文章被收录于专栏:菲宇菲宇

部署Jenkins pod, jenkins-rc.yaml:

代码语言:javascript
复制
apiVersion: apps/v1beta1
kind: Deployment
metadata:
    name: jenkins
spec:
    replicas: 1
    strategy: 
    type: RollingUpdate
    rollingUpdate:
        maxSurge: 1
        maxUnavailable: 0
    template:
        metadata:
            labels:
            app: jenkins
        spec:
            imagePullSecrets:
            - name: myregistrykey
            containers:
            - name: jenkins
            image: harbor.test.com/common/jenkins:latest
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 8080
              name: web
              protocol: TCP
            - containerPort: 50000
              name: agent
              protocol: TCP
            volumeMounts:
            - name: jenkinshome
            mountPath: /var/jenkins_home
            env:
            - name: JAVA_OPTS
              value: "-Duser.timezone=Asia/Shanghai"
       volumes:
       - name: jenkinshome
         nfs:
         server: 192.168.1.131
         path: "/data/nfs/jenkins"

创建pod,并查看:

  1. [root@k8s-master jenkins]# kubectl get pod
  2. NAME READY STATUS RESTARTS AGE
  3. jenkins-2366461543-cjxjq 0/1 CrashLoopBackOff 6 8m

查看pod日志:

  1. [root@k8s-master jenkins]# kubectl logs jenkins-2366461543-cjxjq
  2. touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
  3. Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

问题出在pod挂载了nfs共享过来的目录,但没有写的权限。启动一个Jenkins docker查看Jenkins用户:

  1. jenkins@6f9c8a27d26f:~$ cat /etc/passwd | grep jenkins
  2. jenkins:x:1000:1000::/var/jenkins_home:/bin/bash

在NFS 服务器上修改共享目录的所有人:

  1. [root@k8s-nfs data]# cd nfs/
  2. [root@k8s-nfs nfs]# chown 1000 jenkins/

重新创建Jenkins pod,查看状态:

  1. [root@k8s-master jenkins]# kubectl get pod
  2. NAME READY STATUS RESTARTS AGE
  3. jenkins-2366461543-97tjs 1/1 Running 0 4s

创建Service,jenkins-service.yaml:

代码语言:javascript
复制
kind: Service
apiVersion: v1
metadata:
    labels:
    app: jenkins
    name: jenkins
spec:
    ports:
    - port: 8080
      targetPort: 8080
      name: web
      - port: 50000
        targetPort: 50000
      name: agent
  selector:
      app: jenkins

创建Ingress,jenkins-ingress.yaml:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    name: jenkins
spec:
    tls:
    - hosts:
    - autobuild.test.com
    secretName: jenkins-secret
    rules:
    - host: autobuild.test.com
    http:
    paths:
       - backend:
    serviceName: jenkins
    servicePort: 8080
    path: /

在公网解析域名便可以访问页面。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年09月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档