Kubernetes 部署在minikube上找不到PVC
我正在练习用Minikube制作PV和PVC。但是我遇到了一个错误,我的InfluxDB部署找不到Kubernetes 部署在minikube上找不到PVC,kubernetes,minikube,kubernetes-pod,kubernetes-pvc,kubernetes-deployment,Kubernetes,Minikube,Kubernetes Pod,Kubernetes Pvc,Kubernetes Deployment,我正在练习用Minikube制作PV和PVC。但是我遇到了一个错误,我的InfluxDB部署找不到InfluxDB pvc,我无法解决它 我检查了活动顶部的消息,我可以看到我的PVC找不到。因此,我检查了PersistentVolumeClaim的状态 据我所知,如果influxdb pv和influxdb pvc的状态是绑定的,它通常会被创建,部署应该能够找到influxdb pvc。我不知道发生了什么。。。请帮助我我已经在Minikube集群上测试了您的YAML 您的配置是正确的,但是您遗漏
InfluxDB pvc
,我无法解决它
我检查了活动顶部的消息,我可以看到我的PVC找不到。因此,我检查了PersistentVolumeClaim的状态
据我所知,如果
influxdb pv
和influxdb pvc
的状态是绑定的,它通常会被创建,部署应该能够找到influxdb pvc
。我不知道发生了什么。。。请帮助我我已经在Minikube集群上测试了您的YAML
您的配置是正确的,但是您遗漏了一个小细节。基于alpine
的容器需要在内部“做点什么”,否则容器在其主进程退出时退出。一旦容器完成了所有预期/配置,pod
将处于Completed
状态
你的吊舱正在崩溃,因为它启动后立即退出,因此Kubernetes重新启动,循环继续。有关更多详细信息,请查看文档
示例
例如:
Nginx示例:
Nginx是一个基于web服务器的容器,因此它不需要额外的sleep
命令
您当前的配置
你的舱已经被创建了,没有任何事情可做,然后离开
$ kubectl get po -w
NAME READY STATUS RESTARTS AGE
influxdb-96bfd697d-wbkt7 0/1 CrashLoopBackOff 4 2m28s
influxdb-96bfd697d-wbkt7 0/1 Completed 5 3m8s
influxdb-96bfd697d-wbkt7 0/1 CrashLoopBackOff 5 3m19s
解决方案
您只需添加例如sleep命令
,即可使容器保持活动状态。对于测试,我使用sleep 60
使用以下配置使容器保持活动状态60秒:
spec:
containers:
- name: influxdb
image: service_influxdb
imagePullPolicy: Never
ports:
- containerPort: 8086
envFrom:
- secretRef:
name: influxdb-secret
volumeMounts:
- mountPath: /var/lib/influxdb
name: var-lib-influxdb
command: ["/bin/sh"] # additional command
args: ["-c", "sleep 60"] # args to use sleep 60 command
结果如下:
$ kubectl get po -w
NAME READY STATUS RESTARTS AGE
influxdb-65dc56f8df-9v76p 1/1 Running 0 7s
influxdb-65dc56f8df-9v76p 0/1 Completed 0 62s
influxdb-65dc56f8df-9v76p 1/1 Running 1 63s
它运行了60秒,因为sleep
命令被设置为60
。当容器完成内部所有配置的命令时,它将退出并将状态更改为Completed
。如果要使用命令使此容器保持活动状态,则不需要使用sleep
光伏问题
作为您在Minikube仪表板中提到的问题的最后一部分
。我无法复制它,但它可能是您上次测试的一些遗留问题
如果您仍然有问题,请告诉我。有效!!由于Dockerfile入口点中的
/bin/sh
,容器立即终止,并且由于开始和结束重复得非常快,因此出现问题!!非常感谢你!我永远不会忘记你和你的帮助。
spec:
containers:
- name: influxdb
image: service_influxdb
imagePullPolicy: Never
ports:
- containerPort: 8086
envFrom:
- secretRef:
name: influxdb-secret
volumeMounts:
- mountPath: /var/lib/influxdb
name: var-lib-influxdb
command: ["/bin/sh"] # additional command
args: ["-c", "sleep 60"] # args to use sleep 60 command
$ kubectl get po -w
NAME READY STATUS RESTARTS AGE
influxdb-65dc56f8df-9v76p 1/1 Running 0 7s
influxdb-65dc56f8df-9v76p 0/1 Completed 0 62s
influxdb-65dc56f8df-9v76p 1/1 Running 1 63s