最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

K8S部署安裝Jenkins全過程

 更新時間:2026年06月08日 09:09:41   作者:黑蛋同志  
在Kubernetes上部署Jenkins并創(chuàng)建Namespace、ServiceAccount、PersistentVolume和Deployment,確保Jenkins能夠持久化存儲數(shù)據(jù)并從外部訪問

1.Jenkins Kubernetes 清單文件

此處使用的所有 Jenkins Kubernetes 清單文件都托管在 GitHub 上。

克隆存儲庫。

[root@master test]# git clone https://github.com/scriptcamp/kubernetes-jenkins
正克隆到 'kubernetes-jenkins'...
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 16 (delta 1), reused 0 (delta 0), pack-reused 9
接收對象中: 100% (16/16), 完成.
處理 delta 中: 100% (1/1), 完成

root@master test]# cd kubernetes-jenkins/
[root@master kubernetes-jenkins]# ls
deployment.yaml  namespace.yaml  README.md  serviceAccount.yaml  service.yaml  volume.yaml

2.Kubernetes Jenkins 部署

讓我們開始在 Kubernetes 上部署 Jenkins。

1、為 Jenkins 創(chuàng)建 Namespace

最好將所有DevOps工具分類為與其他應(yīng)用程序分開的命名空間。

[root@master kubernetes-jenkins]# kubectl  create namespace devops-tools
namespace/devops-tools created
#查看空間名
[root@master jenkins]# kubectl get namespaces
NAME              STATUS   AGE
default           Active   6d
devops-tools      Active   58m
ingress-nginx     Active   4d23h
jenkins           Active   3d18h
kube-flannel      Active   6d
kube-node-lease   Active   6d
kube-public       Active   6d
kube-system       Active   6d
[root@master jenkins]

2、創(chuàng)建“serviceAccount.yaml”文件并復(fù)制以下管理員服務(wù)帳戶清單

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: jenkins-admin
rules:
  - apiGroups: [""]
    resources: ["*"]
    verbs: ["*"]
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins-admin
  namespace: devops-tools
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: jenkins-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: jenkins-admin
subjects:
- kind: ServiceAccount
  name: jenkins-admin
  namespace: devops-tools

serviceAccount.yaml’ 創(chuàng)建一個 ‘jenkins-admin’ clusterRole, ‘jenkins-admin’ ServiceAccount,并將 ‘clusterRole’ 綁定到服務(wù)賬戶。

“jenkins-admin”集群角色具有管理集群組件的所有權(quán)限。 您還可以通過指定單個資源操作來限制訪問。

kubectl 創(chuàng)建服務(wù)帳戶。

[root@master kubernetes-jenkins]# kubectl apply -f serviceAccount.yaml
clusterrole.rbac.authorization.k8s.io/jenkins-admin created

3、創(chuàng)建“volume.yaml”并復(fù)制以下持久性卷清單

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-pv-volume
  labels:
    type: local
spec:
  storageClassName: local-storage
  claimRef:
    name: jenkins-pv-claim
    namespace: devops-tools
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  local:
    path: /mnt
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1 #替換為任何一個集群工作節(jié)點(diǎn)主機(jī)名
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-pv-claim
  namespace: devops-tools
spec:
  storageClassName: local-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

重要提示:將“node1”替換為任何一個集群工作節(jié)點(diǎn)主機(jī)名。

kubectl 獲取工作節(jié)點(diǎn)主機(jī)名。

[root@master jenkins]# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   6d    v1.23.12
node1    Ready    <none>                 6d    v1.23.12
node2    Ready    <none>                 6d    v1.23.12

對于卷,我們使用“本地”存儲類進(jìn)行演示。 這意味著,它在“/mnt”位置下的特定節(jié)點(diǎn)中創(chuàng)建一個“PersistentVolume”卷。

由于“本地”存儲類需要節(jié)點(diǎn)選擇器,因此您需要正確指定工作節(jié)點(diǎn)名稱,以便 Jenkins pod 在特定節(jié)點(diǎn)中進(jìn)行調(diào)度。

如果 pod 被刪除或重新啟動,數(shù)據(jù)將保留在節(jié)點(diǎn)卷中。 但是,如果節(jié)點(diǎn)被刪除,您將丟失所有數(shù)據(jù)。

理想情況下,您應(yīng)使用云提供商提供的可用存儲類的持久卷,或者使用集群管理員提供的持久性卷,以在節(jié)點(diǎn)故障時持久化數(shù)據(jù)。

使用 kubectl 創(chuàng)建卷

[root@master kubernetes-jenkins]# kubectl  create  -f volume.yaml 
storageclass.storage.k8s.io/local-storage created

