我目前在同一个集群中的kubernetes pods上运行mysql、wordpress和我的自定义node.js + express应用程序。一切都运行得很好,但我的问题是,如果我必须重新运行部署、服务和持久卷,所有数据都将被重置。
我已经对wordpress进行了相当广泛的配置,希望保存所有数据,并在重新部署所有内容后再次插入这些数据。这是怎么做的,还是我想错了?我使用的是mysql:5.6和wordpress:4.8-apache镜像。
我还想将我的配置转移给我的其他团队成员,这样他们就不必再次配置wordpress。
这是我的mysql-deploy.yaml
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: hidden
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim这是wordpress-deploy.yaml
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
ports:
- port: 80
selector:
app: wordpress
tier: frontend
type: NodePort
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wp-pv-claim
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:4.8-apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_PASSWORD
value: hidden
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wp-pv-claim发布于 2018-05-17 05:39:49
这是怎么做的,还是我想错了?
将配置思维从直接处理基础容器实例转移到配置容器映像/清单可能会更好。这里有几种方法,只有几点建议:
种类: ConfigMap apiVersion:服务器元数据:名称:cm-nginx-示例数据: nginx.conf:| v1 {监听80;... #实际配置在这里... }
然后将其挂载到容器中的适当位置,如下所示:
..。容器:-名称: nginx -示例图像:nginx端口:- containerPort: 80 volumeMounts:- mountPath: /etc/nginx/conf.d名称: nginx-conf卷:-名称: nginx-conf configMap:名称:cm-nginx-示例项目:- key: nginx.conf路径: nginx.conf ...
就我个人而言,我可能会选择ConfigMaps,因为你可以很容易地与k8s部署共享/编辑这些内容,配置细节不会像一些神秘的“大量工作”那样丢失,但可以被审查、调整并存储到一些代码版本控制系统中以进行版本跟踪……
https://stackoverflow.com/questions/50375324
复制相似问题