在Kubernetes(k8s)中部署 jenkins

YAML配置文件

因为jenkins须要长久化存储,通过nfs动静供应pvc存储卷。

能够参考我之前的文档:https://cloud.tencent.com/dev...

vim jenkins-deploy.yamlcat jenkins-deploy.yaml###############应用 storageClass 创立 pvc ###################---apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: jenkins-data-pvc  namespace: defaultspec:  accessModes:    - ReadWriteMany  resources:    requests:      storage: 1Gi###############创立一个ServiceAccount 名称为:jenkins-admin###################---apiVersion: v1kind: ServiceAccountmetadata:  name: jenkins-admin  namespace: default  labels:    name: jenkins###############绑定账户jenkins-admin 为集群管理员角色,为了管制权限倡议绑定自定义角色###################---kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:  name: jenkins-admin  labels:    name: jenkinssubjects:  - kind: ServiceAccount    name: jenkins-admin    namespace: defaultroleRef:  kind: ClusterRole  # cluster-admin 是 k8s 集群中默认的管理员角色  name: cluster-admin  apiGroup: rbac.authorization.k8s.io############### 在 default 命名空间创立 deployment ###################---apiVersion: apps/v1kind: Deploymentmetadata:  name: jenkins  namespace: defaultspec:  replicas: 1  selector:    matchLabels:      app: jenkins  template:    metadata:      labels:        app: jenkins    spec:      terminationGracePeriodSeconds: 10      # 留神:k8s 1.21.x 中 serviceAccount 改名为 serviceAccountName      # 这里填写下面创立的 serviceAccount 的 name      serviceAccount: jenkins-admin      containers:        - name: jenkins          image: jenkins/jenkins:latest          imagePullPolicy: IfNotPresent          env:            - name: JAVA_OPTS              value: -Duser.timezone=Asia/Shanghai          ports:            - containerPort: 8080              name: web              protocol: TCP            - containerPort: 50000              name: agent              protocol: TCP          resources:            limits:              cpu: 1000m              memory: 1Gi            requests:              cpu: 500m              memory: 512Mi          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              mountPath: /var/jenkins_home      volumes:        - name: jenkinshome          persistentVolumeClaim:            claimName: jenkins-data-pvc############### 在 default 命名空间创立 service ###################---apiVersion: v1kind: Servicemetadata:  name: jenkins  namespace: default  labels:    app: jenkinsspec:  selector:    app: jenkins  type: ClusterIP  ports:    - name: web      port: 8080      targetPort: 8080---apiVersion: v1kind: Servicemetadata:  name: jenkins-agent  namespace: default  labels:    app: jenkinsspec:  selector:    app: jenkins  type: ClusterIP  ports:    - name: agent      port: 50000      targetPort: 50000

执行部署

kubectl apply -f jenkins-deploy.yamlpersistentvolumeclaim/jenkins-data-pvc createdserviceaccount/jenkins-admin createdclusterrolebinding.rbac.authorization.k8s.io/jenkins-admin createddeployment.apps/jenkins createdservice/jenkins createdservice/jenkins-agent created

拜访测试

# 查看svckubectl  get svc | grep jenkinsNAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGEjenkins         ClusterIP   10.99.124.103   <none>        8080/TCP       3m7sjenkins-agent   ClusterIP   10.98.21.139    <none>        50000/TCP      3m6s# 批改为NodePortkubectl  edit svc jenkinstype: NodePort# 查看批改后的svc端口kubectl  get svc | grep jenkinsjenkins         NodePort    10.99.124.103   <none>        8080:31613/TCP   4m24sjenkins-agent   ClusterIP   10.98.21.139    <none>        50000/TCP        4m23s

查看明码

# 查看pod名称kubectl get pod -n default | grep jenkinsjenkins-7db75dbcb9-76l7l                  1/1     Running   0          5m11s# 查看默认明码kubectl  exec jenkins-7db75dbcb9-76l7l -- cat /var/jenkins_home/secrets/initialAdminPassworda9b2d13bc4c9453f93bb83e43a780f7c

对于

https://www.oiox.cn/

https://www.oiox.cn/index.php...

CSDN、GitHub、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、集体博客

全网可搜《小陈运维》

文章次要公布于微信公众号