Poor12 Blog

Thinking will not overcome fear but action will.

多集群联邦项目对比

本文对比主流的多集群联邦项目,分析他们的功能优劣势。 Note: 各项目调研的版本如下:Kubeadmiral(截止至9.1的main分支), Karmada(release-1.7), OCM(v0.11.0), Clusternet(v0.16.0) 功能\项目 Kubeadmiral Karmada OCM ...

Go 并发编程

Go有两种并发编程的风格,简单归纳为共享内存多线程的传统模型和支持通信顺序进程(CSP,在不同的执行体之间传递值)的并发模式。 共享内存的几种并发实现: 互斥锁/读写互斥锁:sync.Mutex/sync.RWMutex 原子操作库:sync.atomic 延迟初始化:sync.Once var icons map[string]image.Image func load...

公有云名词表

扁平网络:扁平网络指的是两个或多个Kubernetes集群的Pod之间能够直接访问,而无需通过其他组件转发,能够提供更高的通信效率。 使用扁平网络对Kubernetes集群的网络模型、网络连通性、规划网段有一定的约束: 所有集群必须使用容器对接ENI的网络模型,通过VPC的路由实现Pod之间跨集群通信。 所有集群VPC之间需要互通,可以处于同一VPC内,也可以将多个集群的...

KubeAdmiral 增强版KubeFed

KubeAdmiral是字节跳动开源的新一代多集群编排调度引擎,基于KubeFed演进而来,解决了KubeFed在生产落地中遇到的问题: 资源利用率低,KubeFed的副本调度策略RSP不够灵活,无法灵活应对集群资源的变化 变更不够平滑,扩缩容时经常出现实例分布不均的现象,导致容灾能力下降 调度语意局限,只对无状态类资源有较好的支持,调度扩展性差 接入成本高,不支持原生AP...

Karmada 多集群服务治理

Service是Kubernetes中非常重要的概念,实现了基础的服务互访互通的能力,对于跨集群的场景,实现服务互访互通的一个前提就是多集群处于一个扁平网络中,集群中的Pod可以互访互通, 这个要求也天然限制了多集群服务的使用。假设集群间的网络条件已打通,那么摆在用户面前的挑战就变成了如何打通多集群服务的逻辑概念。 Kubernetes的Multi-cluster sig引入了Servic...

Karmada 多集群统一编排

在多集群的应用编排的过程中,存在上行和下行两条核心的数据流,即将应用从控制面下发到成员集群的某个节点和将状态实时同步回控制面的资源模板上。 Karmada通过内部的ResourceBinding对象和Work对象串联整个流程: 下行: Template -> ResourceBinding -> Work -> Workloads in clusters 上行...

Karmada 多集群应用调度

对于集群联邦而言,多集群调度无疑是最核心的能力之一,甚至很长时间Karmada被认为是一个多集群的调度器,这也侧面反映了调度的重要性。 在多云的时代,应用的调度可以分为两步,首先将应用调度至某个集群/集群组,然后由集群内的调度器选择一个合适的节点,其中后一步由Kubernetes原生的调度器负责。 就像Kubernetes将Pod调度至节点上一样,KubeFed(上游社区的集群联邦项目)...

多云的优势与挑战

随着云原生技术的不断发展和使用场景的不断丰富,多云、分布式云逐渐成为引领云计算发展的趋势,越来越多的企业将多云作为企业云原生转型的策略之一。 每个企业的出发点各不相同,但大概可以总结为下列几点: 从规模出发的考虑,单个Kubernetes集群无法无限制地扩展资源,Kubernetes社区对于大规模集群的注意事项中,单集群最大节点数为5000,Pod总数不超过150000。在过去的很...

分布式PDB洞察

前言 发生在Pod上的干扰(Disruptions)可分为两种情况: 非自愿干扰(Involuntary),一般是出现了不可避免的硬件或软件系统错误。 节点下层物理机的硬件故障 虚拟机被错误地删除 内核错误 节点由于集群网络隔离从集群中消失 Kubelet Eviction(节点资源不足) Taint-based Eviction ...