使用 Helm 的 Kubernetes 超集不使用自定义值文件
Superset on Kubernetes with Helm not using custom values file
我正在尝试使用 Helm 在 Kubernetes 集群 (AWS EKS) 上安装 Apache Superset,并遵循 here.
描述的官方程序
bash-3.2$ helm repo add superset https://apache.github.io/superset
"superset" has been added to your repositories
bash-3.2$ helm search repo superset
NAME CHART VERSION APP VERSION DESCRIPTION
superset/superset 0.1.2 1.0 Apache Superset is a modern, enterprise-ready b...
由于我想分别使用 RDS 和 ElastiCache 作为数据库和缓存,而不是捆绑的 postgresql 和 redis,所以我需要覆盖默认值中的几个值 values.yaml
所以我复制了默认值
bash-3.2$ helm show values superset/superset > custom-values.yaml
编辑了几个部分,例如
postgresql:
##
## Use the PostgreSQL chart dependency.
## Set to false if bringing your own PostgreSQL.
enabled: false
[...]
##
## If you are bringing your own PostgreSQL, you should set postgresHost and
## also probably service.port, postgresqlUsername, postgresqlPassword, and postgresqlDatabase
postgresHost: myproject.cluster-xxxxxxxxx.us-east-2.rds.amazonaws.com
和其他人,并使用
安装了我的版本
bash-3.2$ helm upgrade --install --values custom-values.yaml superset superset/superset
如指南中所述。
创建前三个pods:
bash-3.2$ kubectl get pods
NAME READY STATUS RESTARTS AGE
superset-7d96fc8787-vr6c6 0/1 Init:0/1 0 3m4s
superset-init-db-xqmd9 0/1 Init:0/1 0 3m3s
superset-worker-7fff4f497b-cnqs5 0/1 Init:0/1 0 3m4s
但随后什么也没发生。登录到 superset-init
pod 的 init-container
,我发现等待数据库可用的进程卡住了,因为它使用的是默认环境变量,而不是我在 custom-values.yaml
中提供的环境变量] 文件:
bash-3.2$ kubectl exec -it --container wait-for-postgres superset-init-db-xqmd9 -- sh
/ #
/ # env
REDIS_PORT=6379
KUBERNETES_PORT=tcp://172.20.0.1:443
KUBERNETES_SERVICE_PORT=443
HOSTNAME=superset-init-db-xqmd9
DB_PORT=5432
SUPERSET_PORT=tcp://172.20.72.4:8088
SUPERSET_SERVICE_PORT=8088
SUPERSET_PORT_8088_TCP_ADDR=172.20.72.4
SHLVL=1
HOME=/root
DB_NAME=superset
SUPERSET_PORT_8088_TCP_PORT=8088
SUPERSET_PORT_8088_TCP_PROTO=tcp
SUPERSET_PORT_8088_TCP=tcp://172.20.72.4:8088
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=172.20.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
DB_PASS=superset
SUPERSET_SERVICE_PORT_HTTP=8088
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://172.20.0.1:443
REDIS_HOST=superset-redis-headless
KUBERNETES_SERVICE_HOST=172.20.0.1
PWD=/
DB_HOST=superset-postgresql
SUPERSET_SERVICE_HOST=172.20.72.4
DB_USER=superset
编辑:
custom-values.yaml
文件中的一些自定义值实际上用于覆盖默认值。例如:
service:
type: LoadBalancer
而不是
service:
type: ClusterIP
以及 postgresql 和 redis pods 在我将它们设置为 enabled: false
时未创建,但由于某些原因,其他自定义值未应用或传递给 [= 的秘密存储环境变量49=].
我做错了什么?
根据超集的values.yaml,
我确实看到你是否带来了你自己的 Postgres 实例,据我所知,从上面的问题,你必须更改 these
的值
supersetNode:
connections:
# Change incase bringing your own redis and then also make `redis.enabled`:false
redis_host: '{{ template "superset.fullname" . }}-redis-headless'
redis_port: "6379"
# You need to change below configuration incase bringing own pg instance and as you made `postgresql.enabled`:false that's correct incase bringing own pg instance
db_host: <YOUR RDS PG HOST>
db_port: "5432"
db_user: <YOUR DB USER>
db_pass: <YOUR DB PASS>
db_name: <YOUR DB NAME | postgres>
我正在尝试使用 Helm 在 Kubernetes 集群 (AWS EKS) 上安装 Apache Superset,并遵循 here.
描述的官方程序bash-3.2$ helm repo add superset https://apache.github.io/superset
"superset" has been added to your repositories
bash-3.2$ helm search repo superset
NAME CHART VERSION APP VERSION DESCRIPTION
superset/superset 0.1.2 1.0 Apache Superset is a modern, enterprise-ready b...
由于我想分别使用 RDS 和 ElastiCache 作为数据库和缓存,而不是捆绑的 postgresql 和 redis,所以我需要覆盖默认值中的几个值 values.yaml
所以我复制了默认值
bash-3.2$ helm show values superset/superset > custom-values.yaml
编辑了几个部分,例如
postgresql:
##
## Use the PostgreSQL chart dependency.
## Set to false if bringing your own PostgreSQL.
enabled: false
[...]
##
## If you are bringing your own PostgreSQL, you should set postgresHost and
## also probably service.port, postgresqlUsername, postgresqlPassword, and postgresqlDatabase
postgresHost: myproject.cluster-xxxxxxxxx.us-east-2.rds.amazonaws.com
和其他人,并使用
安装了我的版本bash-3.2$ helm upgrade --install --values custom-values.yaml superset superset/superset
如指南中所述。
创建前三个pods:
bash-3.2$ kubectl get pods
NAME READY STATUS RESTARTS AGE
superset-7d96fc8787-vr6c6 0/1 Init:0/1 0 3m4s
superset-init-db-xqmd9 0/1 Init:0/1 0 3m3s
superset-worker-7fff4f497b-cnqs5 0/1 Init:0/1 0 3m4s
但随后什么也没发生。登录到 superset-init
pod 的 init-container
,我发现等待数据库可用的进程卡住了,因为它使用的是默认环境变量,而不是我在 custom-values.yaml
中提供的环境变量] 文件:
bash-3.2$ kubectl exec -it --container wait-for-postgres superset-init-db-xqmd9 -- sh
/ #
/ # env
REDIS_PORT=6379
KUBERNETES_PORT=tcp://172.20.0.1:443
KUBERNETES_SERVICE_PORT=443
HOSTNAME=superset-init-db-xqmd9
DB_PORT=5432
SUPERSET_PORT=tcp://172.20.72.4:8088
SUPERSET_SERVICE_PORT=8088
SUPERSET_PORT_8088_TCP_ADDR=172.20.72.4
SHLVL=1
HOME=/root
DB_NAME=superset
SUPERSET_PORT_8088_TCP_PORT=8088
SUPERSET_PORT_8088_TCP_PROTO=tcp
SUPERSET_PORT_8088_TCP=tcp://172.20.72.4:8088
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=172.20.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
DB_PASS=superset
SUPERSET_SERVICE_PORT_HTTP=8088
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://172.20.0.1:443
REDIS_HOST=superset-redis-headless
KUBERNETES_SERVICE_HOST=172.20.0.1
PWD=/
DB_HOST=superset-postgresql
SUPERSET_SERVICE_HOST=172.20.72.4
DB_USER=superset
编辑:
custom-values.yaml
文件中的一些自定义值实际上用于覆盖默认值。例如:
service:
type: LoadBalancer
而不是
service:
type: ClusterIP
以及 postgresql 和 redis pods 在我将它们设置为 enabled: false
时未创建,但由于某些原因,其他自定义值未应用或传递给 [= 的秘密存储环境变量49=].
我做错了什么?
根据超集的values.yaml, 我确实看到你是否带来了你自己的 Postgres 实例,据我所知,从上面的问题,你必须更改 these
的值supersetNode:
connections:
# Change incase bringing your own redis and then also make `redis.enabled`:false
redis_host: '{{ template "superset.fullname" . }}-redis-headless'
redis_port: "6379"
# You need to change below configuration incase bringing own pg instance and as you made `postgresql.enabled`:false that's correct incase bringing own pg instance
db_host: <YOUR RDS PG HOST>
db_port: "5432"
db_user: <YOUR DB USER>
db_pass: <YOUR DB PASS>
db_name: <YOUR DB NAME | postgres>