记录一次ipv4_forward被修改导致的生产事故

生产集群的节点内核模块被异常修改,导致集群服务与服务之间网络通信异常,产生了较大规模的生产事故。

此次事故涉及到两个主要的内核模块被修改:

  1. net.ipv4.ip_forward: 用于启用 IP 转发,当此模块加载时,Linux 内核会允许将数据包转发到其他网络
Read more

K8s给命名空间设置专享节点

是指在特定命名空间下部署的 Pod 都会被调度到指定标签的节点上,这个功能需要在 kube-apiserver 添加 PodNodeSelector 参数:

Read more

CoreDNS和NodeLocalDNS的域名解析

在 K8s 中,DNS 的解析主要用这两个工具:

  1. CoreDNS: 主要负责集群内部域名解析
  2. NodeLocalDNS: 提供 DNS 缓存
Read more

kube-proxy工作原理

kube-proxy 以 DaemonSet 的形式运行在集群的所有节点中,负责管理集群外到 Service,以及 Service 到 Pod 的流量转发。

kube-proxy 有三种模式:

  1. userspace
  2. iptables
  3. ipvs
Read more

CNI工作流程

CNI 即容器网络接口,通过 CNI 能够使 K8s 支持不同的网络模式。

CNI 常见的实现模式大致分为两种:

  1. overlay: 通过隧道打通网络,不依赖底层网络,如 calico
  2. underlay: 通过底层打通网络,强依赖底层网络,如 macvlan
Read more