4、創(chuàng)建名為“deployment.yaml”的部署文件,并復(fù)制以下部署清單

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
  namespace: devops-tools
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins-server
  template:
    metadata:
      labels:
        app: jenkins-server
    spec:
      securityContext:
            fsGroup: 1000
            runAsUser: 1000
      serviceAccountName: jenkins-admin
      containers:
        - name: jenkins
          image: jenkins/jenkins:lts
          resources:
            limits:
              memory: "2Gi"
              cpu: "1000m"
            requests:
              memory: "500Mi"
              cpu: "500m"
          ports:
            - name: httpport
              containerPort: 8080
            - name: jnlpport
              containerPort: 50000
          livenessProbe:
            httpGet:
              path: "/login"
              port: 8080
            initialDelaySeconds: 90
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 5
          readinessProbe:
            httpGet:
              path: "/login"
              port: 8080
            initialDelaySeconds: 60
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 3
          volumeMounts:
            - name: jenkins-data
              mountPath: /var/jenkins_home
      volumes:
        - name: jenkins-data
          persistentVolumeClaim:
              claimName: jenkins-pv-claim

在這個 Jenkins Kubernetes 部署中,我們使用了以下內(nèi)容:

  • 1.ecurityContext’,以便 Jenkins pod 能夠?qū)懭氡镜爻志镁怼?/li>
  • 2.活動和就緒情況探測,用于監(jiān)視 Jenkins pod 的運(yùn)行狀況。
  • 3.基于保存 Jenkins 數(shù)據(jù)路徑“/var/jenkins_home”的本地持久性卷。

如果不需要本地存儲持久卷,可以將部署中的卷定義替換為主機(jī)目錄,如下所示。

volumes:
- name: jenkins-data
  emptyDir: \{}

1.使用 kubectl 創(chuàng)建部署。

[root@master kubernetes-jenkins]# kubectl apply -f deployment.yaml
deployment.apps/jenkins created

2.檢查部署狀態(tài)。

[root@master kubernetes-jenkins]# kubectl get deployments -n devops-tools
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
jenkins   0/1     1            0           9s

3.查看部署詳細(xì)信息。

[root@master kubernetes-jenkins]# kubectl describe deployments --namespace=devops-tools
Name:                   jenkins
Namespace:              devops-tools
CreationTimestamp:      Sun, 04 Aug 2024 22:15:18 -0400
Labels:                 <none>
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=jenkins-server
Replicas:               1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:           app=jenkins-server
  Service Account:  jenkins-admin
  Containers:
   jenkins:
    Image:       jenkins/jenkins:lts
    Ports:       8080/TCP, 50000/TCP
    Host Ports:  0/TCP, 0/TCP
    Limits:
      cpu:     1
      memory:  2Gi
    Requests:
      cpu:        500m
      memory:     500Mi
    Liveness:     http-get http://:8080/login delay=90s timeout=5s period=10s #success=1 #failure=5
    Readiness:    http-get http://:8080/login delay=60s timeout=5s period=10s #success=1 #failure=3
    Environment:  <none>
    Mounts:
      /var/jenkins_home from jenkins-data (rw)
  Volumes:
   jenkins-data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  jenkins-pv-claim
    ReadOnly:   false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      False   MinimumReplicasUnavailable
  Progressing    True    ReplicaSetUpdated
OldReplicaSets:  <none>
NewReplicaSet:   jenkins-b96f7764f (1/1 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  14s   deployment-controller  Scaled up replica set jenkins-b96f7764f to 1

3.使用 Kubernetes 服務(wù)訪問 Jenkins

現(xiàn)在,我們已經(jīng)創(chuàng)建了一個部署。 但是,它無法向外界開放。 為了從外部世界訪問 Jenkins 部署,我們需要創(chuàng)建一個服務(wù)并將其映射到部署。

1.創(chuàng)建“service.yaml”并復(fù)制以下服務(wù)清單

apiVersion: v1
kind: Service
metadata:
  name: jenkins-service
  namespace: devops-tools
  annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/path:   /
      prometheus.io/port:   '8080'
spec:
  selector:
    app: jenkins-server
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 32000

在這里,我們使用類型為“NodePort”,它將在端口 32000 上的所有 kubernetes 節(jié)點(diǎn) IP 上公開 Jenkins。

如果您有入口設(shè)置,則可以創(chuàng)建入口規(guī)則來訪問 Jenkins。 此外,如果您在 AWS、Google 或 Azure 云上運(yùn)行集群,則可以將 Jenkins 服務(wù)公開為 Loadbalancer。

2.使用 kubectl 創(chuàng)建 Jenkins 服務(wù)

[root@master kubernetes-jenkins]# kubectl apply -f service.yaml
service/jenkins-service created

3.顯示devops-tools所有 Deployme 中的命名空間

[root@master kubernetes-jenkins]# kubectl get deployments -n devops-tools
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
jenkins   0/1     1            0           31s

4.顯示devops-tools所有 Pod 中的命名空間

[root@master kubernetes-jenkins]# kubectl get pods --namespace=devops-tools
NAME                      READY   STATUS    RESTARTS   AGE
jenkins-b96f7764f-7zzbn   1/1     Running   0          3m5s

5.運(yùn)行 exec 命令直接從如下所示的位置獲取密碼

kubectl exec -it jenkins-b96f7764f-7zzbn cat /var/jenkins_home/secrets/initialAdminPassword -n devops-tools

4.訪問 Jenkins 儀表板和安裝設(shè)置

瀏覽器輸入:http://<node-ip>:32000

將 管理員賬戶密碼 復(fù)制到對應(yīng)的地方,點(diǎn)擊 繼續(xù)

這里建議點(diǎn)擊 選擇插件來安裝,在點(diǎn)擊 無 ,不安裝任何插件,再點(diǎn)擊 安裝,因?yàn)槲覀儧]有配置鏡像,安裝插件是從外網(wǎng)下載過來的,會比較慢,并且下載的插件可能會出現(xiàn)不兼容等狀況,導(dǎo)致失敗率很高

