总所周知,K8S存储是PV,调用创建PV给POD来做存储的是PVC,默认情况下PVC删除同时会将相应的PV一并删除。
如果一个还有POD挂载的PVC被执行了删除操作,此时PVC不会被删除而是变成Terminating状态,注意如果此时POD删除,PVC连同其数据卷PV也会被一并删除,那这种情况下如何补救呢!!!
二、操作步骤
保留所有pvc的yaml文件
kubectl get pvc datadir-kafka-0 -o yaml > datadir-kafka-0.yaml
确认pvc是由那个那个pod挂载的
确认该pod挂载了几个terminal状态的pvc
1、调节pv的回收策略为Retain
#过滤PVC对应的PV名字
kubectl get pvc -n ${名称空间} | grep elasticsearch | awk '{print $3}'
#确定PV回收策略,如果不是以下策略需要修改
kubectl edit pv ${pv名字} -n ${名称空间}
2、删除相应pod
#此时挂载的PVC也会随之删除,但相应PV数据卷却不会被删除,因为已经修改回收策略为Retain
#并且注意此时重启的pod为pending状态
kubectl delete pods ${pod名} -n ${名称空间}
重启创建pvc
kubectl apply -f datadir-kafka-0.yaml
此时kubectl get pvc 出于lost状态
先保存一下对应的
pvc
信息
kubectl
get pv/dwuserspv -o yaml > /tmp/dwuserspv.yaml
kubectl
get
pvc
/dwusers
pvc
-o yaml > /tmp/dwusers
pvc
.yaml
此时pv的yaml文件 /tmp/dwuserspv.yaml大致如下
apiVersion
再master节点执行以下命令
[root@k8s-master ~]#
kubectl
drain k8s-node01 --delete-local-data --force --ignore-daemonsets
node/k8s-node01 cordoned
WARNING: ign...
删除顺序:先pod 再
pvc
再pv
如果有问题 强制删除pod命令:https://blog.csdn.net/qq_33448670/article/details/79970872
kubectl
delete pods nep-server-5995f99f7-tvdzl --grace-period=0 --force -n nep
强制删除
pvc
pv : https://www.cnblogs.com/weifeng1463/p/11490399.html
kubectl
pat
学习过 nfs 方式的pv/
pvc
创建、删除之后,如何使用
pvc
?我的理解应该就和 docker 挂载本地volune差不多!
使用
pvc
可以忽略掉路径、目录、Volume 等繁琐信息
并且,可以和其他 pod 共同使用,只需要记得一个
pvc
名字即可用
在192.168.10.14(客户机)浏览器地址栏中输入
192.168.10.74:60000/?ip=192.168.10.111为什么一直出现404错误
192.168.10.74:60000是nginx服务器和配置的端口
192.168.10.111是后端服务器地址
(直接用浏览器访问192.168.10.111可以打开对应页面)
(主要目的就是proxy_pass的地址想作为请求的url的变量,但一直行不通)