Helm项目提供了一个统一的软件打包方式,支持版本控制,可以大大简化Kubernetes应用分发与部署中的复杂性。本教程介绍了如何在Cloud Shell中通过Helm部署Jenkins。

教程介绍

以下步骤及示例均已在Alibaba Cloud Shell教程目录(tutorial-helm-jenkins)中集成。您可以通过点击代码块右上角的试用按钮,快速体验通过Helm部署Jenkins。

在本教程中,您将完成以下操作:

前提条件

在开始前,确保您已满足以下条件:

  • 已经部署了一个Kubernetes集群,并且版本为1.8.4或更高。
    说明 如果您的集群版本不满足要求,请进行升级。
  • 将Kubernetes集群的配置文件存放在Cloud Shell的 ~/.kube/config目录中。

配置Helm

执行以下命令使用阿里云镜像来配置Helm。

helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.12.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
安装成功后,您可以使用以下命令管理Helm:
  • 执行以下命令,查看在存储库中可用的所有Helm charts:
    helm search
  • 执行以下命令,更新charts列表:
    helm repo update
  • 执行以下命令,查看在集群上安装的charts列表:
    helm ls

部署Jenkins

执行以下命令部署Jenkins:
helm install --name my-jenkins --set Persistence.Enabled=false stable/jenkins
说明 Persistence.Enabled设置为false,会禁用PersistentVolume。在您的生产环境下,可以创建一个NAS作为PersistentVolume。

测试验证

完成以下操作,测试部署的Jenkins:
  1. 执行以下命令,获取账号和登录密码:
    helm install --name my-jenkins --set Persistence.Enabled=false stable/jenkins
  2. 执行以下命令,查看登录地址:
    export SERVICE_IP=$(kubectl get svc --namespace default my-jenkins --template '{{ range (index .status.loadBalancer.ingress 0) }}{{ .}}{{ end }}') && echo http://$SERVICE_IP:8080/login
    说明 访问地址可能并不能马上生效,需要等待负载均衡等资源启动完成。您可以使用如下命令,来检查公网IP是否已经被分配。
    kubectl get svc --namespace default my-jenkins
  3. 访问输出在Terminal中的地址,即可看到您刚刚部署完成的Jenkins,可使用获取的账号和密码登录。

删除应用

执行以下命令,删除部署的Jenkins:
helm delete --purge my-jenkins