PART Ⅰ : 容器云OPENSHIFT
- 安装
- 数据持久化
- 集群管理
- 数据持久化
- 管理
- 网络
- 安全审计
- 工具应用部署
PART Ⅱ:容器云 KUBERNETES
- 基础
- 原理
- 系统应用/网络CNI/TRaefik
- 安装
- 集群管理
- 用户认证ServiceAccount与授权策略RBAC
- K8S应用管理工具Helm
- 问题
- 辅助工具
- Doing:K8S 多集群管理与网络互联
- VM On K8S
PART Ⅲ:持续集成与持续部署
- CICD优化总结
- Jenkins
- Gitlab
- Drone
- Nexus
- 配置
- 使用OrientDB Console在DB层面修改配置
- [设置SMTP邮件服务](https://www.wenjiangs.com/doc/krrcu7ebin9hh
- 仓库管理
- 数据备份恢复
- API
- Jenkins相关插件
- 配置
- SonarQube静态代码扫描分析
- LDAP
- Apollo
- 项目管理工具
- Jira
- Redmine
- Harbor
- Vault
- Alfred
- Web IDE: VSCode
- DolphinScheduler
PART Ⅴ:日志/监控/告警
- Logging
- Kafka/Zookeeper
- Filebeat
- Metrics
- Tracing
- Sentry日志聚合告警平台
PART Ⅵ:基础
- Docker
- Shell脚本
- Mave
- git
- 正则表达式
- SSL/TLS
- Ceph
- 性能压力测试
- PXE+Kickstart
- netboot.xyz
- Tool
- Windows
- MacOS小技巧
- Linux
- Linux排错优化
- iptables详解
- MySQL
- Redis
- 负载均衡与代理
- 代理服务器
- Nginx
- GitBook
- Telegram机器人
- OpenVPN Server
- iDRAC
- vSphere
- Raspberry Pi树莓派
- 钉钉机器人
- Aliyun CLI
- 音、视频处理工具:fffmpeg
- 图片处理工具:Imagemagick
- PDF处理工具:Ghostscript
- Nvidia
- Virtualbox 虚拟机管理
- 阿里云产品使用总结
- RustDesk:可自建远程控制软件
- Poste:自建邮件服务器
- 使用 Jlink构建最小化依赖的 JRE 环境
- Aria2
- Asuswrt-Merlin
- Trap:Shell脚本信号跟踪
- 零散知识汇总
- BarkServer通知
- Synology
PART Ⅶ:数据存储、处理
PART VIII:CODE
- Python学习笔记
- 基础语法
- statik 将静态资源文件打包到二进制文件中
- HTML/CSS 学习笔记
- JavaScript学习笔记
PART X:HACKINTOSH
PART XI:安全
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
DolphinScheduler
文档:https://dolphinscheduler.apache.org/en-us/docs/3.1.8
Github:https://github.com/apache/dolphinscheduler
依赖
- postgresql/mysql
- zookeeper
1、安装Postgresql
helm upgrade --install postgresql-for-dolphinscheduler \
--namespace tools \
--version 13.1.5 \
bitnami/postgresql \
--set global.postgresql.auth.postgresPassword=***postgres用户的密码*** \
--set global.postgresql.auth.username=***另外创建的用户名*** \
--set global.postgresql.auth.password=***另外创建的用户密码*** \
--set global.postgresql.auth.database=***另外创建的Database***
2、下载charts
dolphinscheduler_version=3.1.8 && \
curl -s https://dlcdn.apache.org/dolphinscheduler/$dolphinscheduler_version/apache-dolphinscheduler-$dolphinscheduler_version-src.tar.gz | tar -zx -C . apache-dolphinscheduler-$dolphinscheduler_version-src/deploy/kubernetes/dolphinscheduler && \
cd apache-dolphinscheduler-$dolphinscheduler_version-src/deploy/kubernetes/dolphinscheduler
helm repo add bitnami https://charts.bitnami.com/bitnami
helm dependency update .
3、推送所需镜像到镜像仓库
for i in {master,tools,alert-server};do
docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-$i:3.1.8 && \
docker tag dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-$i:3.1.8 hub.test.com/dolphinscheduler/dolphinscheduler-$i:3.1.8 && \
docker push hub.test.com/dolphinscheduler/dolphinscheduler-$i:3.1.8
done
4、定制镜像
定制镜像是为了支持
- Python 3 、Pip3
- 需要在dolphinscheduler-worker服务容器中安装 Python 3
- 在数据源集成中支持连接MySQL、Oracle
- 需要在dolphinscheduler-worker, dolphinscheduler-api服务容器中的/opt/dolphinscheduler/libs/路径下放置对应的驱动 jar
①定制dolphinscheduler-api镜像
Dockerfile
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-api:3.1.8
RUN wget -q https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar -O /opt/dolphinscheduler/libs/mysql-connector-java-8.0.16.jar && \
sed -i -e 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' -e 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \
apt-get update && \
rm -rf /var/lib/apt/lists/*
docker build --rm -f Dockerfile -t hub.test.com/dolphinscheduler/dolphinscheduler-api:3.1.8 . docker push hub.test.com/dolphinscheduler/dolphinscheduler-api:3.1.8
②定制dolphinscheduler-worker镜像
Dockerfile
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.1.8
RUN wget -q https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar -O /opt/dolphinscheduler/libs/mysql-connector-java-8.0.16.jar && \
sed -i -e 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' -e 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \
apt-get update && \
apt-get install -y --no-install-recommends python3 python3-pip && \
pip3 install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ pandas PyMySQL SQLAlchemy xlwt xlsxwriter pypinyin eventlet && \
rm -rf /var/lib/apt/lists/*
docker build --rm -f Dockerfile -t hub.test.com/dolphinscheduler/dolphinscheduler-worker:3.1.8 . docker push hub.test.com/dolphinscheduler/dolphinscheduler-worker:3.1.8
5、部署
helm upgrade --install dolphinscheduler . -n tools \
--set image.registry="harbor.test.com/dolphinscheduler" \
--set image.pullSecret=pull-harbor \
--set postgresql.enabled=false \
--set common.sharedStoragePersistence.enabled=true \
--set common.sharedStoragePersistence.storageClassName=local-nfs-client \
--set common.fsFileResourcePersistence.enabled=true \
--set common.fsFileResourcePersistence.storageClassName=local-nfs-client \
--set common.configmap.FS_DEFAULT_FS="file:///" \
--set externalDatabase.host=postgresql-for-dolphinscheduler.tools.svc \
--set externalDatabase.username=***pg的dolphinscheduler使用的用户名*** \
--set externalDatabase.password=***pg的dolphinscheduler使用的用户密码*** \
--set master.persistentVolumeClaim.enabled=true \
--set master.persistentVolumeClaim.storageClassName=local-nfs-client \
--set worker.persistentVolumeClaim.enabled=true \
--set worker.persistentVolumeClaim.dataPersistentVolume.enabled=true \
--set worker.persistentVolumeClaim.dataPersistentVolume.storageClassName=local-nfs-client \
--set worker.persistentVolumeClaim.logsPersistentVolume.enabled=true \
--set worker.persistentVolumeClaim.logsPersistentVolume.storageClassName=local-nfs-client \
--set api.persistentVolumeClaim.enabled=true \
--set api.persistentVolumeClaim.storageClassName=local-nfs-client \
--set ingress.enabled=true \
--set ingress.host="dolphinscheduler.test.com"
为了解决部署后无法创建租户的问题,修改部署后的 Configmap: dolphinscheduler-configs。然后重启 dolphinscheduler-master、dolphinscheduler-api、dolphinscheduler-worker
data:
common_properties: |-
...
resource.hdfs.fs.defaultFS=file:///
...
问题具体原因参考:
- https://dolphinscheduler.apache.org/en-us/docs/3.1.8/guide/installation/kubernetes#:~:text=Support%20Matrix-,FAQ,-Appendix%2DConfiguration
- https://blog.csdn.net/orchidofocean/article/details/132272168
1、配置K8S集群
①创建 K8S系统账号
权限
- 不能创建 NS
- 可以创建 job、pod
kubectl create role dolphinscheduler-excutor --verb=create,get,list,watch ---resource-name=jobs --resource=batch
kubectl create rolebinding dolphinscheduler-excutor-binding --clusterrole=dolphinscheduler-excutor --user=dolphinscheduler-excutor --namespace=dolphinscheduler-workspace
cat <<EOF | kubectl create -f -
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: dolphinscheduler-workspace
name: dolphinscheduler-excutor-role
rules:
- apiGroups: ["batch"]
resources: ["jobs"]
verbs: ["create", "get", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dolphinscheduler-excutor-rolebinding
namespace: dolphinscheduler-workspace
subjects:
- kind: User
name: dolphinscheduler-excutor
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: dolphinscheduler-excutor-role
apiGroup: rbac.authorization.k8s.io
EOF
- serviceaccount/dolphinscheduler-excutor
- clusterrole.rbac.authorization.k8s.io/dolphinscheduler-excutor-role
- rolebinding.rbac.authorization.k8s.io/dolphinscheduler-excutor
- clusterrolebinding.rbac.authorization.k8s.io/dolphinscheduler-excutor
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论