k8s误删pvc状态为Terminating且pv还在恢复方法

有人误删pvc,由于pod还在使用pvc,所以现在的状态为Terminating。 恢复操作: 首先调节pv的回收策略为Retain,pv 的回收策略有三种分别是: Retain:PV的默认回收策略,删除pvc后,挂载卷的数据会保留。可以通过kubectl get pv看到 Recycle:删除卷的内容并使卷可用于再次声明。通过这种方式,持久卷可以被不同的持久卷声明和pod反复使用。但是删除pv以后,挂载卷的数据会被删除掉。 Delete:删除底层存储。 调节pv的回收策略为Retain,如果是Retain则省略此步: kubectl edit pv PVNAME 备份pvc yml kubectl get pvc PVCNAME -o yaml > PVCNAME.yml 停止相关pod,当pod停止后,相关pvc会删除; # 删除pod kubectl -n test scale deploy nginx --replicas=0

k8s hostNetwork 网络的 pod 无法解析 service

因为特殊环境使用的 hostnetwork,发现 pod 无法解析 k8s 的 service,通过google一番解决此问题记录在此 将使用hostnetwork的pod增加一个配置 dnsPolicy: ClusterFirstWithHostNet即可 dnsPolicy为ClusterFirst的pod,/etc/resolv.conf 文件中内容和宿主机内容一致。 dnsPolicy为ClusterFirstWithHostNet的pod,/etc/resolv.conf 文件中内容和宿主机内容不一致,使用的是 k8s 集群内的dns搜索域。 K8S官网资料 Pod 的 DNS 策略 DNS 策略可以逐个 Pod 来设定。目前 Kubernetes 支持以下特定 Pod 的 DNS 策略。 这些策略可以在 Pod 规约中的 dnsPolicy 字段设置: * "Default": Pod 从运行所在的节点继承名称解析配置。参考

k8s停机维护

手动迁移 当需要下线维护某一台node时,可通过如下操作相关命令处理 cordon 标记节点不可调度,后续新的pod不会被调度到此节点,但是该节点上的pod可以正常对外服务; drain 驱逐节点上的pod至其他可调度节点 uncordon 取消不可调度 # 标记节点不可调度 kubectl cordon node1 # 查看节点状态 kubectl get node NAME STATUS ROLES AGE VERSION node1 Ready,SchedulingDisabled master 1d v1.22.0 # 驱逐pod kubectl drain node1 --delete-local-data --ignore-daemonsets --force # 参数如下: # --delete-local-data 删除本地数据,即使emptyDir也将删除; # --ignore-daemonsets

kubeadm 修改k8s证书有效期到 100年

1. 获取源码 访问:https://github.com/kubernetes/kubernetes/releases,下载特定版本源码 wget https://github.com/kubernetes/kubernetes/archive/v1.20.4.tar.gz tar -zxvf v1.20.4.tar.gz mv v1.20.4.tar.gz kubernetes cd kubernetes 2. 修改证书有效期 查看网上的资料主要有两个地方需要修改 修改 CA 有效期为 100年(默认为 10年) vim ./staging/src/