如何解决在Kubernetes中部署麋鹿堆栈,并带有头盔VolumeBinding错误
我正在尝试使用this图表在带有头盔的kubernetes集群中部署麋鹿堆栈。当我启动
helm install elk-stack stable/elastic-stack
我收到以下消息:
NAME: elk-stack LAST DEPLOYED: Mon Aug 24 07:30:31 2020 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES: The elasticsearch cluster and associated extras have been installed. Kibana can be accessed: * Within your cluster,at the following DNS name at port 9200: elk-stack-elastic-stack.default.svc.cluster.local * From outside the cluster,run these commands in the same shell: export POD_NAME=$(kubectl get pods --namespace default -l "app=elastic-stack,release=elk-stack" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:5601 to use Kibana" kubectl port-forward --namespace default $POD_NAME 5601:5601
但是当我跑步时
kubectl get pods
结果是:
NAME READY STATUS RESTARTS AGE elk-stack-elasticsearch-client-7fcfc7b858-5f7fw 0/1 Running 0 12m elk-stack-elasticsearch-client-7fcfc7b858-zdkwd 0/1 Running 1 12m elk-stack-elasticsearch-data-0 0/1 Pending 0 12m elk-stack-elasticsearch-master-0 0/1 Pending 0 12m elk-stack-kibana-cb7d9ccbf-msw95 1/1 Running 0 12m elk-stack-logstash-0 0/1 Pending 0 12m
使用kubectl describe pods
命令,我发现对于Elasticsearch Pod,问题是:
Warning FailedScheduling 6m29s default-scheduler running "VolumeBinding" filter plugin for pod "elk-stack-elasticsearch-data-0": pod has unbound immediate PersistentVolumeClaims
和Logstash吊舱:
Warning FailedScheduling 7m53s default-scheduler running "VolumeBinding" filter plugin for pod "elk-stack-logstash-0": pod has unbound immediate PersistentVolumeClaims
kubectl get pv,pvc,sc -A
的输出:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/elasticsearch-data 10Gi RWO Retain Bound default/elasticsearch-data manual 16d NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE default persistentvolumeclaim/claim1 Pending slow 64m default persistentvolumeclaim/data-elk-stack-elasticsearch-data-0 Pending 120m default persistentvolumeclaim/data-elk-stack-elasticsearch-master-0 Pending 120m default persistentvolumeclaim/data-elk-stack-logstash-0 Pending 120m default persistentvolumeclaim/elasticsearch-data Bound elasticsearch-data 10Gi RWO manual 16d default persistentvolumeclaim/elasticsearch-data-elasticsearch-data-0 Pending 17d default persistentvolumeclaim/elasticsearch-data-elasticsearch-data-1 Pending 17d default persistentvolumeclaim/elasticsearch-data-quickstart-es-default-0 Pending 16d default persistentvolumeclaim/elasticsearch-master-elasticsearch-master-0 Pending 17d default persistentvolumeclaim/elasticsearch-master-elasticsearch-master-1 Pending 17d default persistentvolumeclaim/elasticsearch-master-elasticsearch-master-2 Pending 16d NAMESPACE NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE storageclass.storage.k8s.io/slow (default) kubernetes.io/gce-pd Delete Immediate false 66m
存储类slow
和持久卷声明claim1
是我的实验。我使用kubectl create
和一个yaml文件创建它们,其他文件由helm自动创建(我认为)。
kubectl get pvc data-elk-stack-elasticsearch-master-0 -o yaml
的输出:
apiVersion: v1 kind: PersistentVolumeClaim metadata: creationTimestamp: "2020-08-24T07:30:38Z" finalizers: - kubernetes.io/pvc-protection labels: app: elasticsearch release: elk-stack managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: .: {} f:app: {} f:release: {} f:spec: f:accessModes: {} f:resources: f:requests: .: {} f:storage: {} f:volumeMode: {} f:status: f:phase: {} manager: kube-controller-manager operation: Update time: "2020-08-24T07:30:38Z" name: data-elk-stack-elasticsearch-master-0 namespace: default resourceVersion: "201123" selfLink: /api/v1/namespaces/default/persistentvolumeclaims/data-elk-stack-elasticsearch-master-0 uid: de58f769-f9a7-41ad-a449-ef16d4b72bc6 spec: accessModes: - ReadWriteOnce resources: requests: storage: 4Gi volumeMode: Filesystem status: phase: Pending
有人可以帮我解决这个问题吗?预先感谢。
解决方法
Pod挂起的原因是PVC挂起,因为未创建相应的PV。
data-elk-stack-elasticsearch-master-0
data-elk-stack-logstash-0
data-elk-stack-elasticsearch-data-0
由于您已经提到这是用于本地开发,因此可以将hostPath卷用于PV。因此,使用下面的示例PV为每个挂起的PVC创建PV。因此,您总共将创建3个PV。
apiVersion: v1
kind: PersistentVolume
metadata:
name: elk-master
labels:
type: local
spec:
capacity:
storage: 4Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elk-logstash
labels:
type: local
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elk-data
labels:
type: local
spec:
capacity:
storage: 30Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。