在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、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、集体博客
全网可搜《小陈运维》
文章次要公布于微信公众号