91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在K8S中安裝jenkins

發布時間:2020-11-05 17:15:33 來源:億速云 閱讀:272 作者:小新 欄目:開發技術

如何在K8S中安裝jenkins?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

以 NFS 為存儲卷的示例,將在 NFS 存儲卷上創建 Jenkins 目錄,然后創建 NFS 類型的 PV、PVC。

1、NFS 存儲卷創建 Jenkins 目錄

進入 NFS Server 服務器,然后再其存儲目錄下創建 Jenkins 目錄,并且確保目錄對其它用戶有讀寫權限。

$ mkdir /nfs/data/jenkins

2、創建 Jenkins 用于存儲的 PV、PVC

創建 Kubernetes 的 PV、PVC 資源,其中 PV 用于與 NFS 關聯,需要設置 NFS Server 服務器地址和掛載的路徑,修改占用空間大小。而 PVC 則是與應用關聯,方便應用與 NFS 綁定掛載,下面是 PV、PVC 的資源對象 yaml 文件。

jenkins-storage.yaml

apiVersion: v1kind: PersistentVolumemetadata:
  name: jenkins
  labels:
    app: jenkinsspec:
  capacity:          
    storage: 50Gi
  accessModes:       
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain  
  mountOptions:         #NFS掛載選項
    - hard
    - nfsvers=4.1    
  nfs:                  #NFS設置
    path: /nfs/data/jenkins   # 根據上一步的地址來定
    server: 192.168.2.11   # 根據nfs server ip實際來設置---kind: PersistentVolumeClaimapiVersion: v1metadata:
  name: jenkinsspec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi     #存儲空間大小
  selector:
    matchLabels:
      app: jenkins

將 PV 與 PVC 部署到 Kubernetes 中:

  • -n:指定 namespace
$ kubectl apply -f jenkins-storage.yaml -n public

3、創建 ServiceAccount & ClusterRoleBinding

Kubernetes 集群一般情況下都默認開啟了 RBAC 權限,所以需要創建一個角色和服務賬戶,設置角色擁有一定權限,然后將角色與 ServiceAccount 綁定,最后將 ServiceAccount 與 Jenkins 綁定,這樣來賦予 Jenkins 一定的權限,使其能夠執行一些需要權限才能進行的操作。這里為了方便,將 cluster-admin 綁定到 ServiceAccount 來保證 Jenkins 擁有足夠的權限。

  • 注意: 請修改下面的 Namespace 參數,改成部署的 Jenkins 所在的 Namespace。

jenkins-rbac.yaml

apiVersion: v1kind: ServiceAccountmetadata:
  name: jenkins-admin       #ServiceAccount名
  namespace: mydlqcloud     #指定namespace,一定要修改成你自己的namespace
  labels:
    name: jenkins---kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:
  name: jenkins-admin
  labels:
    name: jenkinssubjects:
  - kind: ServiceAccount
    name: jenkins-admin
    namespace: mydlqcloudroleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

將 Jenkins 的 RBAC 部署到 Kubernetes 中:

  • -n:指定 namespace
$ kubectl apply -f jenkins-rbac.yaml -n public

4、創建 Service & Deployment

在 Kubernetes 中部署服務需要部署文件,這里部署 Jenkins 需要創建 Service 與 Deployment 對象,其中兩個對象需要做一些配置,如下:

  • Service:Service 暴露兩個接口 8080 與 50000,其中 8080 是 Jenkins API 和 UI 的端口,而 50000 則是供代理使用的端口。
  • Deployment: Deployment 中,需要設置容器安全策略為 runAsUser: 0 賦予容器以 Root 權限運行,并且暴露 8080 與 50000 兩個端口與 Service 對應,而且還要注意的是,還要設置上之前創建的服務賬戶 “jenkins-admin”。

jenkins-deployment.yaml

