- 安装 Helm
bash
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
- 添加 Jenkins Helm 仓库
首先添加 Jenkins Helm 仓库
bash
helm repo add jenkins https://charts.jenkins.io
helm repo update
- 安装 Jenkins
使用 Helm 安装 Jenkins 的最新版本:
bash
helm install jenkins jenkins/jenkins
这将会使用 Helm Chart 安装 Jenkins,并且会自动创建一个 jenkins 的部署、服务和相关资源。
- 查看 Jenkins 的服务
你可以使用以下命令查看 Jenkins 的服务和端口:
bash
kubectl get svc
- 获取 Jenkins 的 初始管理员密码
Jenkins Helm Chart 在安装时会创建一个 Secret,其中包含 Jenkins 的初始管理员密码。你可以通过以下命令获取密码:
bash
kubectl exec --stdin --tty <jenkins-pod-name> -- cat /var/jenkins_home/secrets/initialAdminPassword
将 替换为 Jenkins Pod 的名称。你可以使用 kubectl get pods 查看 Jenkins Pod 的名称。
- 访问 Jenkins
根据服务类型不同,你可以通过以下方式访问 Jenkins:
如果是 NodePort 类型:访问 http://:,其中 是 Kubernetes 节点的 IP 地址, 是服务的 NodePort 端口号。
如果是 LoadBalancer 类型:访问 http://,其中 是 LoadBalancer 分配的外部 IP 地址。
如果使用 kubectl port-forward:可以将 Jenkins 的服务端口映射到本地端口。执行以下命令:
bash
kubectl port-forward svc/jenkins 8080:8080
然后在浏览器中访问 http://localhost:8080。
-
配置 Jenkins
访问 Jenkins 后,使用刚刚获取的初始管理员密码进行登录。然后按照 Jenkins 的引导完成初始配置,安装所需的插件和设置管理员用户。
-
自定义 Jenkins 配置(可选)
你可以根据需要自定义 Jenkins 的配置。修改 Helm 的值文件或 Helm Chart 的配置,可以通过以下命令安装 Jenkins 并指定自定义配置:
bash
helm install jenkins jenkins/jenkins -f values.yaml
jenkins 开启远程访问
- 修改 Jenkins 服务为 NodePort 类型
你可以通过修改 Jenkins 服务的类型为 NodePort 来使其可从集群外部访问。以下是修改服务类型的步骤:
编辑 Jenkins 服务
bash
kubectl edit svc jenkins
在编辑器中,将 type: ClusterIP 修改为 type: NodePort,并保存。最终的 YAML 配置示例如下:
bash
apiVersion: v1
kind: Service
metadata:
name: jenkins
namespace: default
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30000 # 你可以选择一个在 30000-32767 范围内的端口号
selector:
app: jenkins
确认更改
检查 Jenkins 服务是否更新成功:
bash
kubectl get svc jenkins
你应该能看到 TYPE 列变为 NodePort,并且 PORT(S) 列包含 8080:30000/TCP(如果你设置了 nodePort 为 30000)。
访问 Jenkins
通过以下 URL 访问 Jenkins:
bash
http://<node-ip>:30000