Kubernetes
如何将 Kubernetes 中的 Events 分离到独立的 Etcd
· ☕ 1 分钟
对原 etcd 所在磁盘压力减少 5% 以下,风险系数很低,集群没有异常 1. 部署 Events Etcd 集群 Events 对一致性要求低于主 Etcd,建议部署 3 节点 集群。磁盘建议使用 SSD,数据目录与主 Etcd 分开。 采用静态 Pod 方式部署,kubelet 会自动管理 Etcd 进程,与 kube-apiserver 的部署方式一致。 1.1 集群部

推理应用故障排查清单
· ☕ 1 分钟
Pod 查看 1 号进程的子进程 1 ps --ppid 1 -f 查看 Time_Wait 连接 1 netstat -anp | grep TIME_WAIT Istio Ingress 1 kubectl -n istio-ingress logs -l app=istio-ingress |grep vlm-tag-v1 EastWestGateway 1 kubectl -n istio-ingress logs -l app=istio-eastwestgateway |grep vlm-tag-v1 XDS 推送慢 1 2 3 4 5 histogram_quantile(0.99, sum by (le, pod, type) ( rate(pilot_xds_push_time_bucket{}[1m]) ) ) 达到 30s 就需要注意优化推送。 Node 抓包 1 tcpdump -i bond0 -n -v -tttt 指定目标 IP 和端口 1 tcpdump -i bond0 -n -v -tttt host 10.0.0.10 AI 安装 Nodejs 1 2 3 4 5 6 7 curl -o-

Loggie 部署与配置
· ☕ 2 分钟
1. 下载 Chart 包 1 git clone https://github.com/loggie-io/installation 2. 安装 loggie 1 cd installation/helm-chart 1 helm install loggie ./ -nloggie --create-namespace 3. 全局配置修改 移除标准输出前面的时间戳 1 kubectl -n loggie edit cm loggie-config-loggie 将 parseStdout 改为 true,移除标准输出前面的时间戳。 1 2 3 4 5 6 config: loggie: discovery: enabled: true kubernetes: parseStdout: true podlogs 改成 varlog 挂载 1 kubectl -n loggie edit ds loggie 1 2 3 4 5 6 7 8 9 volumeMounts: - mountPath: /var/log name: varlog readOnly: true volumes: - hostPath: path: /var/log

Kubernetes 基础环境要求
· ☕ 2 分钟
1. 基础包 Kubernetes 版本 ≥ 1.18 socat 必须安装 conntrack 必须安装 ebtables 可选,但推荐安装 ipset 可选,但推荐安装 ipvsadm 可选,但推荐安装 1 apt-get -y install socat conntrack ebtables ipset ipvsadm 2. 端口要求 2.1 基础节点服务 Service Protocol Action Start Port End Port Comment ssh TCP allow 22 22 节点远程管理 docker TCP allow 2375 2376 Docker 远程通信 etcd TCP allow 2379 2380 etcd 集群通信 2.2 Master/Control Plane 组件 Service Protocol Action Start Port End Port Comment apiserver

如何升级 Kubernetes 节点的 cgroup 版本
· ☕ 2 分钟
1. cgroup v1 与 v2 接口路径差别 v1 1 2 3 4 /sys/fs/cgroup/cpu/cpu.cfs_quota_us /sys/fs/cgroup/cpu/cpuacct.usage /sys/fs/cgroup/memory/memory.limit_in_bytes /sys/fs/cgroup/memory/memory.usage_in_bytes v2 1 2 3 4 /sys/fs/cgroup/cpu.max /sys/fs/cgroup/cpu.stat /sys/fs/cgroup/memory.max /sys/fs/cgroup/memory.current cgroup v2 是 v1 的升级版本,具有更统一的资层级管理、精准的资源隔离等优点。但也导致了,写代码时,读取相关接口文件时路径不一样,需要做兼容处理。另外,一个思路就是,统一到一个 cgroup 版本。 Kubernetes 默认支持