apiVersion: v1kind: Servicemetadata:
  name: jenkins
  labels:
    app: jenkinsspec:
  type: NodePort
  ports:
  - name: http
    port: 8080                      #服務端口
    targetPort: 8080
    nodePort: 32001                 #NodePort方式暴露 Jenkins 端口
  - name: jnlp
    port: 50000                     #代理端口
    targetPort: 50000
    nodePort: 32002
  selector:
    app: jenkins---apiVersion: apps/v1kind: Deploymentmetadata:
  name: jenkins
  labels:
    app: jenkinsspec:
  selector:
    matchLabels:
      app: jenkins
  replicas: 1
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      serviceAccountName: jenkins-admin
      containers:
      - name: jenkins
        image: jenkins/jenkins:2.204.6
        securityContext:                     
          runAsUser: 0                      #設置以ROOT用戶運行容器
          privileged: true                  #擁有特權
        ports:
        - name: http
          containerPort: 8080
        - name: jnlp
          containerPort: 50000
        resources:
          limits:
            memory: 2Gi
            cpu: "2000m"
          requests:
            memory: 2Gi
            cpu: "2000m"
        env:
        - name: LIMITS_MEMORY
          valueFrom:
            resourceFieldRef:
              resource: limits.memory
              divisor: 1Mi
        - name: "JAVA_OPTS"                 #設置變量,指定時區和 jenkins slave 執行者設置
          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
                 "    
        - name: "JENKINS_OPTS"
          value: "--prefix=/jenkins"         #設置路徑前綴加上 Jenkins
        volumeMounts:                        #設置要掛在的目錄
        - name: data
          mountPath: /var/jenkins_home
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: jenkins                 #設置PVC

參數說明:

  • JAVA_OPTS: JVM 參數設置
  • JENKINS_OPTS: Jenkins 參數設置
  • 其它參數: 默認情況下,Jenkins 生成代理是保守的。例如,如果隊列中有兩個構建,它不會立即生成兩個執行器。它將生成一個執行器,并等待某個時間釋放第一個執行器,然后再決定生成第二個執行器。Jenkins 確保它生成的每個執行器都得到了最大限度的利用。如果你想覆蓋這個行為,并生成一個執行器為每個構建隊列立即不等待,所以在 Jenkins 啟動時候添加這些參數:
-Dhudson.slaves.NodeProvisioner.initialDelay=0
-Dhudson.slaves.NodeProvisioner.MARGIN=50
-Dhudson.slaves.NodeProvisioner.MARGIN0=0.85

有了上面的部署文件后,再將 Jenkins 部署到 Kuberntes 中:

  • -n:指定應用啟動的 namespace
$ kubectl create -f jenkins-deployment.yaml -n mydlqcloud

5、獲取 Jenkins 生成的 Token

在安裝 Jenkins 時候,它默認生成一段隨機字符串在控制臺日志中,用于安裝時驗證。這里需要獲取它輸出在控制臺中的日志信息,來獲取 Token 字符串。

查看 Jenkins Pod 啟動日志

  • -n:指定應用啟動的 namespace
$ kubectl logs $(kubectl get pods -n mydlqcloud | awk '{print $1}' | grep jenkins) -n mydlqcloud

在日志中可以看到,默認給的token為:

*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

96b19967a2aa4e7ab7d2ea5c6f55db8d

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword*************************************************************

6、啟動 Jenkins 進行初始化

輸入 Kubernetes 集群地址和 Jenkins Service 設置的 NodePort 端口號,訪問 Jenkins UI 界面進行初始化,按以下步驟執行:

進入Jenkins

輸入 Kubernetes 集群地址和上面設置的 Nodeport 方式的端口號 32001,然后輸入上面獲取的 Token 字符串。例如,本人 Kubernetes 集群 IP 為 192.168.2.11 ,所以就可以訪問地址 http://192.168.2.11:32001/jenkins 進入 Jenkins 初始化界面。

感謝各位的閱讀!看完上述內容,你們對如何在K8S中安裝jenkins大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉黎县| 富川| 霍林郭勒市| 卫辉市| 重庆市| 江山市| 安乡县| 荣成市| 石狮市| 定南县| 安福县| 乌拉特前旗| 巴彦淖尔市| 喀什市| 双桥区| 常熟市| 盐池县| 龙游县| 玉溪市| 江阴市| 汉阴县| 木兰县| 普安县| 慈溪市| 新宁县| 疏勒县| 高碑店市| 宜州市| 称多县| 海阳市| 盐亭县| 静乐县| 金溪县| 亳州市| 江西省| 黑河市| 朝阳县| 历史| 台北市| 伊宁县| 四会市|