k8s如何部署分散式jenkins
Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。 |
前提條件是,有storageclass,利用pvc 建立持久化儲存 建立kube-ops namespace
這裡建立opspvc 另外把accessmode 換成readwritemany,因為會有多個pod 進行讀寫
然後部署jenkins master deployment如下
--- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: jenkins namespace: kube-ops spec: template: metadata: labels: app: jenkins spec: terminationGracePeriodSeconds: 10 serviceAccountName: jenkins containers: - name: jenkins image: jenkins/jenkins:lts imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: web protocol: TCP - containerPort: 50000 name: agent protocol: TCP resources: limits: cpu: 2000m memory: 4Gi requests: cpu: 1000m memory: 2Gi livenessProbe: httpGet: path: /login port: 8080 initialDelaySeconds: 60 timeoutSeconds: 5 failureThreshold: 12 readinessProbe: httpGet: path: /login port: 8080 initialDelaySeconds: 60 timeoutSeconds: 5 failureThreshold: 12 volumeMounts: - name: jenkinshome subPath: jenkins mountPath: /var/jenkins_home 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 -Duser.timezone=Asia/Shanghai securityContext: fsGroup: 1000 volumes: - name: jenkinshome persistentVolumeClaim: claimName: opspvc --- apiVersion: v1 kind: Service metadata: name: jenkins namespace: kube-ops labels: app: jenkins spec: selector: app: jenkins ports: - name: web port: 8080 targetPort: web - name: agent port: 50000 targetPort: agent
分配許可權,配置rbac如下
apiVersion: v1 kind: ServiceAccount metadata: name: jenkins namespace: kube-ops --- kind: Role apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: jenkins namespace: kube-ops rules: - apiGroups: [""] resources: ["pods"] verbs: ["create","delete","get","list","patch","update","watch"] - apiGroups: [""] resources: ["pods/exec"] verbs: ["create","delete","get","list","patch","update","watch"] - apiGroups: [""] resources: ["pods/log"] verbs: ["get","list","watch"] - apiGroups: [""] resources: ["secrets"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: RoleBinding metadata: name: jenkins namespace: kube-ops roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: jenkins subjects: - kind: ServiceAccount name: jenkins namespace: kube-ops
安裝k8s 外掛,與k8s 目標叢集進行遠端連線
因為是騰訊雲,並沒有提供tls 客戶端認證,所以直接利用賬號密碼,進行認證,記得,禁用https 證照檢查,jenkins和k8s 就整合好了
劃重點!!!:jenkins地址,這裡我這裡寫的是內網地址以及暴露了50000埠(用來與slave 建立通訊使用),因為master 和slave 分別在不通的k8s 叢集裡,那麼需要遠端進行聯通,而jenkins-ui 我是以ingress 的方式對外暴露
slave 的配置
這裡需要注意的是標籤列表,這裡填寫的標籤,需要在slave 所在k8s 叢集的節點上進行標註,而這個名字,是label這個欄位裡的key 並未是value,這裡要注意
job 裡配置
這個意思就是 slave 會盡可能的在這個節點build
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2683023/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式爬蟲的部署之Scrapyd分散式部署分散式爬蟲
- MinIO 的分散式部署分散式
- 分散式爬蟲的部署之Gerapy分散式管理分散式爬蟲
- Jenkins部署Jenkins
- Ceph分散式叢集部署分散式
- 短影片直播系統為什麼需要分散式部署,淺談分散式部署分散式
- 分散式爬蟲的部署之Scrapyd批量部署分散式爬蟲
- docker 部署jenkinsDockerJenkins
- jenkins前端部署Jenkins前端
- k8s下的jenkins如何設定mavenK8SJenkinsMaven
- 基於K8s構建Jenkins持續整合平臺(部署流程)K8SJenkins
- Jenkins file一行程式碼部署.NET程式到K8SJenkins行程K8S
- Mac部署hadoop3(偽分散式)MacHadoop分散式
- 部署GPS分散式檔案系統分散式
- 分散式Jmeter壓測機的部署分散式JMeter
- Redis 偽分散式安裝部署配置Redis分散式
- LTS分散式任務排程部署分散式
- Jenkins PHP 部署示例JenkinsPHP
- windows下安裝Jenkins以及配置分散式agent節點WindowsJenkins分散式
- 怎麼Jenkins配置分散式環境的安全釋出?Jenkins分散式
- python+selenium+unittest+page object 如何部署到 jenkins?PythonObjectJenkins
- jenkins連線k8sJenkinsK8S
- k8s安裝jenkinsK8SJenkins
- 004.MinIO-DirectPV分散式儲存部署分散式
- DolphinScheduler分散式叢集部署指南(小白版)分散式
- centOS 7-Hadoop3.3.0完全分散式部署CentOSHadoop分散式
- GFS分散式檔案系統部署解析分散式
- JEESZ分散式框架開發環境部署分散式框架開發環境
- 如何簡單高效地部署和監控分散式爬蟲專案分散式爬蟲
- 怎麼用Jenkins配置分散式環境的安全釋出?Jenkins分散式
- Jenkins部署架構概述Jenkins架構
- Jenkins部署以及基本使用Jenkins
- 基於docker部署jenkinsDockerJenkins
- Jenkins自動部署配置Jenkins
- Jenkins安裝部署(一)Jenkins
- k8s 中安裝 jenkinsK8SJenkins
- 技術分享| 如何部署安裝分散式序列號生成器系統分散式
- LNMP 分散式叢集(五):ThinkPHP專案部署LNMP分散式PHP