Ошибка при развертывании образа apache:superset на Kubernetes

#python-3.x #kubernetes #apache-superset #superset

Вопрос:

Я пытаюсь развернуть последний образ docker apache:superset на Kubernetes. Когда я развертываю YAAML, я получаю ошибку ниже:

 [2021-04-29 01:34:10  0000] [8] [INFO] Starting gunicorn 20.0.4
[2021-04-29 01:34:10  0000] [8] [INFO] Listening at: http://0.0.0.0:8088 (8)
[2021-04-29 01:34:10  0000] [8] [INFO] Using worker: gthread
[2021-04-29 01:34:10  0000] [11] [INFO] Booting worker with pid: 11
logging was configured successfully
2021-04-29 01:34:12,332:INFO:superset.utils.logging_configurator:logging was configured successfully
2021-04-29 01:34:12,340:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
100.106.25.194 - - [29/Apr/2021:01:34:20  0000] "GET / HTTP/1.1" 302 243 "-" "kube-probe/1.18"
/usr/local/lib/python3.7/site-packages/flask_caching/__init__.py:192: UserWarning: Flask-Caching: CACHE_TYPE is set to null, caching is effectively disabled.
  "Flask-Caching: CACHE_TYPE is set to null, "
2021-04-29 01:34:20,145:WARNING:root:Class 'werkzeug.local.LocalProxy' is not mapped
2021-04-29 01:34:20,147:ERROR:root:DBEventLogger failed to log event(s)
2021-04-29 01:34:20,147:ERROR:root:(sqlite3.OperationalError) no such table: logs
[SQL: INSERT INTO logs (action, slice_id, json, dttm, duration_ms, referrer) VALUES (?, ?, ?, ?, ?, ?)]
[parameters: ('welcome', 0, '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', '2021-04-29 01:34:20.147331', 0, 'http://100.106.25.213:8088/')]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: logs
 

Похоже, он пытается подключиться к SQLLite по умолчанию. Я пытаюсь предоставить учетные данные postgres в config.py но не в состоянии изменить файл в изображении. У меня есть команда ниже в моем файле Docker:

 USER root
COPY updated_config.py /app/superset/config.py
USER superset
 

команда выполняется нормально, но файл не обновляется.Как я могу обновить config.py. Я также попытался использовать карту конфигурации в YAML, но это также дало ошибку:

 "ModuleNotFoundError: No module named 'superset.app'" 
 

Пожалуйста, предложите. Спасибо

Ответ №1:

  1. Ошибка, которой вы поделились, должна произойти только тогда, когда мы не запустили superset db upgrade .
  2. Вы не должны заменять полный конфигурационный файл по умолчанию. Вместо этого создайте новый файл и добавьте необходимые переменные с помощью export SUPERSET_CONFIG_PATH.

Вот Докерфайл

 FROM apache/superset
USER root

USER superset
EXPOSE 8088

RUN superset fab create-admin 
               --username admin 
               --firstname Superset 
               --lastname Admin 
               --email admin@superset.com 
               --password admin

COPY updated_config.py /app/config.py
RUN export SUPERSET_CONFIG_PATH=/app/config.py
RUN superset db upgrade

RUN superset init
 

Я лучше предложу установить superset через диаграмму управления, так как вы уже используете kubernetes.