基于K8s平台部署Jenkins环境
作者:redrose2100   类别:    日期:2022-10-14 05:28:28    阅读:1420 次   消耗积分:0 分

【原文链接】基于K8s平台部署Jenkins环境

1 编写jenkins.yaml文件,内容如下:

  1. apiVersion: v1
  2. kind: Namespace
  3. metadata:
  4. name: devops
  5. ---
  6. apiVersion: apps/v1
  7. kind: Deployment
  8. metadata:
  9. name: devops-jenkins
  10. namespace: devops
  11. spec:
  12. replicas: 1
  13. revisionHistoryLimit: 5
  14. strategy:
  15. type: RollingUpdate
  16. selector:
  17. matchLabels:
  18. app: devops-jenkins
  19. template:
  20. metadata:
  21. labels:
  22. app: devops-jenkins
  23. spec:
  24. volumes:
  25. - name: devops-jenkins
  26. nfs:
  27. server: xx.xx.xx.xx # 挂载存储的服务器的ip
  28. path: /root/data/nfs/jenkins/devops # 挂载存储的路径
  29. containers:
  30. - name: devops-jenkins
  31. image: jenkins/jenkins
  32. env:
  33. - name: LIMITS_MEMORY
  34. valueFrom:
  35. resourceFieldRef:
  36. resource: limits.memory
  37. divisor: 1Mi
  38. - name: JAVA_OPTS
  39. value: -Xmx$(LIMITS_MEMORY)m -XshowSettings:vm -Dhudson.slaves.NodeProvisioner.initialDelay=0 -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85
  40. imagePullPolicy: Always
  41. ports:
  42. - containerPort: 8080
  43. volumeMounts:
  44. - name: devops-jenkins
  45. mountPath: /var/jenkins_home
  46. ---
  47. apiVersion: v1
  48. kind: Service
  49. metadata:
  50. name: devops-jenkins
  51. namespace: devops
  52. spec:
  53. ports:
  54. - port: 8080
  55. protocol: TCP
  56. targetPort: 8080
  57. nodePort: 30002
  58. selector:
  59. app: devops-jenkins
  60. type: NodePort
  61. sessionAffinity: ClientIP
  62. ---
  63. apiVersion: v1
  64. kind: ServiceAccount
  65. metadata:
  66. name: devops-jenkins
  67. namespace: devops
  68. ---
  69. kind: Role
  70. apiVersion: rbac.authorization.k8s.io/v1
  71. metadata:
  72. name: devops-jenkins
  73. namespace: devops
  74. rules:
  75. - apiGroups: [""]
  76. resources: ["pods","events"]
  77. verbs: ["create","delete","get","list","patch","update","watch"]
  78. - apiGroups: [""]
  79. resources: ["pods/exec"]
  80. verbs: ["create","delete","get","list","patch","update","watch"]
  81. - apiGroups: [""]
  82. resources: ["pods/log"]
  83. verbs: ["get","list","watch"]
  84. - apiGroups: [""]
  85. resources: ["secrets","events"]
  86. verbs: ["get"]
  87. ---
  88. apiVersion: rbac.authorization.k8s.io/v1
  89. kind: RoleBinding
  90. metadata:
  91. name: devops-jenkins
  92. namespace: devops
  93. roleRef:
  94. apiGroup: rbac.authorization.k8s.io
  95. kind: Role
  96. name: devops-jenkins
  97. subjects:
  98. - kind: ServiceAccount
  99. name: devops-jenkins

2 对挂载的存储修改所属组

  1. mkdir -p /root/data/nfs/jenkins/devops
  2. chown -R 1000 /root/data/nfs/jenkins/devops

3 执行如下命令创建Jenkins

  1. kubectl apply -f jenkins.yaml

4 使用如下命令查看创建的Pod状态

  1. kubectl get pod -n devops

5 在浏览器通过ip+端口访问,这里端口为30002

6 根据上面提示,使用如下命令查看密码

  1. kubectl exec -it devops-jenkins-9d4555c89-xzz55 /bin/cat /var/jenkins_home/secrets/initialAdminPassword -n devops

7 复制上述密码,填入WEB登录页面

8 为了方便,这里可以选择推荐插件安装,如果自定义安装的话,需要对Jenkins的常用插件比较了解

9 然后设置管理员用户名密码等

10 确认Jenkins的Url

11 点击【开始使用Jenkins】

12 至此,Jenkins就安装完成了

始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/409
个人成就
  • 博客总数: 613 
  • 阅读总量: 735429 
  • 2022年 : 371 篇 
  • 2023年 : 211 篇 
  • 2024年 : 31 篇 
  • 2025年 : 0 篇 
测试开发技术全栈公众号
DevOps技术交流微信群