kubernetes - 云集群中使用本地持久卷的 CrashLoopBackOff pod
问题描述
我试图用本地persistentVolume 创建一个postgres pod。
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-postgres
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /postgres
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/work
operator: In
values:
- work1
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-postgres
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: local-storage
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
spec:
selector:
matchLabels:
app: postgres
replicas: 1
strategy: {}
template:
metadata:
labels:
app: postgres
spec:
nodeSelector:
node-role.kubernetes.io/work: work1
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true
volumes:
- name: vol-postgres
persistentVolumeClaim:
claimName: pvc-postgres
containers:
- name: postgres
image: postgres:12
imagePullPolicy: Always
env:
- name: DB_USER
value: postgres
- name: DB_PASS
value: postgres
- name: DB_NAME
value: postgres
ports:
- name: postgres
containerPort: 5432
volumeMounts:
- mountPath: /postgres
name: vol-postgres
livenessProbe:
exec:
command:
- pg_isready
- -h
- localhost
- -U
- postgres
initialDelaySeconds: 30
timeoutSeconds: 5
readinessProbe:
exec:
command:
- pg_isready
- -h
- localhost
- -U
- postgres
initialDelaySeconds: 5
timeoutSeconds: 1
---
apiVersion: v1
kind: Service
metadata:
name: postgres
spec:
ports:
- name: postgres
port: 5432
targetPort: postgres
selector:
app: postgres
但是当我使用kubectl describe pod
.
部署和服务可以隔离运行,当我在这个yaml文件中添加pv和pvc时发生了错误。似乎没有正确分配persistentVolume,我应该如何解决它?
解决方案
由于persistentVolume的本地类型,建议将StorageClass添加到yaml文件中。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
推荐阅读
- flutter - 在 null,/flutter (9972) 上调用了方法 '[]':尝试调用:[]("id")
- mysql - 无法通过在 phpMyAdmin 中创建的用户在命令行中访问 MySQL
- flutter - 我在 Google Place 自动完成中的代码有问题
- r - R中lmer的自由度
- python - azureml 中的 Win32Com
- python - 在 C 中获取从 python 生成的二维数组
- html - 如何使单个标签的内容相等?
- javascript - 从excel文件中复制文本并粘贴到浏览器中
- bootstrap-4 - 如何在手机屏幕尺寸上使用 Bootstrap“Display-3”
- jquery - jquery number 插件作为整数插入数据库