[英]Kubernetes — Helm — Mysql Chart loses stored data after stopping pod
[英]import mysql data to kubernetes pod
有誰知道如何將我的 dump.sql 文件中的數據導入到 kubernetes pod?
直接,與您處理 docker 容器的方式相同:
docker exec -i container_name mysql -uroot --password=secret database < Dump.sql
或者使用存儲在現有 docker 容器卷中的數據並將其傳遞給 pod 。
就像其他人正在尋找這個一樣:
kubectl -n namespace exec -i my_sql_pod_name -- mysql -u user -ppassword < my_local_dump.sql
要回答您的具體問題:
您可以kubectl exec
進入您的容器,以便在其中運行命令。 您可能需要首先確保容器可以訪問該文件,方法可能是將其存儲在集群可以訪問的位置(網絡?),然后在容器內使用 wget/curl 使其可用。 甚至可以使用kubectl exec
打開一個交互式會話。
但是,在增加通用性方面這樣做的方法是:
TL;DR 使用 ConfigMaps,然后使用該 ConfgMap 作為掛載到 /docker-entrypoint-initdb.d 文件夾
代碼
MySQL 部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.6
env:
- name: MYSQL_ROOT_PASSWORD
value: dbpassword11
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
- name: usermanagement-dbcreation-script
mountPath: /docker-entrypoint-initdb.d #https://hub.docker.com/_/mysql Refer Initializing a fresh instance
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: ebs-mysql-pv-claim
- name: usermanagement-dbcreation-script
configMap:
name: usermanagement-dbcreation-script
MySQL 配置映射
apiVersion: v1
kind: ConfigMap
metadata:
name: usermanagement-dbcreation-script
data:
mysql_usermgmt.sql: |-
DROP DATABASE IF EXISTS usermgmt;
CREATE DATABASE usermgmt;
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.