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

K8S 映射外部服务 Endpoints / ExternalName

具有 IP 地址的数据库 在本例中,在k8s集群外部部署的mysql 192.168.1.2:3306 第一步是创建服务 apiVersion: v1 kind: Service metadata: name: mysql spec: type: ClusterIP ports: - port: 3306 # Service端口 targetPort: 3306 # pod端口 手动创建一个将从此服务接收流量的 Endpoints 对象。 kind: Endpoints apiVersion: v1 metadata: name: mysql subsets: - addresses: - ip: 192.168.1.2 ports: -

caliconode is not ready: BIRD is not ready BGP not established with

新的node加入集群后,在启动calico的时候,状态处于running ready:0/1 通过describe pod 查看事件,报错: Warning Unhealthy 5m23s kubelet Readiness probe failed: 2020-12-09 05:51:37.828 [INFO][206] confd/health.go 180: Number of node(s) with BGP peering established = 0 calico/node is not ready: BIRD is not ready: BGP not established with

kubernets添加节点

首先在master上生成加入命令 # kubeadm token create --print-join-command 添加新node # kubeadm join 192.168.223.158:16443 --token j97y95.yso1taprzg8ulwx7 --discovery-token-ca-cert-hash sha256:b5c4bda4ea84ca50ab41e325126101f78962459523fc760feaff4420871ea059 添加新master,需拷贝相关证书至新节点/etc/kubernets下的ca.*,sa.*,front-proxy-ca.*,admin.conf # kubeadm join 192.168.223.158:16443 --token j97y95.yso1taprzg8ulwx7 --discovery-token-ca-cert-hash sha256:b5c4bda4ea84ca50ab41e325126101f78962459523fc760feaff4420871ea059

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/