Kubernetes(k8s)离线部署DolphinScheduler3.2.2

1.环境准备

1.1 集群规划

本次安装环境为:3台k8s+现有的postgreSql数据库+zookeeper服务

1.2 下载及介绍

DolphinScheduler-3.2.2官网:https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2
官网安装文档:https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/guide/installation/kubernetes

2.前置工作

默认k8s集群已经安装完成,本次以kubesphere为例介绍
参考kubesphere官方文档:https://kubesphere.io/zh/

2.1 Helm配置

下载 Helm 客户端
下载地址:https://github.com/helm/helm/releases

# 下载
wget https://get.helm.sh/helm-v3.14.3-linux-amd64.tar.gz# 解压
tar -zxvf helm-v3.14.3-linux-amd64.tar.gz# 移动到可执行目录
mv linux-amd64/helm /usr/local/bin/helm# 查看 helm 版本(确保可正常运行)
helm version
#version.BuildInfo{Version:"v3.14.3", GitCommit:"f03cc04caaa8f6d7c3e67cf918929150cf6f3f12", GitTreeState:"clean", GoVersion:"go1.21.7"}

helm常用命令举例

#helm 删除 官方仓库
helm repo remove  stable  
#仓库管理)查看添加的chart仓库,可在这些chart仓库中拉取chart
helm repo list#将chart包发布到k8s集群中安装部署
helm install releaseName chartName  
#列出所有已发布的版本
helm list
helm list -n test
helm list -A

2.2 下载dolphinscheduler镜像

dolphinscheduler镜像

# 拉取镜像
docker pull hub.rat.dev/apache/dolphinscheduler-tools:latest
docker pull hub.rat.dev/apache/dolphinscheduler-api:latest
docker pull hub.rat.dev/apache/dolphinscheduler-alter-server:latest
docker pull hub.rat.dev/apache/dolphinscheduler-master:latest
docker pull hub.rat.dev/apache/dolphinscheduler-worker:latest
# 导出镜像
docker  save -o api.tar hub.rat.dev/apache/dolphinscheduler-api:latest
docker  save -o tools.tar hub.rat.dev/apache/dolphinscheduler-tools:latest
docker  save -o alter-server.tar hub.rat.dev/apache/dolphinscheduler-alter-server:latest
docker  save -o master.tar hub.rat.dev/apache/dolphinscheduler-master:latest
docker  save -o worker.tar hub.rat.dev/apache/dolphinscheduler-worker:latest

其他镜像

如果没有zookeeperpostgreSql需要用这下面的镜像进行安装

 docker pull  hub.rat.dev/bitnami/zookeeper:3.7.1docker pull  hub.rat.dev/bitnami/postgresql:15.2.0

2.3 导入dolphinscheduler镜像

dolphinscheduler-api为例,其他镜像请参照api的例子

# 导入镜像
docker load --input api.tar 
# 重新打标签
docker tag hub.rat.dev/apache/dolphinscheduler-api:latest registry.flow.cn/apache/dolphinscheduler-api:latest
# 推送镜像
docker push registry.flow.cn/apache/dolphinscheduler-api:latest

3.dolphinscheduler集群安装

集群使用会单独启动一个psql以及zookeeper
请下载源码包 https://github.com/apache/dolphinscheduler/archive/refs/tags/3.2.2.zip,下载
发布一个名为 dolphinscheduler 的版本(release),请执行以下命令:

因为是单独启动的psqlzookeeper则需要把Chat.yamldependencies注释掉

cd apache-dolphinscheduler-3.2.2-src/deploy/kubernetes/dolphinscheduler
vim Chart.yaml

在这里插入图片描述
修改镜像仓库地址

vim values.yaml

在这里插入图片描述

将名为 dolphinscheduler 的版本(release) 发布到 test 的命名空间中:

helm install dolphinscheduler . -n test

提示: 如果名为 test 的命名空间被使用, 选项参数 -n test 需要添加到 helmkubectl 命令中

提示: 列出所有已发布的版本,使用 helm list,PostgreSQL (用户 root, 密码 root, 数据库 dolphinscheduler) 和 ZooKeeper 服务将会默认启动

查看运行状态
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建服务外部访问端口
在这里插入图片描述
名称随便填然后点击下一步
在这里插入图片描述
端口配置12345
在这里插入图片描述
外部访问选择nodePort,然后点击创建
在这里插入图片描述
在这里插入图片描述

访问前端页面:http://k8s节点ip:32312/dolphinscheduler/ui如果有需要请修改成对应的 IP 地址(k8s节点ip)

在这里插入图片描述

默认的用户是admin,默认的密码是dolphinscheduler123
在这里插入图片描述