[進(jìn)入到創(chuàng)建管理員頁面,填寫賬戶信息后 保存并完成

進(jìn)入以下頁面配置 jenkins 的 url ,一般使用默認(rèn)的就行了,保存并完成

可以點(diǎn)擊 開始使用 Jenkins 直接登錄進(jìn)入 Jenkins

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • ragflow?k8s部署過程圖文詳解

    ragflow?k8s部署過程圖文詳解

    這篇文章主要介紹了ragflow?k8s部署詳細(xì)過程,本文將使用ragflow-0.18.0,來進(jìn)行演示詳細(xì)部署過程,需要的朋友可以參考下
    2025-04-04
  • Kubernetes安裝Jenkins的思路詳解

    Kubernetes安裝Jenkins的思路詳解

    這篇文章主要介紹了Kubernetes安裝Jenkins,Jenkins插件可以在Kubernetes集群中運(yùn)行動態(tài)jenkins-slave代理,基于Kubernetes的docker,自動化在Kubernetes中運(yùn)行的Jenkins-slave代理的縮放,需要的朋友可以參考下
    2022-06-06
  • Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解

    Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解

    這篇文章主要為大家介紹了Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • kubernetes認(rèn)證鑒權(quán)內(nèi)容淺析

    kubernetes認(rèn)證鑒權(quán)內(nèi)容淺析

    這篇文章主要為大家介紹了kubernetes認(rèn)證鑒權(quán)內(nèi)容淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 阿里云oss對象存儲使用詳細(xì)步驟

    阿里云oss對象存儲使用詳細(xì)步驟

    本文主要介紹了阿里云oss對象存儲使用詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • kubeadm部署k8s集群全過程

    kubeadm部署k8s集群全過程

    本文詳細(xì)描述了如何在VMware虛擬機(jī)上基于CentOS8操作系統(tǒng)搭建Kubernetes集群,包括環(huán)境準(zhǔn)備、Docker安裝、Kubernetes組件安裝、網(wǎng)絡(luò)插件配置以及KuboardUI的安裝和訪問
    2025-01-01
  • kubernetes 使用jq命令對資源配置查看方式

    kubernetes 使用jq命令對資源配置查看方式

    這篇文章主要介紹了kubernetes 使用jq命令對資源配置查看方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Kubernetes中根據(jù)Pod IP查找Pod及關(guān)聯(lián)服務(wù)的實(shí)現(xiàn)方式

    Kubernetes中根據(jù)Pod IP查找Pod及關(guān)聯(lián)服務(wù)的實(shí)現(xiàn)方式

    文章介紹Kubernetes中通過Endpoints、Service選擇器、網(wǎng)絡(luò)策略及節(jié)點(diǎn)IPVS/iptables等方法快速定位Pod與關(guān)聯(lián)Service的技巧,推薦優(yōu)先使用Endpoints并結(jié)合標(biāo)簽匹配,適用于調(diào)試和運(yùn)維場景
    2025-10-10
  • DeepSeek-R1 云環(huán)境搭建部署流程

    DeepSeek-R1 云環(huán)境搭建部署流程

    本文主要介紹了DeepSeek-R1 云環(huán)境搭建部署流程,包括注冊、選擇合適的服務(wù)器配置、部署DeepSeek模型及通過UI界面和SSH連接進(jìn)行操作,感興趣的可以了解一下
    2025-02-02
  • k8s之安全機(jī)制的使用及說明

    k8s之安全機(jī)制的使用及說明

    Kubernetes的安全機(jī)制主要圍繞保護(hù)APIServer來設(shè)計,包括認(rèn)證、鑒權(quán)和準(zhǔn)入控制三部分,認(rèn)證通過Token、Basic和HTTPS證書進(jìn)行,鑒權(quán)使用AlwaysDeny、AlwaysAllow、ABAC、WebHook和RBAC,準(zhǔn)入控制通過插件進(jìn)行
    2025-11-11

最新評論

普安县| 郓城县| 玉龙| 阿拉善盟| 江油市| 阜南县| 新晃| 仙居县| 昭觉县| 阿拉善左旗| 焦作市| 舟曲县| 黎城县| 德惠市| 南澳县| 北碚区| 扎鲁特旗| 蕉岭县| 渝中区| 菏泽市| 韶山市| 龙胜| 行唐县| 靖宇县| 桐庐县| 聂荣县| 江北区| 辽宁省| 岗巴县| 错那县| 永新县| 古田县| 太保市| 石台县| 德令哈市| 榕江县| 监利县| 丹寨县| 溧阳市| 三门峡市| 汾西县|