[TimLinux] k8s 故障分析全集


節點NotReady

Traints:

  • node.kubernetes.io/unreachable:NoExecute
  • node.kubernetes.io/unreachable:NoSchedule

解決辦法:

  1. 查看 kube-controller-manager, kube-scheduler, kube-apiserver, kube-proxy 等的日志,都顯示:
Error from server (InternalError): Internal error occurred: Authorization error 
(user=kube-apiserver-kubelet-client, verb=get, resource=nodes, subresource=proxy)
  1. 嘗試登陸進去看下:
# kubectl -n kube-system exec -it kube-proxy-xxxx sh
error: unable to upgrade connection: Authorization error
(user=kube-apiserver-kubelet-client, verb=create, resource=nodes, subresource=proxy)
  1. 查看其它節點都 Kube-proxy 日志
kubectl -n kube-system logs kube-proxy-xxx
...
endpoints is forbidden: User "system:serviceaccount:kube-system:kube-proxy" cannot list resource "endpoints" in 
API group "" at the cluster scope: RBAC: [clusterrole.rbac.authorization.k8s.io "system:basic-user" not found,
clusterrole.rbac.authorization.k8s.io "system:node-proxier" not found,
clusterrole.rbac.authorization.k8s.io "system:discovery" not found,
clusterrole.rbac.authorization.k8s.io "system:public-info-viewer" not found]
...
  1. calico 網絡問題

LVS_NAT和TUN隧道
K8s網絡實戰分析之Calico-ipip模式
【iptables】理解iptables中DNAT、SNAT和MASQUERADE
k8s網絡calico——BGP模式

Linux中169.254.0.0/24的路由來自哪里
Calico 問題排障
K8S 探針 readinessProbe、livenessProbe和startupProbe

  1. TiDB問題

TiDB on Kubernetes 最佳實踐
TiDB 在網易游戲的應用實踐
numactl工具
newSQL 到底是什么?
NewSQL系統綜述——NewSQL到底New在哪里?
SSD技術掃盲之:什么是NVMe? NVMe SSD有什么特點?
ext4的fsync性能和nodelalloc參數的分析
掛載文件系統選項nodiratime、noatime
TiDB 環境與系統配置檢查
tuned-adm: 最有用的性能調優工具之一
在Linux下安裝tuned以使用tuned-adm命令優化Linux系統性能
增強型 StatefulSet 控制器
Kubernetes K8S之Taints污點與Tolerations容忍詳解
tidb-cluster chart 配置

TiDB Operator 源碼閱讀 (二) Operator 模式
污點和容忍度
TiDB穩定性的一些問題
TiDB錯誤碼與故障排除

  1. 親和性和反親和性

K8S高級調度——親和性和反親和性
詳解 Kubernetes StatefulSet 實現原理
Linux:K8S Pods的生命周期--postStart/preStop
Kubernetes K8S之affinity親和性與反親和性詳解與示例
k8s之pod親和性與反親和性的topologyKey
k8s解決pod調度不均衡的問題
kubernetes資源均衡器Descheduler

  1. iptables 會話保持

Kubernetes進階實戰讀書筆記:Service資源實現模型
基於IPVS的集群內負載均衡深入解讀
【k8s】svc-sessionAffinity
kubernetes session保持等設置
IPVS支持協議的超時時間

  1. 開啟ipv6后導致的tidb啟動問題

k8s與dns--coredns的一些實戰經驗, 配置template關閉ipv6的解析

  1. nat轉換問題

網絡地址轉換(NAT)之報文跟蹤
網絡地址轉換(NAT)之連接跟蹤工具
iptables規則鏈執行順序
kube-proxy ipvs 模式源碼分析
iptables ipset詳解
利用 ipset 封禁大量 IP
記一次問題排查:為什么在POD無法通過Service訪問自己?

  1. sftp 問題

Linux openSSH 只能夠使用SFTP 不能使用ssh登陸
使用put方法上傳文件_tftp 上傳文件,tftp 上傳文件方法,詳細教程
TFTP協議詳解及TFTP穿越NAT
使VSFTPD Ftp Server同時支持IPv4和IPv6網絡

  1. nginx 問題

Centmin Mod: enable IPv6 with Nginx
Linux下ipv6配置系列三:如何為Nginx配置IPv6端口監聽

  1. master問題

將 master 節點服務器從 k8s 集群中移除並重新加入

  1. keepalived ipv6

keepalive配置支持ipv6、ipv4雙棧支持

  1. dual stack

DualStack: NodePort failed when opening dual-stack with ipvs #93858
Kube-proxy/ipvs; Use go "net" lib to get nodeIPs #101429

  1. 客戶端ip

k8s獲取client ip
Using Source IP

  1. 刪除節點

k8s刪除一個Node並重新加入集群
k8s 刪除master和etcd節點並重新加入

  1. redis

redis集群報錯:(error) MOVED 解決方法

  1. calico

calico分配的ip沖突,pod內部arp記錄丟失,pod無法訪問外部服務
arp incomplete_排查Calico網絡中ARP響應異常
calico網絡原理、組網方式和使用
Calico 網絡通信原理揭秘
k8s網絡之Calico網絡


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM