跳至主要內容
K8s 驱逐场景以及规避方案

K8s 驱逐场景以及规避方案

Pod 驱逐场景总结

从一个 SRE 角度看, Pod 驱逐分为两种情况:

  • 较安全驱逐 & 提高稳定性的良性驱逐
    • API 发起驱逐,典型案例:kubectl drain
    • Node Not Ready 时,Controller Manager 发起的驱逐
  • 有风险的驱逐
    • 节点压力驱逐
      • 节点磁盘空间不足、内存不足 或 Pid 不足, kubelet 发起驱逐
      • 节点内存不足,内核发起 OOM
    • 节点打污点(NoExecute),导致 Pod 被驱逐,或者移除亲和性标签,导致 Pod 被驱逐, Controller Manager 发起的驱逐
    • Pod 超过自身 Limit 限制, 内核用满,临时存储用满等
    • 优先级抢占驱逐

Clay原创大约 3 分钟云原生Kubernetes
从0开始装一套 KubeVirt 1.2.1

从0开始装一套 KubeVirt 1.2.1

KubeVirt 架构

架构

  • virt-api : 负责提供一些 KubeVirt 特有的 api,像是 console, vnc, startvm, stopvm 等。
  • virt-controller : 管理和监控 VMI 对象及其关联的 Pod,对其状态进行更新。
  • virt-hander : 以 DaemonSet 运行在每一个节点上,监听 VMI 的状态向上汇报,管理 VMI 的生命周期。
  • virt-launcher : 以 Pod 方式运行,每个 VMI Object 都会对应一个 virt-launcher Pod,容器内有单独的 libvirtd,用于启动和管理虚拟机。

Clay原创大约 6 分钟云原生Kubernetes
K8s 多集群思考、实践和探索

K8s 多集群思考、实践和探索

为什么需要多集群

  • 多活建设:提高业务应用的可用性,避免单个集群或单个数据中心故障导致业务应用暂时不可用。
  • 混合云建设:引入公有云弹性资源解决业务大促节假日资源洪峰
  • 控制故障爆炸半径

建设多集群的前期准备

  • 多集群生命周期管理(新建集群、新增节点等)

  • 多集群应用的分发部署

  • 多集群监控告警

  • 南北流量如何管理

  • 东西流量如何管理

  • 多集群应用迁移


Clay原创大约 10 分钟云原生Kubernetes
kube on kube 实现思路分享

kube on kube 实现思路分享

这里的 kube on kube , 是指建立 K8s 元集群,纳管其他业务 K8s 集群,通过声明式 API 管理集群的创建、增删节点等。

参考 https://github.com/kubean-io/kubean 源码进行编写,进行了裁剪。感谢 DaoCloud 开源! 👍👍

背景

随着容器化覆盖率的逐步增加,越来越多的业务迁移到 K8s 集群中, 考虑到同城双活、不同业务的复杂性以及耦合度,需要部署维护多套 K8s 集群,如何高效、可靠的在数据中心管理多个 k8s 集群是我们面临的关键挑战。


Clay原创大约 6 分钟云原生Kubernetes
我们的虚拟化变革之旅

我们的虚拟化变革之旅

译自:https://blog.taboola.com/our-journey-of-virtualization-change/

黑暗时代

我们最初采用oVirt作为我们的虚拟化平台,事实证明它是一个很好的产品,具有几个显着的优势。其开源性质使我们能够利用广泛的功能和定制选项。

然而,尽管它具有优势,我们还是遇到了一些缺点和问题,迫使我们寻求更好的虚拟化解决方案。两个主要缺点是它没有任何可用的 DFS 和库存管理问题。此外,我们偶尔会遇到 oVirt 的性能问题和稳定性问题。一些资源密集型工作负载出现延迟或意外行为,影响了虚拟化环境的整体性能。随着我们的基础设施的发展,这些问题变得更加明显,导致生产力和用户满意度下降。


Clay原创大约 11 分钟云原生Kubernetes
Calico 异常重启问题复盘

Calico 异常重启问题复盘

集群内网络架构为,基于Calico BGP 的路由模式,直接与交互机建联。

影响范围和故障时间线

影响范围

线下环境 node-xx 物理机上 Pod 网络不可用

影响时间线(2023-07-23 22:09 ~ 22:14)

[22:13] 收到网工反馈 Peer Down

image-20240327201713521


Clay原创大约 4 分钟云原生Kubernetes
K8s 无备份,不运维

K8s 无备份,不运维

出故障时,就知道是谁在裸泳 🙃

K8s 投产使用,备份是保命手段,必须要上,建议做一个 checklist,巡检通过,集群才能对外提供服务,比如,这样👇

image-20240320195757171

备份方案制定

  1. 物理备份:etcd 备份,保存某一个时刻的快照,快捷方便。
  2. 逻辑备份:velero 备份 ,允许用户自己选择备份的内容,比如单个 namespace、指定资源类型等。

Clay原创大约 4 分钟云原生Kubernetes
什么?相同型号物理机 容器性能不如虚拟机?

什么?相同型号物理机 容器性能不如虚拟机?

事件经过

该应用通过虚拟机和容器混合部署,上线前压测了虚拟机上的应用性能,理论上流量高峰能抗住。

[xx:xx] 流量突增,接口大量超时

[xx:xx] 限流

[xx:xx] 重启,虚拟机能重启成功,容器重启失败,容器流量摘除,暂时恢复

[xx:xx] 扩容, 容器虚拟机均扩容

[xx:xx] 两台容器异常,流量摘除


Clay原创大约 6 分钟云原生Kubernetes
2
3
4
5