请参考用户手册章节的 快速上手 查看如何使用 DolphinScheduler

4. 问题解决

4.1 数据裤初始化报错

因为没有修改zookeeper、postgreSql地址

kind: Job
apiVersion: batch/v1
metadata:name: dolphinscheduler-db-init-jobnamespace: testlabels:app.kubernetes.io/instance: dolphinschedulerapp.kubernetes.io/managed-by: Helmannotations:helm.sh/hook: 'post-install,post-upgrade,post-rollback'helm.sh/hook-weight: '1'revisions: >-{"1":{"status":"running","desire":1,"uid":"cd3b4532-7abd-470e-885f-e42dc4c6dea0","start-time":"2024-12-19T14:43:47+08:00","completion-time":"0001-01-01T00:00:00Z"}}
spec:parallelism: 1completions: 1backoffLimit: 6selector:matchLabels:#batch.kubernetes.io/controller-uid: cd3b4532-7abd-470e-885f-e42dc4c6dea0template:metadata:creationTimestamp: nulllabels:app.kubernetes.io/instance: dolphinschedulerapp.kubernetes.io/managed-by: Helm#batch.kubernetes.io/controller-uid: cd3b4532-7abd-470e-885f-e42dc4c6dea0batch.kubernetes.io/job-name: dolphinscheduler-db-init-job#controller-uid: cd3b4532-7abd-470e-885f-e42dc4c6dea0job-name: dolphinscheduler-db-init-jobspec:initContainers:- name: wait-for-databaseimage: 'registry.flow.cn/library/busybox:latest'command:- sh- '-xc'- >-for i in $(seq 1 180); do nc -z -w3 dolphinscheduler-postgresql-f68v.data-center.svc.cluster.local5432 && exit 0 || sleep 5; done; exit 1resources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FileimagePullPolicy: IfNotPresentcontainers:- name: dolphinscheduler-db-init-jobimage: 'registry.flow.cn/apache/dolphinscheduler-tools:latest'args:- tools/bin/upgrade-schema.shenvFrom:- configMapRef:name: dolphinscheduler-commonenv:- name: TZvalue: Asia/Shanghai- name: SPRING_JACKSON_TIME_ZONEvalue: Asia/Shanghai- name: DATABASEvalue: postgresql- name: SPRING_DATASOURCE_URLvalue: >-jdbc:postgresql://dolphinscheduler-postgresql-f68v.data-center.svc.cluster.local:5432/dolphinscheduler?characterEncoding=utf8- name: SPRING_DATASOURCE_USERNAMEvalue: postgres- name: SPRING_DATASOURCE_PASSWORDvalue: postgres- name: SPRING_DATASOURCE_DRIVER-CLASS-NAMEvalue: org.postgresql.Driver- name: REGISTRY_TYPEvalue: zookeeper- name: REGISTRY_ZOOKEEPER_CONNECT_STRINGvalue: 'dolphinscheduler-zookeepe-headless.data-center.svc.cluster.local:2181'- name: DATABASE_TYPEvalue: postgresql- name: JAVA_OPTSvalue: -server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Dspring.profiles.active=postgresql -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprofresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FileimagePullPolicy: IfNotPresentrestartPolicy: NeverterminationGracePeriodSeconds: 30dnsPolicy: ClusterFirstsecurityContext: {}imagePullSecrets:- name: registry-configschedulerName: default-schedulercompletionMode: NonIndexedsuspend: false

需要修改REGISTRY_ZOOKEEPER_CONNECT_STRINGSPRING_DATASOURCE_URL的值,然后重新创建任务。
在这里插入图片描述
数据库初始完成之后会创建表
在这里插入图片描述

4.2 Caused by: java.net.UnknownHostException: s3

修改common.properties,加上下面3行

aws.s3.endpoint=<minio地址>
aws.s3.access.key.id=<your id>
aws.s3.access.key.secret=<your secret>

然后重启

4.3 zookeeper和psql报错

需要修改pod环境的变量,修改为正确的地址
在这里插入图片描述

4.4 worker节点 No qualifying bean of type 'org.apache.dolphinscheduler.meter.metrics.MetricsProvider' available

错误信息:

