我得到“pod has unbound immediate PersistentVolumeClaims”,我不知道为什么。我在macOS上运行minikube v0.34.1。以下是配置:
es-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch
spec:
capacity:
storage: 400Mi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data/elasticsearch/"
字符串
es-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: es-cluster
spec:
serviceName: elasticsearch
replicas: 3
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.3
resources:
limits:
cpu: 1000m
requests:
cpu: 100m
ports:
- containerPort: 9200
name: rest
protocol: TCP
- containerPort: 9300
name: inter-node
protocol: TCP
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
env:
- name: cluster.name
value: k8s-logs
- name: node.name
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: discovery.zen.ping.unicast.hosts
value: "es-cluster-0.elasticsearch,es-cluster-1.elasticsearch,es-cluster-2.elasticsearch"
- name: discovery.zen.minimum_master_nodes
value: "2"
- name: ES_JAVA_OPTS
value: "-Xms256m -Xmx256m"
initContainers:
- name: fix-permissions
image: busybox
command: ["sh", "-c", "chown -R 1000:1000 /usr/share/elasticsearch/data"]
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
- name: increase-vm-max-map
image: busybox
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
- name: increase-fd-ulimit
image: busybox
command: ["sh", "-c", "ulimit -n 65536"]
securityContext:
privileged: true
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "standard"
resources:
requests:
storage: 100Mi
型
es-svc.yaml
kind: Service
apiVersion: v1
metadata:
name: elasticsearch
labels:
app: elasticsearch
spec:
selector:
app: elasticsearch
clusterIP: None
ports:
- port: 9200
name: rest
- port: 9300
name: inter-node
型
4条答案
按热度按时间tnkciper1#
为了让一个卷访问我的多个pod,accessModes需要为**“ReadWriteMany”。此外,如果每个pod都希望拥有自己的目录,则需要使用subPath**。
由于问题在评论部分@Michael Böckling得到了解决。下面是使用-subpath的进一步信息
字符串
q9yhzks02#
您可以使用环境变量作为子路径名称。就像这样:
字符串
j7dteeu83#
如果你在本地开发(在minikube上),并且想避免这个错误,你可以注解掉这行代码
字符串
这样就不需要创建PV或手动StorageClass。它将在minikube上动态配置。这在Kubernetes文档中有解释
如果这不起作用,请确保使用在minikube上启用了动态配置。
型
然后使用以下命令进行检查:
型
您应该看到以下内容:
型
xmakbtuz4#
我还建议首先检查您是否没有使用错误的存储类创建任何现有的PVC。
请注意,即使您删除STS,PVC也不会自动删除,并且可能正在“等待”错误的存储类-即使您修复索赔模板,修改后的STS也可能仍然存在问题:)