K8s离线部署DolphinScheduler 3.1.2详记:踩坑与解决

需积分: 5 16 下载量 63 浏览量 更新于2024-08-03 收藏 11.57MB DOC 举报
"这篇文档详细记录了在k8s环境下部署DolphinScheduler 3.1.2版本的过程,包括所需的前提条件、镜像处理、目录结构、命名空间创建、values.yml配置以及与外部数据库的连接设置。" 在 Kubernetes 集群中部署 DolphinScheduler 3.1.2 版本时,首先需要满足一些基础要求,如 Helm 3.1.0 或更高版本,Kubernetes 集群版本至少为 1.12,以及需要持久卷(PV)支持来确保数据的持久化。在进行部署前,可能需要从公共仓库拉取完整的DolphinScheduler镜像,然后将其上传至内网的Harbor私有仓库。如果需要使用MySQL代替PostgreSQL,或者S3代替HDFS,或者支持Python3,可能需要修改Dockerfile并重新构建镜像。 部署步骤包括: 1. 在服务器上创建一个特定的目录,用于存放Dockerfile文件,例如`/opt/ds-server`。在这里,你可以根据需求定制Dockerfile,如添加或修改环境变量、依赖等。 2. 解压DolphinScheduler的源码包到指定目录,并进入`/deploy/kubernetes/dolphinscheduler`子目录,这是部署配置所在的位置。 3. 使用`kubectl`创建一个命名空间,命名空间是Kubernetes中逻辑隔离的单元,用于组织相关的资源和服务。例如,可以创建一个名为`dolphinscheduler`的命名空间。 4. 修改`values.yml`文件,这是Helm部署的配置文件。你需要设定镜像的注册表地址(如Harbor)、标签和拉取策略。拉取策略设为"Always"意味着每次启动时都会尝试拉取最新镜像。 5. 如果DolphinScheduler需要连接外部的MySQL数据库,需要在`values.yaml`中关闭内置的PostgreSQL服务(将`postgresql.enabled`设为`false`),并提供外部数据库的配置,包括主机名、用户名和密码。 6. 部署DolphinScheduler时,使用Helm命令,例如`helm install dolphinscheduler . --namespace dolphinscheduler --values values.yaml`,这会在`dolphinscheduler`命名空间内安装DolphinScheduler。 在整个过程中,需要注意的是,DolphinScheduler的配置可以根据实际环境进行调整,包括但不限于数据库连接、资源存储、服务端口等。此外,监控、日志收集和安全性设置也是部署时需要考虑的重要方面。在Kubernetes环境中,可以利用Ingress进行访问控制,设置ServiceAccount和RoleBinding以实现权限管理,以及使用Horizontal Pod Autoscaler (HPA)来自动调整Pod的数量以应对负载变化。同时,定期备份和更新策略也是保持系统稳定性和安全性的关键步骤。