Kubernetes APF(API 优先级和公平调度)简介
在 Kubernetes 集群中,kube-apiserver
是一个至关重要的组件,它不仅要对外响应客户端的 HTTPS 请求,还要对内与 controller-manager
、scheduler
、kubelet
…… 等等其它组件交互。
在 Kubernetes 集群中,kube-apiserver
是一个至关重要的组件,它不仅要对外响应客户端的 HTTPS 请求,还要对内与 controller-manager
、scheduler
、kubelet
…… 等等其它组件交互。
2024 年 12 月 11 号,OpenAI
的 Kubernetes
集群发生故障,API
、ChatGPT
、Sora
等服务都受到了影响,且时间长达 4 小时 22 分钟。
关于这次故障,官方有公开复盘,也有很多媒体博主追踪报导。然而,我对此并不满意,本文我将会提出自己的疑惑与追问。
我之前的文章里有分享过自己总结的做技术选型的思考框架,本文将会分享一下我总结的做系统组件调优/优化的思考框架。
常见的互联网架构基本离不开数据库、缓存、消息队列、搜索、数据处理等等各种组件,虽然组件的形态不一、功能不同,但是我仍然把对他们的优化总结归纳为了以下几点:
在使用 Kubernetes 时,可以通过 resources.requests
和 resources.limits
配置资源的请求和限额,例如:
|
|
对容器的资源配置会通过 CRI
组件(如 containerd
、cri-o
交由更底层的 runc
或 kata-container
)去设置 Linux 的 cgroup。
有读者提问:Flannel
与 Calico
的区别。文本将解析一下这两个组件。
Flannel
的架构非常简单,只有两个组件:flanneld
和 flannel-cni-plugin
。
在功能特性上,Flannel
有三个部分:
在现代 AI 技术的推动下,声音处理领域取得了巨大进展。从语音识别(ASR
)到文本转语音(TTS
),再到个性化声音克隆,这些技术已经深入到我们的日常生活中:语音助手、自动字幕生成、语音导航等应用无处不在。
大语言模型(LLM
)为基于文本的对话提供了强大的能力。那么,能否进一步扩展,将其转化为语音对话的形式呢?本文将展示如何使用 Whisper
语音识别和 llama.cpp
构建一个 Web 端语音聊天机器人。
技术选型无处不在,你可能需要选择一种类库、选择一个框架、选择一种语言、选择一种组件、选择一个架构模式、选择一种系统方案……。 那么如何构建一个决策或思维框架去做技术选型呢?
RAG
(Retrieval Augmented Generation
检索增强生成)是目前业界中的一种主流方法,通过增加额外知识的方式来减少大语言模型(LLM
)的幻觉问题(一本正经的胡说八道)。
假设集群有 2 个 node 节点,其中一个有 pod,另一个则没有,那么新的 pod 会被调度到哪个节点上?
应用程序通过容器的形式运行,如果 OOM(Out-of-Memory)了,是容器重启还是所在的 Pod 被重建?