摘要:對于節點已經登陸不了的情況,如果希望快速恢復可以在控制臺找到對應主機斷電重啟。與綁定完成,插件完成后續的掛載和等工作。
對于使用 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3131·2022-06-28 19:00
閱讀 2859·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00