如何利用helm来部署Superset

Superset支持多种的部署方式,其部署方式详情可以在其官网上进行查看

https://superset.apache.org/docs/installation/kubernetes

内部包含诸如Kubernetes作为管理平台,也支持使用Docker Compose作为管理平台。

不过在这一章,我们将主要说如何将Superset部署在helm之上

从最简单的部署运行,到修改配置文件,到多配置文件应用多方面。

那么如何想要开始这一章,我们需要首先安装helm

对于Windows平台,直接从https://helm.sh/ helm官网下载,然后在环境变量的path中配置一下,helm会自动尝试读取本地的.kube配置。

在安装完成了helm之后,按照官方文档的指引,配置对应的Charts仓库并进行安装

helm repo add superset https://apache.github.io/superset

其次就是第一次进行部署

helm upgrade –install –values my-values.yaml superset superset/superset

这个values.yaml可以在superset目录下的helm/superset找到

之后就可以看到部署的各个pods

NAME READY STATUS RESTARTS AGE

superset-celerybeat-7cdcc9575f-k6xmc 1/1 Running 0 119s

superset-f5c9c667-dw9lp 1/1 Running 0 4m7s

superset-f5c9c667-fk8bk 1/1 Running 0 4m11s

superset-init-db-zlm9z 0/1 Completed 0 111s

superset-postgresql-0 1/1 Running 0 6d20h

superset-redis-master-0 1/1 Running 0 6d20h

superset-worker-75b48bbcc-jmmjr 1/1 Running 0 4m8s

superset-worker-75b48bbcc-qrq49 1/1 Running 0 4m12s

分别是定时任务,服务节点,初始化服务,postgre, redis,以及定时任务执行节点。

除此也部署了些相关的service供我们对外暴露,可以通过设置Ingress,或者修改Service为NodePort或者LoadBalancer进行访问

那么到这里,我们就完成了最基本的部署运行。

之后我们看下如何修改配置文件。

最简单的就是进入helm下的superset中的values.yaml进行修改,比如我们希望使用oicd,就需要安装Authlib相关依赖。可以修改

pip install \

psycopg2-binary==2.9.1 \

PyAthenaJDBC==3.0.1 \

PyAthena==2.18.1 \

redis==3.5.3 && \

增加Authlib

如果我们希望修改使用自己的postgres作为信息存储。

那么就可以先在values.yaml之中,关闭helm部署postgres

postgresql:

##
## Use the PostgreSQL chart dependency.
## Set to false if bringing your own PostgreSQL.
enabled: false

然后在SupersetNode之中配置postgres的host,post, user, pass,之后在helm upgrade的时候,就会关闭postgres,并应用下来。

之后是进行多应用文件部署

譬如我们会遇到在测试环境中使用账号密码登录即可,但是在线上环境中,我们需要集成SSO服务器进行登录。那么就需要准备不同环境的values.yaml,但是我们只想修改自己需要修改的部分配置,那么就需要进行多文件部署。

可以书写多个values.yaml,每个values.yaml中只有部分修改,比如只修改数据库连接

supersetNode:

connections:

redis_host: “superset.redis.prod.cn-north-1.aws.com”

redis_port: “6379”

db_host: “supersetmeta.prod.cn-north-1.aws.com ”

db_port: “5432”

db_user: postgres

db_pass: password001

db_name: postgres

最后

helm upgrade –install superset -f ../values.yaml -f values.yaml -n superset ./superset

需要注意,-f 右边的优先级高

所以需要我们将环境的values.yaml放在右边,左边一层层的嵌套。

发表评论

邮箱地址不会被公开。 必填项已用*标注