基于OpenShift平台部署Jenkins
DeploymentConfig(jenkin-dc.yml)
apiVersion: apps.openshift.io/v1kind: DeploymentConfigmetadata:labels:app: jenkinsname: jenkinsnamespace: jenkinsspec:replicas: 2selector:app: jenkinsdeploymentconfig: jenkinsstrategy:activeDeadlineSeconds: 21600resources: {}rollingParams:intervalSeconds: 1maxSurge: 25%maxUnavailable: 25%timeoutSeconds: 600updatePeriodSeconds: 1type: Rollingtemplate:metadata:annotations:openshift.io/generated-by: OpenShiftWebConsolecreationTimestamp: nulllabels:app: jenkinsdeploymentconfig: jenkinsspec:containers:- env:- name: JENKINS_PASSWORDvalue: xxxxxxximage: 'openshift/jenkins-2-centos7:v3.11'imagePullPolicy: IfNotPresentname: jenkinsports:- containerPort: 53protocol: TCP- containerPort: 8080protocol: TCP- containerPort: 8443protocol: TCP- containerPort: 50000protocol: TCPresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /var/lib/jenkinsname: jenkins-1dnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30volumes:- emptyDir: {}name: jenkins-1test: falsetriggers:- type: ConfigChange
RBAC(jenkins-rbac.yml)
kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata:namespace: jenkinsname: jenkinsrolerules:- apiGroups: [""]resources: ["pods","deployments","namespaces"]verbs: ["get","list","watch","create"]---kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:name: jenkinsrolebindnamespace: jenkinssubjects:- kind: ServiceAccountname: defaultnamespace: jenkinsroleRef:kind: Rolename: jenkinsrole
Install
docker pull openshift/jenkins-2-centos7:v3.11oc create -f jenkins-rbac.ymloc create -f jenkins-dc.yml
创建service和route
1.通过图形界面创建

2.通过yaml创建
jenkins-service.yml
apiVersion: v1kind: Servicemetadata:labels:app: jenkinsname: jenkinsnamespace: jenkinsspec:clusterIP: 172.30.100.180ports:- name: 53-tcpport: 53protocol: TCPtargetPort: 53- name: 8080-tcpport: 8080protocol: TCPtargetPort: 8080- name: 8443-tcpport: 8443protocol: TCPtargetPort: 8443- name: 50000-tcpport: 50000protocol: TCPtargetPort: 50000selector:deploymentconfig: jenkinssessionAffinity: Nonetype: ClusterIP
jenkins-router.yml
apiVersion: route.openshift.io/v1kind: Routemetadata:labels:app: jenkinsname: jenkinsnamespace: jenkinsspec:host: jenkins-jenkins.router.default.svc.cluster.localport:targetPort: 8080-tcpto:kind: Servicename: jenkinsweight: 100wildcardPolicy: None
更改本地hosts
192.168.0.21 node01.example.com192.168.0.32 node02.example.com192.168.0.21 jenkins-jenkins.router.default.svc.cluster.local
验证测试
账号密码: 默认admin 和JENKINS_PASSWORD变量的密码 xxxxxxxx

