TL;DR: Vince介绍了为Kubernetes设计的轻量级、安全的Linux发行版Talos Linux,演示了它的安装、配置和管理功能。他展示他创建的Talos Forge工具,以说服另一个索引器尝试Kubernetes和KubeSpan来创建混合集群。问答涉及的内容包括控制平面设置、裸机部署以及与Launchpad等其他工具的比较。
大家好,欢迎阅览 Indexer Office Hours 会议纪要,第 182 场!
观看 Golem 基金会总监 Julian Zawistowski 的 GRTiQ 播客。Julian 是 Golem 的联合创始人和长期领导者,该项目从早期开始就不断发展和转变,Julian 将带我们了解转型以及 Golem 现在正在做的事情。
代码库重要的更新
- Reth 新版本 v1.1.1 :
- 日期:2024-11-05 22:50:45 UTC
- 此版本包含性能改进和错误修复,例如在保存数据块后运行 pruner。没有重大更改;但是,由于正在运行的 Pruner 修复程序,用户在初始重启时可能会遇到更长的启动时间。
- 紧急指标:黄色
- 紧急原因:性能稳定性的重要更新。
- 索引器服务和点击代理(RS):新版本发布:
- indexer-tap-agent-v1.6.0 中:
- 日期:2024-11-04 21:58:37 UTC
- 版本 1.6.0 添加了一项功能,即使 RAV 失败,也可以计算未聚合的费用。此版本中不存在任何关键更新。
- 紧急指标:黄色
- 紧急原因:对性能很重要,而不是关键。
- indexer-tap-agent-v1.5.0 :
- 日期:2024-11-01 21:58:37 UTC
- 版本 1.5.0 增加了一个发件人费用跟踪器指标,并添加了一个修复程序来重新计算所有聚合。此版本中不存在任何关键更新。
- 紧急指标:黄色
- 紧急原因:对性能很重要,而不是关键。
- 索引器-tap-agent-v1.4.1 :
- 日期:2024-10-30 21:58:37 UTC
- 版本 1.4.1 添加了一个错误修复,用于在关闭分配之前检查子图。此版本中不存在任何关键更新。
- 紧急指标:黄色
- 紧急原因:对性能很重要,而不是关键。
- indexer-tap-agent-v1.4.0 :
- 日期:2024-10-30 21:58:37 UTC
- 版本 1.4.0 添加了用于在关闭分配之前初始化分配监视器、子图和刷新数据库的错误修复。它还增加了并行创建分配与分摊的功能。此版本中不存在任何关键更新。
- 紧急指标:黄色
- 紧急原因:对性能很重要,而不是关键。
- indexer-service-v1.2.0 中:
- 日期:2024-10-30 21:58:37 UTC
- 版本 1.2.0 为系统添加了一项功能,用于检查网关是否正在发送所请求的值,否则将拒绝查询。此版本中不存在任何关键更新。
- 紧急指标:黄色
- 紧急原因:对性能很重要,而不是关键。
- 此外,索引器服务版本 1.2.1 和 1.2.2 是非常小的版本。
来自聊天室:
- Matthew Darwin |Pinax:需要一个倒计时时钟,直到不再支持 indexer-service-ts。
- Ana |GraphOps:上周,我们确实在 GraphSeer 资源管理器上添加了一个横幅,上面写着日期是太平洋时间 (PT) 12 月 4 日星期三上午 9:00。
索引器软件通道
Gustavo | Semiotic Labs — 11 月 6 日
大家好,我们刚刚发布了 1.3.1 版的 indexer-service-rs 的重要修复程序。
这修复了一个错误,该错误无法对格式不正确的查询(比需要的空格更多)的证明进行正确签名。
我建议大家更新到索引器的最新版本集:
- 索引器服务RS:1.3.1
- indexer-tap-agent:1.7.1
- 索引器agent:0.21.6-2
此外,从版本 1.2.2 开始,indexer-service 对网关收据强制实施成本模型。如果您将成本模型设置为高于网关预算的值,则可能会出现一些错误。如果这样做,我建议降低 cost models 的值。
- 有关争议 #GDR-18 的信息请求
- 更新:鉴于检查员 POI 提供的证据和仲裁员对数据的确认,我们决定裁决这两项争议。
核心开发更新:
- Semiotic 的2024 年11月更新
- Edge & Node 的 2024 年10 月/11月更新
- Pinax 的2024 年11月更新
- GraphOps 的更新 2024 年11月
- Messari 的2024 年11月更新
- Geo 2024 的年11月更新
- StreamingFast 的2024 年11月更新
- CI:修复 Token Distribution repo 的端点,并为每个包拆分 CI #1066(合并)
- 文档:修复 README.md 中的链接 #1065 (合并)
倒计时已经开始,尽快迁移到 Indexer 服务 Rust 和 TAP。
太平洋时间 (PT) 12 月 4 日星期三上午 9:00,网关将开始强制弃用索引器服务 TypeScript。仍在运行索引器服务 TypeScript 的索引器将没有资格为查询提供服务。
来自 Nodeify(和 Pinax)的 Vince 介绍了 Talos Linux,这是一个专为 Kubernetes 设计的轻量级、安全且可预测的 Linux 发行版。
Vince:我将向你展示 Talos 并试图说服 Payne 使用 Kubernetes(或者至少使用 Kubernetes)。
- Talos 网站
许多 Kubernetes 发行版都安装在其他发行版之上,例如 Debian、Ubuntu 等。Talos 是一个轻量级发行版。它只是镜像,Kubernetes 需要的一切,没有其他任何东西,这使得安装可预测且非常安全。
许多 Kubernetes 发行版都安装在其他发行版之上,例如 Debian、Ubuntu 等。Talos 是一个轻量级发行版。它只是镜像 Kubernetes 需要的一切,没有其他任何东西,这使得安装可预测且非常安全。
没有 SSH。一切都是通过机器配置完成的,我们稍后会详细讨论这个问题。
Talos 团队使所有东西都稳定地推出,因此您不必担心 Kubernetes 会因升级而失控,而 Kubernetes 不支持升级等。
Talos 是最小的:你可以 PXE 启动它,你可以将它安装在 U 盘上并启动它,你可以在 Docker 上运行它,所以你可以用它做很多事情。
它不占用任何磁盘空间,而是将其全部留给 Kubernetes 本身。
Ephemeral 意味着Talos在 SquashFS 的内存中运行,不保留任何东西,将主磁盘完全留给Kubernetes。
- 快速入门指南
如果您想在本地计算机上运行它,只需在 Docker 桌面或类似计算机上运行它,则有一个快速入门,这非常快速和简单。
- 安装 Talos Linux CLI
- Talosctl CLI 工具参考
如果你完全熟悉 kubectl 或 kube control,无论你想怎么称呼它,这就是你与 Talos 集群对话的方式,有很多命令。
- Talos GitHub 存储库
- 安装指南
您可以在各种平台上安装 Talos:DigitalOcean、Google Cloud、裸机、Proxmox 等。我认为 Talos 真正酷的地方是他们有一个叫做 Image Factory 的东西。
- Talos Linux 镜像工厂
- Image Factory 提供了一种下载 Talos Linux 构件的方法。可以使用原理图定义的自定义来生成工件。原理图可以应用于 Image Factory 提供的任何 Talos Linux 版本,以生成模型(从 repo)。
- Image Factory GitHub 存储库
使用 Talos Factory,已经构建了 ISO,但假设您想使用该 ISO 做更多的事情。你想构建自己的 ISO 来拥有自己的内核参数,或者你想在它启动之前改变它的网络或其他不同的东西。这使得您在基础设施中启动时的事情是可预测的。
ISO是设置操作系统的可引导文件。
观看 Vince 在视频录制的 15:57 演示如何使用 Image Factory。
一旦你启动了你的 Talos 机器(在演示中,Vince 的机器在他在 DigitalOcean 上的服务器上),它就进入了维护模式。什么都没做,它刚刚启动了 Talos ISO。
按 F2 获取仪表板,如果您使用的是裸机,您还将获得一个网络选项卡。
由于它处于维护模式,我可以与它交谈并询问这台机器上有哪些磁盘,它会向我显示机器上的磁盘、它们的名称、它们有多少空间、总线路径和一堆其他东西。
您确实希望使用这个不安全的标志,因为在维护模式下,它将是端口 50000,并且它只是坐在那里等待被告知该做什么。
在 Talos 中调试集群后,它将与证书同步,并且你不能再使用这个不安全的标志。你可以连接到它的唯一方法是如果你有证书,与 Kubernetes 和你的 Kubernetes 集群通信也是如此,一切都在证书中,所以它非常安全。
人们最多能做的是,如果他们可以访问它,而你没有配置一些东西,如果他们找到它,他们可以配置它并告诉它做一些事情,这显然是你不想要的,所以我建议如果你打算离开它并等待,你把它限制在内部的东西,而不是完全暴露在外部世界。
这是我制作的一个小工具来说服 Payne。😉
- Talos Forge
- 此存储库包含用于管理 Talos Kubernetes 集群的 makefile 和相关脚本。它为常见的集群操作提供了一个简化的界面,包括初始化、部署、节点管理和配置。
这不是疯狂的制作,因为我在短短几天内就完成了。无论如何,分叉它,改进它,PR 它,做任何你想做的事。我欢迎任何很酷的补充。我只是想能够做你需要做的主要事情。
我可以运行的主要东西是 make help。这一切都使用 make 命令运行。
您可以通过运行 make help 来查看所有命令,或者查看存储库上的 README。
make help
Usage:
make deps # Check system dependencies
make init # Interactive cluster initialization
make deploy <cluster-name> # Deploy Talos cluster
make kubeconfig <cluster-name> # Generate Kubeconfig
make reset-cluster <cluster-name> # Reset Talos cluster nodes
make add-node <cluster-name> <node-type> <node-ip> # Add a node to the cluster
make remove-node <cluster-name> <node-ip> # Remove a node from the cluster
make apply <cluster-name> <node-ip> <patch-file> # Apply patches to the specified cluster
- 配置补丁
Talos 有补丁,假设我使用特定的机器配置启动了它,但我想更改它的某些内容。我想更改它所在的磁盘。您可以将补丁应用于计算机以调整配置选项。所以也许你有你的基本配置,然后你有改变各种事情的补丁。
您需要安装 curl、Git 和 yq。此外,您还需要 talosctl 和 kubectl,然后你就可以开始了。
观看 Vince 在录音的 20:33 进行的演示。
您将获得两个文件:一个 worker YAML 和一个控制器 YAML。
运行 make init 命令并自行完成此操作,您可以做很多事情。
Vince 讨论道:
- 如果您运行的是裸机,则需要将网络进行正态化。
- 您可以使用 VIP 并使用同一网络中未使用的 IP 地址,而不是负载均衡器。
- 您可以更改磁盘名称或要求它选择特定大小的磁盘。
看看这些,看看你能做的所有事情。要讨论的内容很多,我不可能谈论所有内容。
KubeSpan 是 Talos 的一项功能,可自动为您的集群设置和维护全网状 WireGuard 网络,使您能够操作可以跨越边缘、数据中心和云的混合 Kubernetes 集群。密钥管理和 Peer 节点的发现可以完全自动化,使创建混合集群变得简单易行(从 KubeSpan 页面)。
您可以在多个不同的平台上与事物交流。也许你有裸机、Google Cloud 中的东西和 DigitalOcean 中的东西,它们甚至不在同一网络上。这实际上创建了一个只有一个启用标志的自定义 WireGuard 网络,并且一切都会相互通信,因此您不必处理任何疯狂的网络或类似的事情。
现在我们有了集群,我们想要使用 make deploy 命令来部署它。
它将开始运行,您将看到 control plane 和所有其他节点将开始启动。所有服务都启动后,某些服务可能会运行状况不佳。你只需要给它一分钟,一切都会变得健康。一旦它显示 ready,它还会告诉您您的集群已准备就绪。
既然我们还有几分钟的等待时间,有人有什么问题吗?
Payne:当您为控件设置 IP 时,负载均衡器...负载均衡器有什么作用?
Vince:所以负载均衡器基本上是对所有控制平面进行负载均衡,这是你的 Kubernetes API,所以你可以与它对话。
Payne:我需要负载均衡器吗?
Vince:不,您可以使用 VIP。您甚至可以运行 HAProxy。您可以在前端运行任何您想要的内容。但是,如果您的主控制平面出现故障,您将无法与集群通信。所以你需要一些东西在它前面,这样你就可以一直与它交谈并管理它。
Payne:所以我可以通过负载均衡器 IP 访问我的集群吗?
Vince:正确。这样,您的某些 control plane 出现故障就无关紧要了。
Payne:控制平面是独立的服务器吗?
Vince:是,或 VM。你可以 Proxmox 它们。
Payne:如果我有裸机,我想向它扔容器怎么办?
Vince:如果您有裸机,则有几种选择。我推荐小型裸机服务器,您甚至可以使用 Raspberry Pi。理想情况下,您需要单独的机器,但有些人喜欢使用较小的服务器并对其进行 Proxmox。但是,如果那台机器坏了,那么你所有的控制平面都会宕机。你肯定想要不同的机器。
在最小的理想方案中,您将有 6 台计算机。但也有 KubeSpan,如果你想把控制平面放在其他地方,比如 DigitalOcean,那很好;您可以在云中只拥有您的控制平面。他们将通过 WireGuard 进行交流。
控制平面非常小,例如 2 到 4 个 vCPU,非常小的服务器。
Payne:如果我让所有 6 台服务器都同时充当控制平面和 worker 会怎样?
Vince:是的,你可以这样做。默认情况下,控制平面不承担工作负载,但您可以将其关闭。
Payne:所以我可以用 Proxmox 做我现在正在做的事情。我知道不建议这样做,因为我有可能在其他地方运行它,但同时......
Vince:是的,你绝对可以这样做。
calinah |GraphOps: YOLO [你只活一次]
Payne:是的,YOLO
我的下一个问题是,在控制平面 YAML 文件中,您是否为每个 worker 节点指定此项...当您说指定磁盘和所有这些时,是在控制平面中还是在工作程序 YAML 中?
Vince:两者都是。
[35:00] 在控制平面中,有不同的东西,如果你试图做一些不存在的事情,它甚至会告诉你。在控制平面的 cluster 下主要有一些 worker 没有的东西,所以如果你尝试在 worker 节点上应用来自 cluster 的东西,它会说,“我不知道那是什么”
下面链接是如何让你的 control plane 也运行工作负载,所以它只允许在 control plane 上进行调度,这样你就可以在上面运行工作负载。
- 如何在 control plane 节点上启用 worker
Vince:现在它说它已准备就绪,我可以做:创建 kubeconfig 和集群名称 (ioh)。现在我们有了 kubeconfig。
复制 kubeconfig 并粘贴到 Kubie 中以测试集群。
然后拉取 K9s,转到 namespace all,你可以看到我们有自己的集群,我们可以与之通信,如果需要,我们可以在它上运行工作负载。
我们添加另一个控制器。
我们这样做:make add-node、cluster name、controlplane、node IP
- make add-node ioh controlplane [IP]
它已启动并加入集群。
现在,假设这是一个错误:make remove-node, cluster name, node IP
- make remove-node ioh [IP]
它将重置节点并将其从集群中删除。
然后,它会重新启动到维护模式。
让我们对 worker 2 进行修补。我想更改一个标签,一些简单的标签。
进入 patches 文件夹并创建 labels.yaml
我希望它说:value env:“worker”
然后执行:make apply、集群名称、worker 两个 IP、patch file
- make apply ioh [IP] labels.yaml
然后应用补丁,您也可以删除它。
您可以在机器配置中修补任何内容。
Talosctl 有大量的命令和子命令。看看它们。
- Talosctl CLI 工具参考
一些例子:
- 验证您的计算机配置
- 备份 etcd,这有点像集群
- 列出容器
- 添加内容
- 检查运行状况
如果我们去 make help 并键入:make reset-cluster ioh
这将重置集群配置中的所有内容,然后它将返回维护模式并准备好再次使用。
在生产中,您将希望真正根据您的机器对其进行定制,因为您的机器会有所不同。
paka |E&N:我能不能简单解释一下这与像Launchpad这样的东西有什么不同呢?
Vince:Launchpad 是一旦你有一个集群,所以这是获取一个 Kubernetes 集群并在硬件级别对其进行管理。
Payne:所以你在硬件级别使用 Talos 来管理它,然后你用 Launchpad 在集群上部署东西,对吧?
Vince:是的,正确。或者你想使用的任何内容:裸清单、Argo、Flux、Launchpad。
Pierre |Chain-Insights.io:Talos 是一个包含 Kubernetes 电池的 Linux 操作系统。
Vince:没错,Pierre。
paka |E&N:是否有针对特定域/应用程序用例的白标Talos包?
Vince:是的,如果您继续访问发布页面,他们有专门针对不同平台的发布页面。他们发布了虚拟化平台和托管平台(如 Google Cloud、DigitalOcean 和许多其他主要参与者)的版本。他们有适用于 Raspberry Pi 的 VPN。
Raspberry Pi 很酷的地方在于扩展,你可以做内核参数,但我认为他们在 1.7 之后也添加了层,所以你甚至可以在安装内核之前做一些事情,你想用 Raspberry Pi 做这件事,因为它们没有 BIOS。
那么 Talos Factory 就非常酷了,因为你可以创建自己的镜像,如果你不关心托管自己的 PXE 引导镜像,那么已经有适用于你所选择的事物的 PXE 脚本。
但是,是的,Talos 支持任何云平台、虚拟化 Proxmox、裸机。对于裸机,您需要将其调整为更适合您运行内容的方式。
我会提到这一点,但它很昂贵:Omni 入门
- 定价和支持
Talos 有一种叫做 Omni 的东西。它是一个带有支持和其他服务的托管平台。作为一种“爱好”,您最多可以获得 10 个节点,但如果您打算使用更多节点,则需要付费,那么多节点大约需要 1,500 美元,所以非常昂贵,但是一个很酷的平台。基本上,你所做的是创建一个集群,有了它,你可以下载安装媒体,它有点像 Talos Factory,你可以添加内核参数并下载它。
最酷的是,您只需下载安装介质,然后获得该映像,当您创建集群时,这些计算机将自动弹出您的 UI,然后您可以执行配置补丁并应用它们。
- Omni 存储库
来自代码库:
Omni 通过 Business Source 许可证提供,该许可证允许在非生产环境中免费安装。如果您想部署 Omni 用于生产用途,请联系 Sidero 销售人员。如果您想订阅 Omni 的托管版本,请参阅 SaaS 定价。
如果您想为非生产工作负载自托管 Omni,请按照文档中的说明进行操作。
Pierre |Chain-Insights.io:将 Rancher 与 K3s 和 RKE2 一起使用。
Mack:几周前我确实问过 Vince,哎呀
John K. 发帖:您真的不需要 Talos 的 UI。它的理念是声明性的。将你的机器配置 yamls 签入 Git。您真的只需要更改它们即可升级 Talos 或 K8s。
Vince:是的,这是真的,这就是它的力量:它是声明性的,只是有些人喜欢好的 UI。
Talos 默认是安全的,并且是声明式的,因此您可以按照其部署方式进行部署。您不会回头想,“我是否安装了那个软件包?集群上发生的事情都在您的 GitHub 中。
Vince:Payne,您现在打算使用 Kubernetes 吗?
Payne:只要我有更多的空闲时间,我就会开始尝试它。🎉
(相关专业名词、注释、代码库、超链接等请关注博客查找)
#区块链开发 #web3数据索引 #TheGraph #索引器
所有评论