[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网络

posted @ 2021-06-12 14:52  TimLinux  阅读(2329)  评论(0编辑  收藏  举报