Kubernetes集群安装Jenkins教程介绍
Jenkins 是一个持续集成工具,可以自动化大部分软件开发过程。在复杂的微服务环境中从事多个项目的多个开发团队可能会对有限的资源造成压力。Jenkins 帮助你按时交付完美无瑕的最终产品。
如何在Kubernetes集群上安装Jenkins?本教程将向你展示如何在 Kubernetes 集群上安装 Jenkins。
先决条件
- 访问命令行/终端
- Kubernetes集群
- 在本地机器上完全配置的 kubectl 命令行工具
在 Kubernetes 集群上安装 Jenkins
Kubernetes集群如何安装Jenkins?Kubernetes 集群为 Jenkins 添加了一个新的自动化层。Kubernetes 确保资源得到有效利用,并且你的服务器和底层基础设施不会过载。
Kubernetes 编排容器部署的能力确保 Jenkins 始终拥有适量的可用资源。
下面的示例向你展示了如何使用一组 YAML(另一种标记语言)文件在 Kubernetes 集群上安装 Jenkins。该.yaml文件很容易跟踪,编辑和可以无限重复使用。
注意:本文中的 YAML 文件说明了 Jenkins 部署过程。如果不修改它们以适应集群的特定设置和网络资源,则不应在生产环境中使用它们。
为 Jenkins 部署创建命名空间
一个独特的命名空间提供了一个额外的隔离层和对持续集成环境的更多控制。通过在终端上键入以下命令为 Jenkins 部署创建命名空间:
kubectl create namespace jenkins
命名空间的名称应该是 DNS 兼容标签。在本例中,我们将其命名为jenkins 。
使用以下命令列出现有的命名空间:
kubectl get namespaces
输出确认jenkins命名空间已成功创建。
创建 Jenkins 部署文件
如何在Kubernetes集群上安装Jenkins?一旦我们有了指定的命名空间,就可以使用你喜欢的 Linux 文本编辑器 来创建jenkins-deployment.yaml文件。
本示例中的部署文件使用jenkins/jenkins:lts Docker 映像并创建1 个将在端口 8080上公开的副本。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: jenkins-deployment
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- containerPort: 8080
volumeMounts:
- name: jenkins-home
mountPath: /var/jenkins_home
volumes:
- name: jenkins-home
emptyDir: {}
文件的volumeMounts部分创建一个Persistent Volume。持久卷的作用是存储基本的 Jenkins 数据,并在 Pod 的生命周期之后保留这些数据。将内容添加到 Jenkins 部署文件后,退出并保存更改。
注意:在生产集群中,你不会使用 hostPath。相反,集群管理员将提供网络资源,例如 Amazon Elastic Block Store 卷或 Google Compute Engine 永久磁盘。
部署Jenkins
Kubernetes集群如何安装Jenkins?使用新创建的文件部署 Jenkins:
kubectl create -f jenkins-deployment.yaml --namespace jenkins
该命令还指示系统在jenkins命名空间内安装 Jenkins 。
Kubernetes集群安装Jenkins教程:创建和部署 Jenkins 服务
Kubernetes 管理集群内 Pod 的生命周期。它会定期删除和部署 Pod 以达到所需的状态并平衡工作负载。服务是一种抽象,它将 Jenkins 暴露给更广泛的网络。它允许我们保持与 Pod 的持久连接,而不管集群内发生的变化。
通过使用文本编辑器添加以下内容,使用jenkins-service.yaml文件创建服务:
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 44000
selector:
app: jenkins
通过输入以下命令标记jenkins命名空间并创建服务:
kubectl create -f jenkins-service.yaml --namespace jenkins
你现在可以访问 Jenkins 仪表板。
访问 Jenkins 仪表板
如何在Kubernetes集群上安装Jenkins?转到浏览器并使用节点的 IP 和你在服务文件中定义的端口访问节点。
例如:
http://node_ip_address:44000
要访问 Jenkins,你最初需要输入你的凭据。新安装的默认用户名是admin。可以通过多种方式获取密码。此示例使用 Jenkins 部署 pod 名称。要查找 pod 的名称,请输入以下命令:
kubectl get pods --namespace jenkins
找到 pod 的名称后,使用它来访问 pod 的日志。
kubectl logs jenkins-deployment-45345423412-k9003 --namespace jenkins
密码位于日志末尾,格式为长字母数字字符串。
Kubernetes集群如何安装Jenkins?你已在 Kubernetes 集群上成功安装 Jenkins,可以使用它来创建新的高效开发管道。
Jenkins是如何工作的?(额外说明)
Jenkins 已成为自动化软件开发管道的行业标准。在持续集成的概念出现之前,开发过程经常受到复杂的集成和冗长的测试程序的阻碍。在稍后阶段发现代码中的缺陷通常会破坏构建并延迟软件发布。
持续集成 DevOps 工具可在开发的早期阶段对代码质量进行快速评估。开发人员可以使用此信息进行必要的更改,重复该过程,直到他们创建出无错误的产品。
Jenkins 是一个自包含的解决方案,兼容数百个集成插件,形成一个全面且易于使用的环境。
开发人员将代码提交到存储库。CI 服务器 (Jenkins) 会定期侦听对源代码存储库所做的更改。Jenkins 然后构建源代码实例并生成可部署的工件。构建过程包括代码质量保证测试和安全检查。
Jenkins 使用插件(如SonarQube)来生成质量保证和构建过程的详细指标。如果构建失败,则会向开发人员提供测试失败的信息和原因,以便对提交的代码进行其他更改。
这种连续循环产生了抛光良好的产品。Jenkins 创建了一个可立即部署的 JAR 包,可以进入下一阶段的开发/生产。
Kubernetes集群安装Jenkins教程结论
如何在Kubernetes集群上安装Jenkins?现在你知道如何在 Kubernetes 集群上安装 Jenkins。Jenkins 可以自动化许多任务并帮助开发人员高效且一致地提交代码。你的开发人员效率更高,不再需要通过手动运行本地构建和测试来浪费时间。