如何在kubernetes中为带有多个容器的单吊舱配置pv和pvc
需要为MySQL、MongoDB、MySQL创建一个包含多个容器的pod。我的问题是,我是否需要为每个容器创建持久性卷和持久性卷声明,并指定pod配置中的卷或单个PV&PVC对于单个pod中的所有容器都足够,如下面的配置 您能否验证以下配置是否足够 PV:如何在kubernetes中为带有多个容器的单吊舱配置pv和pvc,kubernetes,persistent-storage,persistent-volumes,kubernetes-pvc,Kubernetes,Persistent Storage,Persistent Volumes,Kubernetes Pvc,需要为MySQL、MongoDB、MySQL创建一个包含多个容器的pod。我的问题是,我是否需要为每个容器创建持久性卷和持久性卷声明,并指定pod配置中的卷或单个PV&PVC对于单个pod中的所有容器都足够,如下面的配置 您能否验证以下配置是否足够 PV: apiVersion: v1 kind: PersistentVolume metadata: name: mypod-pv labels: type: local spec: storageClassName:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypod-pv
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mypod
labels:
app: mypod
spec:
replicas: 1
selector:
matchLabels:
app: mypod
template:
metadata:
labels:
app: mypod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: mypod-pvc
containers:
- name: mysql
image: mysql/mysql-server:latest
ports:
- containerPort: 3306
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: "/var/lib/mysql"
name: task-pv-storage
- name: mongodb
image: openshift/mongodb-24-centos7
ports:
- containerPort: 27017
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: "/var/lib/mongodb"
name: task-pv-storage
- name: mssql
image: mcr.microsoft.com/mssql/server
ports:
- containerPort: 1433
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: "/var/opt/mssql"
name: task-pv-storage
imagePullSecrets:
- name: devplat
PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypod-pvc
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
---
部署:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypod-pv
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mypod
labels:
app: mypod
spec:
replicas: 1
selector:
matchLabels:
app: mypod
template:
metadata:
labels:
app: mypod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: mypod-pvc
containers:
- name: mysql
image: mysql/mysql-server:latest
ports:
- containerPort: 3306
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: "/var/lib/mysql"
name: task-pv-storage
- name: mongodb
image: openshift/mongodb-24-centos7
ports:
- containerPort: 27017
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: "/var/lib/mongodb"
name: task-pv-storage
- name: mssql
image: mcr.microsoft.com/mssql/server
ports:
- containerPort: 1433
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: "/var/opt/mssql"
name: task-pv-storage
imagePullSecrets:
- name: devplat
您不应该在一个pod中运行多个数据库容器 考虑在单独的状态集中运行每个数据库 下面是mysql的参考资料
您需要对mongodb或其他数据库采用类似的方法。@p Ekambaram,我同意您的看法。另外,我将为所有容器提供一个副本。在这种情况下,是否使用pv和pvc设置或部署状态?哪一个适合我。statefulset是数据库的首选