2024-12-21T22:50:53.537397234+08:00 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workerRegistryClient': Unsatisfied dependency expressed through field 'metricsProvider'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.apache.dolphinscheduler.meter.metrics.MetricsProvider' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}2024-12-21T22:50:53.537401243+08:00 	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659)2024-12-21T22:50:53.537408792+08:00 	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639)2024-12-21T22:50:53.537412721+08:00 	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)2024-12-21T22:50:53.537416353+08:00 	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)2024-12-21T22:50:53.537418799+08:00 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)2024-12-21T22:50:53.537421259+08:00 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)2024-12-21T22:50:53.537428244+08:00 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)2024-12-21T22:50:53.537430992+08:00 	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)2024-12-21T22:50:53.537433562+08:00 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)2024-12-21T22:50:53.537436073+08:00 	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)2024-12-21T22:50:53.537438469+08:00 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)2024-12-21T22:50:53.537441051+08:00 	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)2024-12-21T22:50:53.537443569+08:00 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)2024-12-21T22:50:53.537446141+08:00 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)2024-12-21T22:50:53.537448881+08:00 	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656)2024-12-21T22:50:53.537451540+08:00 	... 20 common frames omitted2024-12-21T22:50:53.537454771+08:00 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.apache.dolphinscheduler.meter.metrics.MetricsProvider' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}2024-12-21T22:50:53.537457334+08:00 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801)2024-12-21T22:50:53.537459878+08:00 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357)2024-12-21T22:50:53.537462469+08:00 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)2024-12-21T22:50:53.537465066+08:00 	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656)2024-12-21T22:50:53.537467531+08:00 	... 34 common frames omitted

进入到worker节点源码目录
resources下面的文件全部挂载在到/opt/dolphinscheduler/conf目录下面
在这里插入图片描述
在这里插入图片描述
新增worker配置,然后把resources目录下面的文件内容复制进来
在这里插入图片描述
挂载到/opt/dolphinscheduler/conf路径
在这里插入图片描述
在这里插入图片描述
挂载了之后点击确定即可。

注意:
需要把其他dolphinscheduler-masterdolphinscheduler-apidolphinscheduler-alter-server三个节点也进行挂载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/64000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++的侵入式链表

非侵入式链表 非侵入式链表是一种链表数据结构&#xff0c;其中每个元素&#xff08;节点&#xff09;并不需要自己包含指向前后节点的指针。链表的结构和节点的存储是分开的&#xff0c;链表容器会单独管理这些指针。 常见的非侵入式链表节点可以由以下所示&#xff0c;即&a…

Flutter组合动画学习

如何使用动画控制器和动画来创建一个简单的动画效果。具体来说&#xff0c;它通过一个 AnimationController 来控制两个动画&#xff0c;一个用于旋转&#xff0c;一个用于绘制。 前置知识点学习 SingleTickerProviderStateMixin SingleTickerProviderStateMixin 是 Flutter …

在vscode的ESP-IDF中使用自定义组件

以hello-world为例&#xff0c;演示步骤和注意事项 1、新建ESP-IDF项目 选择模板 从hello-world模板创建 2、打开项目 3、编译结果没错 正在执行任务: /home/azhu/.espressif/python_env/idf5.1_py3.10_env/bin/python /home/azhu/esp/v5.1/esp-idf/tools/idf_size.py /home…

2025差旅平台怎么选?一体化、全流程降本案例解析

差旅支出在企业中一直是一项重要但容易被忽视的成本开支&#xff0c;尤其是在项目驱动型企业中&#xff0c;因频繁的差旅需求&#xff0c;支出规模往往持续增长。以差旅平台分贝通签约伙伴——某智能制造业的业务模式为例&#xff0c;该模式要求员工定期前往不同的工厂、供应商…

【linux】NFS实验

NFS NFS服务 nfs,最早是Sun这家公司所发展出来的,它最大的功能就是可以透过网络,让不同的机器,不同的操作系统,进行实现文档的共享。所以你可以简单的将他看做是文件服务器。 实验准备 ①先准备一个服务器端的操作系统和客户端的操作系统(Red Hat)。 ②选择NAT模式,…

智源研究院与安谋科技达成战略合作,共建开源AI“芯”生态

12月25日&#xff0c;智源研究院与安谋科技&#xff08;中国&#xff09;有限公司&#xff08;以下简称“安谋科技”&#xff09;与正式签署战略合作协议&#xff0c;双方将面向多元AI芯片领域开展算子库优化与适配、编译器与工具链支持、生态系统建设与推广等一系列深入合作&a…

ROG NUC:强大内核激发创意,AI赋能学子科技探索

有这么一款能够激发无限创意、助力科技探索的迷你主机&#xff0c;它以其卓越的性能和迷你的身材成为了成为了ProArt百校行活动中的明星产品&#xff0c;助力广大学子勇敢探索未知&#xff0c;追逐属于自己的科技梦想。它就是ROG NUC 2024&#xff01; 强大性能&#xff0c;创意…

从零玩转CanMV-K230(8)-多线程例程

