摘要:对于节点已经登陆不了的情况,如果希望快速恢复可以在控制台找到对应主机断电重启。与绑定完成,插件完成后续的挂载和等工作。
对于使用 UK8S 遇到的本文档未涉及的问题,如果需要人工支持,请添加下面公钥信任,并提供主机的 uhost-id
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGIFVUtrp+jAnIu1fBvyLx/4L4GNsX+6v8RodxM+t3G7gCgaG+kHqs1xkLBWQNNMVQz2c/vA1gMNYASnvK/aQJmI9NxuOoaoqbL/yrZ58caJG82TrDKGgByvAYcT5yJkJqGRuLlF3XL1p2C0P8nxf2dzfjQgy5LGvZ1awEsIeoSdEuicaxFoxkxzTH/OM2WSLuJ+VbFg8Xl0j3F5kP9sT/no1Gau15zSHxQmjmpGJSjiTpjSBCm4sMaJQ0upruK8RuuLAzGwNw8qRXJ4qY7Tvg36lu39KHwZ22w/VZT1cNZq1mQXvsR54Piaix163YoXfS7jke6j8L6Nm2xtY4inqd uk8s-tech-support
kubectl describe pods pod-name -n ns
查看 pod 的相关 event 及每个 container 的 status,是 pod 自己退出,还是由于 oom 被杀,或者是被驱逐kubectl logs pod-name -p -n ns
查看容器退出的日志,排查原因dmesg
查看系统日志以及journalctl -u kubelet
查看 kubelet 相关日志。kubectl get pods -n kube-system |grep plugin-operation
找到对应插件升级的 pod,并 describe pod 查看 pod 失败原因。uk8s-xxxxxx-master-ulb4
)登陆到 UK8S 三台 master 节点,检查 etcd 和 kube-apiserver 服务是否正常,如果异常,尝试重启服务
systemctl status etcd
/ systemctl restart etcd
如果单个 etcd 重启失败,请尝试三台节点的 etcd 同时重启systemctl status kube-apiserver
/ systemctl restart kube-apiserver
kubectl describe node node-name
查看节点 notReady 的原因,也可以直接在 console 页面上查看节点详情。journalctl -u kubelet
查看 kubelet 的日志, system status kubelet
查看 kubelet 工作是否正常。sar
命令,如果发现磁盘 cpu 和磁盘使用率突然上涨 且内存使用率也高,一般情况下是内存 oom 导致的。关于内存占用过高导致节点宕机,由于内存占用过高,磁盘缓存量很少,会导致磁盘读写频繁,进一步增加系统负载,打高cpu的恶性循环集群若需要访问公网,进行拉取镜像等操作,需要为集群所在 VPC 绑定 NAT 网关,并配置相应规则,详见:https://docs.ucloud.cn/vpc/introduction/natgw
ping uhub.service.ucloud.cn
(如果ip为117.50.7.5 则表示是通过公网拉取,有限速)curl https://uhub.service.ucloud.cn/v2/
查看是否通,正常会返回 UNAUTHORIZED 或 301systemctl show --property=Environment docker
查看是否配置了代理iftop -i any -f host
命令,同时尝试拉取 UHub 镜像,查看命令输出(uhub-ip替换为步骤1中得到的ip)apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: udisk-ssd-test
provisioner: udisk.csi.ucloud.cn #存储供应方,此处不可更改。
---
apiVersion: v1
kind: PersistentVolumeClaim
spec:
storageClassName: ssd-csi-udisk
用户只需要设置好 StorageClass,在使用 pvc 时,csi-udisk 插件会自动完成 UDisk 的创建挂载 mount 等一系列的操作,主要流程如下
kubectl get pods -o wide -n kube-system |grep udisk
查看(一个总的 controller 及每个 node 对应的 pod)VolumeAttachment 并不由用户自己创建,因此很多用户并不清楚它的作用,但是在 pvc 的使用过程中,VolumeAttachment 有着很重要的作用
kubectl get volumeattachment |grep pv-name
进行查看kubectl logs csi-udisk-controller-0 -n kube-system csi-udisk
查看 csi-controller 日志定位原因[root@10-9-112-196 ~]# kubectl get volumeattachment |grep pvc-e51b694f-ffac-4d23-af5e-304a948a155a
NAME ATTACHER PV NODE ATTACHED AGE
csi-1d52d5a7b4c5c172de7cfc17df71c312059cf8a2d7800e05f46e04876a0eb50e udisk.csi.ucloud.cn pvc-e51b694f-ffac-4d23-af5e-304a948a155a 10.9.184.108 true 2d2h
apiVersion: storage.k8s.io/v1
kind: VolumeAttachment
metadata:
annotations:
csi.alpha.kubernetes.io/node-id: 10.9.184.108 # 绑定的节点ip,填写报错pod所在节点
finalizers:
- external-attacher/udisk-csi-ucloud-cn
name: csi-1d52d5a7b4c5c172de7cfc17df71c312059cf8a2d7800e05f46e04876a0eb50e # 名称,按照pod报错名称填写
spec:
attacher: udisk.csi.ucloud.cn
nodeName: 10.9.184.108 #绑定的节点ip,填写报错pod所在节点
source:
persistentVolumeName: pvc-e51b694f-ffac-4d23-af5e-304a948a155a # 绑定的pv,填写pod使用的pv
对应关系表
UK8S资源类型 | 与主机对应关系 |
---|---|
PV | UDisk 的磁盘 |
VolumeAttachment | 磁盘与主机的挂载关系(vdbvdc 的块设备) |
PVC | 磁盘在主机上mount的位置 |
pod | 使用磁盘的进程 |
kubectl get pvc -n ns pvc-name
查看对应的 VOLUME 字段,找到与 pvc 绑定的 pv,一般为(pvc-e51b694f-ffac-4d23-af5e-304a948a155a)kubectl get pv pv-name -o yaml
在 spec.csi.volumeHandle 字段,可以查看到改 pv 绑定的 UDisk盘(flexv 插件为 pv 的最后几位)kubectl get volumeattachment |grep pv-name
查看 K8S 集群内记录的磁盘挂载状态,VolumeAttachment的作用lsblk
可以看到对应的盘mount |grep pv-name
可用查看盘的实际挂载点,有一个 globalmount 及一个或多个 pod 的 mount 点[root@10-9-184-108 ~]# mount |grep pvc-e51b694f-ffac-4d23-af5e-304a948a155a
/dev/vdc on /data/kubelet/plugins/kubernetes.io/csi/pv/pvc-e51b694f-ffac-4d23-af5e-304a948a155a/globalmount type ext4 (rwrelatime)
/dev/vdc on /data/kubelet/pods/587962f5-3009-4c53-a56e-a78f6636ce86/volumes/kubernetes.io~csi/pvc-e51b694f-ffac-4d23-af5e-304a948a155a/mount type ext4 (rwrelatime)
kubectl edit
对应的资源删除掉其中的 finalizers 字段,此时资源就会成功释放掉kubectl get pvc -n ns pvc-name
查看对应的 VOLUME 字段,找到与 pvc 绑定的 pv,一般为(pvc-e51b694f-ffac-4d23-af5e-304a948a155a)kubectl get pv pv-name -o yaml
在 spec.csi.volumeHandle 字段,可以查看到改 pv 绑定的 UDisk 盘(flexv 插件为 pv 的最后几位)kubectl logs csi-udisk-controller-0 -n kube-system csi-udisk
的日志输出及 pod 的event--network host
参数,使用 hostnetwork 的模式起容器tcpdump -i eth0 host
查看是否正常 ulb-ip 替换为 svc 对应的实际 ipsystemctl status kube-proxy
iptables -L -n -t nat |grep KUBE-SVC
及 ipvsadm -L -n
查看转发规则是否下发正常iptables -L -n -t nat
或者ipvsadm -L -n
查看对应规则实时文档欢迎访问https://docs.ucloud.cn/uk8s/troubleshooting/k8s_debug_summary
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/126287.html
摘要:为什么在节点直接起容器网络不通为什么在节点直接起容器网络不通为什么在节点直接起容器网络不通使用自己的插件,而直接用起的容器并不能使用该插件,因此网络不通。 UK8S 集群常见问题本篇目录1. UK8S 完全兼容原生 Kubernetes API吗?2. UK8S 人工支持3. UK8S对Node上发布的容器有限制吗?如何修改?4. 为什么我的容器一起来就退出了?5. Docker 如何调整日...
摘要:常见错误状态状态说明处理办法启动过程中发生错误。检查所在节点的状态所在节点失联或其他未知异常。一般是由于容器启动命令参数配置错误所致策略禁止拉取镜像。联系仓库管理员,或确认镜像名是否正确启动容器失败。容器参数配置异常执行报错。在Kubernetes中发布应用时,我们经常会遇到Pod出现异常的情况,如Pod长时间处于Pending状态,或者反复重启,下面介绍下Pod 的各种异常状态及处理思路。...
摘要:镜像库常见问题如何在中镜像的和两个版本,目前节点没有安装服务,不支持在节点镜像。如果需要让容器时间与宿主机时间一致,可以使用的方式将宿主机上的时区文件挂载到容器中。一个可以挂载到多个吗不支持多点读写,如需要多点读写请使用。镜像库常见问题如何在UK8S中Build镜像?UK8S的1.12.7和1.13.5两个版本,目前Master节点没有安装Docker服务,不支持在Master节点Build...
摘要:完全兼容原生的,以私有网络为基础,并整合了等云产品。综合资源有效利用率错误容忍度两个因素,在不考虑业务混合部署业务总体规模大小的情况下,我们建议生产环境的节点应该介于核至核之间。模式是一个用于负载均衡的内核功能。产品概念UCloud Container Service for Kubernetes (UK8S)是一项基于Kubernetes的容器管理服务,你可以在UK8S上部署、管理、扩展你...
摘要:存储方面,容器目前支持了两种类型的存储可以多点读写的网络文件系统和仅单点读写的云硬盘。通过添加对协议的支持,轻量级虚拟机可以直接对接到服务,从而实现了对高性能的型云硬盘挂载和使用。Cube诞生背景 随着云原生技术的推广及落地,容器技术在企业生产环境中的使用比重越来越大。Kubernetes作为容器编排的事实标准,在企业服务中被大量采用。UCloud容器团队在2018年推出了Kubern...
阅读 3517·2023-04-25 20:09
阅读 3724·2022-06-28 19:00
阅读 3037·2022-06-28 19:00
阅读 3060·2022-06-28 19:00
阅读 3140·2022-06-28 19:00
阅读 2864·2022-06-28 19:00
阅读 3021·2022-06-28 19:00
阅读 2618·2022-06-28 19:00