k8s 部署 superset 连接 mysql
时间: 2023-10-25 22:07:31 浏览: 174
superset连接mysql简略文档.docx
在 k8s 上部署 superset 连接 mysql 可以通过以下步骤实现:
1. 创建一个 ConfigMap,将 superset 的配置文件放入其中。
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: superset-config
data:
superset_config.py: |
SQLALCHEMY_DATABASE_URI = 'mysql://<db_user>:<db_password>@<db_host>:<db_port>/<db_name>'
```
2. 创建一个 Deployment,用于部署 superset。
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: superset
spec:
replicas: 1
selector:
matchLabels:
app: superset
template:
metadata:
labels:
app: superset
spec:
containers:
- name: superset
image: amancevice/superset
env:
- name: SUPERSET_CONFIG
valueFrom:
configMapKeyRef:
name: superset-config
key: superset_config.py
ports:
- containerPort: 8088
volumeMounts:
- name: data
mountPath: /app/superset/data
volumes:
- name: data
emptyDir: {}
```
3. 创建一个 Service,用于将 superset 暴露出来。
```yaml
apiVersion: v1
kind: Service
metadata:
name: superset
spec:
selector:
app: superset
ports:
- name: http
port: 8088
targetPort: 8088
type: NodePort
```
4. 创建一个 MySQL 的 Service,用于将 MySQL 暴露出来。
```yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
selector:
app: mysql
ports:
- name: mysql
port: 3306
targetPort: 3306
type: ClusterIP
```
5. 在 superset 中配置 MySQL 数据库连接。
访问 superset 的 web 界面,点击 "Sources" -> "Databases" -> "Add Database",填写以下信息:
- Name: MySQL
- SQLAlchemy URI: mysql://<db_user>:<db_password>@mysql:3306/<db_name>
- Click "Test Connection",确认连接成功后保存。
至此,就完成了在 k8s 上部署 superset 连接 mysql 的过程。需要注意的是,在使用 k8s 部署时,需要将 MySQL 的 IP 地址改为 Service 的名称。另外,需要将 Superset 的配置文件放入 ConfigMap 中,并在 Deployment 中将其挂载到容器中。
阅读全文