文章目录 前言一、_thread模块API二、使用示例创建并启动线程停止线程_thread.exit() 总结 前言 K230上不支持threading&#xff0c;只能支持_thread&#xff0c;该模块实现了相应 CPython 模块的子集&#xff0c;CPython 是 Python 编程的参考实现 语言&#xff0c;也是最著名…

yii2 手动添加 phpoffice\phpexcel

1.下载地址&#xff1a;https://github.com/PHPOffice/PHPExcel 2.解压并修改文件名为phpexcel 在yii项目的vendor目录下创建一个文件夹命名为phpoffice 把phpexcel目录放到phpoffic文件夹下 查看vendor\phpoffice\phpexcel目录下会看到这些文件 3.到vendor\composer目录下…

安卓多渠道apk配置不同签名

一般签名都是放在buildTypes里面&#xff1a; ... android {...defaultConfig {...}signingConfigs {release {storeFile file("myreleasekey.keystore")storePassword "password"keyAlias "MyReleaseKey"keyPassword "password"}}bu…

数据库-用户管理

一、创建用户 create user xy104192..168.42.24 identified by 123456;xy104&#xff1a;用户名 localhost&#xff1b;这个权限最高的root用户 %&#xff1a;任务ip地址 192.168.42.24&#xff1a;登录的IP地址 identified by ‘123456’&#xff1a;指定该用户的密码 mysql…

管理者需要的技能

管理者需要具备技术技能、人际技能和概念技能&#xff0c;这三种技能的内涵如下&#xff1a; 技术技能 专业知识与技术能力&#xff1a;指管理者掌握和运用某一专业领域内的知识、技术和方法的能力。这包括对特定行业的专业知识、技术流程、工具设备的熟悉和精通。例如&#x…

scala基础学习(数据类型)-字符串

文章目录 scala中的字符串引号单引号双引号三引号 常用内置函数length 获取字符串长度charAt 字符串元素访问substring 获取字串indexOf 获取字串位置replace 字符串替换toLowerCase,toUpperCase 字符串大小写转换trim 去除首位空白符split 字符串切割以及查看startsWith,endsW…

数据库安全-redisCouchdb

1.redis未授权访问 默认端口:6379 1.1 Redis沙盒逃逸漏洞RCE-CVE-2022-0543 介绍&#xff1a;Redis 是一套开源的使用 ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值存储数据库&#xff0c;并提供多种语言的API。Redis 如果在没有开启认证的情况下&#xff0c;…

springboot集成websokcet+uniapp开发聊天原型验证(一)

1. 整体思路 群组聊天功能实现思路 需要为每个群组维护一个对应的集合&#xff08;可以是 Set 等数据结构&#xff09;&#xff0c;用来存放该群组内所有在线用户的 WebSocketSession。当有消息发送到群组时&#xff0c;遍历该群组对应的集合&#xff0c;向其中的每个在线用户…

Reed-Muller(RM)码之编码

点个关注吧! 看了一些中文的博客,RM码没有很详细的资料,所以本文尝试给出推导原理。 推导 RM码由 ( r , m ) ( r , m ) (r,m

List直接使用removeAll报错

List直接使用removeAll报错 需要先将list转换才能使用 原因是&#xff1a; removeAll 方法在 Java 中用于从当前列表中删除另一个列表中存在的所有元素。如果直接对 List 接口的一个实现使用 removeAll 方法抛出异常&#xff0c;可能的原因有&#xff1a; 不同的List实现&am…

Linux -- 线程的优点、pthread 线程库

目录 线程的优点 pthread 线程库 前言 认识线程库 简单验证线程的独立栈空间 线程的优点 与进程之间的切换相比&#xff0c;线程之间的切换需要操作系统做的工作要少得多。 调度进程时&#xff0c;CPU 中有一个 cache&#xff08;缓存&#xff0c;提高运行效率&#xff0…

【magic-dash】01:magic-dash创建单页面应用及二次开发

文章目录 一、magic-dash是什么1.1 安装1.2 使用1.2.1 查看内置项目模板1.2.2 生成指定项目模板1.2.3 查看当前magic-dash版本1.2.4 查看命令说明1.2.5 内置模板列表二、创建虚拟环境并安装magic-dash三、magic-dash单页工具应用开发3.1 创建单页面项目3.1.1 使用命令行创建单页…

从零开始使用MaxKB打造本地大语言模型智能问答系统与远程交互

文章目录 前言1. 下载运行Ollama2. 安装大语言模型3. 安装Cpolar工具4. 配置公网地址5. 固定公网地址6. MaxKB 添加Olama7.创建问答应用 前言 目前大语言模型&#xff08;LLM&#xff09;已经成为了人工智能领域的一颗璀璨明星&#xff0c;从自然语言处理到智能问答系统&#…