我想为PostgreSQL pod将azure磁盘挂载到azure Kubernetes。我的yml文件
postgres-storage.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: postgres-pv
spec:
capacity:
storage: 80Gi
storageClassName: manual
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
azureDisk:
kind: Managed
diskName: es-us-dev-core-test
diskURI: /subscriptions/id/resourceGroups/kubernetes_resources_group/providers/Microsoft.Compute/disks/dev-test
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 80Gi
后期配置图.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: postgres-config
labels:
app: postgres
data:
POSTGRES_DB: dev-test
POSTGRES_USER: admintpost
POSTGRES_PASSWORD: ada3dassasa
StatefulSet.yml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres-statefulset
labels:
app: postgres
spec:
serviceName: "postgres"
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:12
envFrom:
- configMapRef:
name: postgres-config
ports:
- containerPort: 5432
name: postgresdb
volumeMounts:
- name: pv-data
mountPath: /var/lib/postgresql/data
volumes:
- name: pv-data
persistentVolumeClaim:
claimName: postgres-pv-claim
创建磁盘的说明https://learn.microsoft.com/en-us/azure/aks/azure-disk-volume
我收到一个错误,它无法连接到磁盘,你能告诉我如何将Azure磁盘添加到pod中吗。谢谢
在正确的资源组中创建Azure磁盘
查看文件postgres-storage.yaml
:
在spec.azureDisk.diskURI
中,我看到您已经在资源组kubernetes_resources_group
中创建了磁盘。但是,您应该在名称如下的资源组中创建磁盘:MC_kubernetes_resources_group_<your cluster name>_<region of the cluster>
请确保在与集群相同的可用性区域中创建磁盘。
将缓存模式设置为"无">
在文件postgres-storage.yaml
:中
将spec.azureDisk.cachingMode
设置为None
修正StatefulSet.yml
的定义
如果您正在使用Azure磁盘,则在文件StatefulSet.yml
:中
在spec.template.spec
中,您应该替换以下内容:
volumeMounts:
- name: pv-data
mountPath: /var/lib/postgresql/data
这个:
volumeMounts:
- name: pv-data
mountPath: /var/lib/postgresql/data
subPath: pgdata
编辑:修正了上一部分的一些错误。