百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

使用Talos简化Kubernetes

liuian 2025-02-07 18:19 30 浏览

使用 Talos 以简单的方式了解如何使用 Kubernetes 。

译自 Making Kubernetes Simple with Talos,作者 Ritesh。

今年,Kubernetes 随着 v1.30.0 版本的发布迎来了其十周年纪念日,巩固了其作为首选云平台的地位。EKS、GKS 和 AKS 等自管理 Kubernetes 集群占集群总数的 73%,其余 27% 为自管理,如 Dynatrace 所述。过去十年是公有云时代,但由于成本不断上升,一些企业正试图通过混合云找到平衡。根据 VMware 的说法,大约 76% 的组织现在利用多个云,即公有云和私有云的组合。Kubernetes 允许我们在所选硬件上构建多云和私有云层,并且以经济高效的方式构建,而无需承诺使用某个特定云。

尽管 Kubernetes 的采用率不断提高,但人们仍然关注成本效率、可靠性和安全性。从 Kubernetes 虚拟机过渡到裸机基础设施可通过消除管理程序层、简化故障排除流程和最大化应用程序的资源可用性来提供性能优势。裸机设置使组织能够完全控制硬件组件,从而针对特定工作负载进行定制优化。通过正确的工程实践和 Kubernetes 的集成,组织可以实现与公有云产品同等的功能。从历史上看,由于操作复杂性,特别是在管理集群生命周期方面,在裸机上运行 Kubernetes 构成了挑战。然而,这些障碍已随着 Talos 的引入而被克服,我们将在本文中进一步探讨。

Talos 是一个非常精简的操作系统,用 Golang 编写。Talos 被设计为一个特定于操作系统的操作系统,用于维护 Kubernetes 集群。为了使 Kubernetes 基础设施更可靠,我们需要确保每个节点运行相同版本的操作系统。Talos 可以通过添加 Talos 构建在其上的不可变理念来帮助我们保持 Kubernetes 基础设施的可靠性和一致性。

Talos 始终作为 SquashFS 映像运行,SquashFS 映像是 Linux 中的只读文件系统。Talos SquashFS 映像的总大小约为 80M。Talos 故意省略了 systemd、GNU 实用程序、控制台包、bash 或 SSH 二进制文件等组件,以最大程度地减少攻击面并降低安全漏洞的可能性。相反,它依赖于一个用于管理系统操作的现代 API。

Talos 仅包含所需内容。相反,所有内容都由一个现代 API 管理。Talos 非常注重不可变基础设施理念。

什么是不可变基础设施?

不可变基础设施一旦系统部署,你将无法对其进行任何更改;此概念称为不可变基础设施。如果在不可变基础设施中需要进行更改,则会创建一个具有所需修改的新基础设施,而不是更改现有基础设施。拥有不可变的基础设施使登台、预生产和生产环境更加一致。在裸机 k8s 基础设施上保持节点之间的一致性是最重要的。在这种类型的基础设施中,我们的应用程序与操作系统紧密耦合,这是不可变系统的缺点。

使用 Talos 的好处

  1. Talos 在整个系统中保持一致性,并避免任何配置更改。Talos 将此称为“可预测性”。
  2. Talos 旨在使 Kubernetes 基础设施完全不可变,从而增强可靠性、安全性和一致性。这使得 Talos 成为运行 Kubernetes 的裸机服务器的理想选择。
  3. Talos 被设计为不可变的,因此它在 RAM 上运行,而不是在磁盘上运行。由于 Talos 是 SquashFS 映像,因此它具有较少的写入点,这些写入点本质上是短暂的。
  4. Talos 具有高度安全性。
  5. Talos 是一个非常轻量级的操作系统,大约有 12 个二进制文件,全部用于运行 Kubernetes。
  6. Talos 是 API 驱动的。
  7. Talos 遵循 KSPP(内核自保护项目)给出的建议 - KSPP 文档

用例

Talos 非常适合自管理 Kubernetes 集群,但 CIVO 等平台提供使用 Talos 部署 Kubernetes 集群的支持。以下是使用 Talos 运行 Kubernetes 的一些用例。

1. 边缘应用程序:

要在边缘设备大规模集群中进行管理,Kubernetes 是最佳选择之一,因为它不仅可以设计用于容器编排,还可以有效地管理边缘设备。为了确保边缘应用程序的可靠性和安全性,拥有一个安全且可靠的 Kubernetes

2. 裸机上的 Kuberntes:

在裸机上使用 Kubernetes 消除了不必要的抽象,使我们的应用程序能够完全控制硬件。Talos 是在裸机服务器上部署 Kubernetes 的绝佳选择。它消除了不必要的配置和故障排除,并使在裸机上部署 Kubernetes 变得容易。

3. AI & 机器学习工作负载:

Kubernetes 被证明是测试和训练新的机器学习模型的理想平台,能够无缝部署到更大规模的环境中。在部署中保持一致性对于确保安全稳定的模型部署至关重要。Talos 通过提供一致的环境,根据需求实现可靠的模型扩展,在此过程中发挥了关键作用。

架构和设计

Talos Architecture 由许多具有已定义 gRPC 界面的不同组件组成。所有 Talos 组件之间的通信都通过 gRPC 进行。

Talos 文件系统分区

  • EFI:存储 EFI 引导数据。
  • BIOS:用于 GRUB 第二阶段引导。
  • Boot:用于引导加载程序,存储 initramfs 和内核数据。
  • Meta:存储有关 Talos 节点的元数据。
  • State:存储机器配置。
  • Ephemeral:挂载在 /var 上,用于存储临时数据。

Talos的文件系统有3层:

  1. rootfs:它是只读的核心squashfs层。然后将Squashfs作为循环设备挂载到内存中。
  2. tmpfs:此文件系统用于运行时特定需求。
  3. system:内部操作必需。

例如,Talos 将写入 /system/etc/hosts,然后将其绑定到 /etc/hosts 中。Talos 不会让 /etc 可写,而只让 /etc 的特定部分可写。/system 会在每次启动时完全重新创建。为了实现启动时持久化,Talos 创建了 overlay 的文件系统。Kubernetes 拥有 /var。此目录由 etcd 用于写入数据。我们添加 "--preserve" 选项来避免在升级时删除此数据,仅当机器升级或重置时才会删除此数据。

组件

talosctl 是一个用于与 Talos 中所有组件交互的 CLI 工具。类似于我们使用 kubectl 与 kube-api 交互的方式,talosctl 用于与 apid 交互。

  • apid:Talos 是 API 驱动的,apid 负责提供 gRPC 终结点以与不同的组件交互。apid 在每个节点上都存在,包括控制平面。

Talos 架构

  • machined:它负责处理来自 apid 的 API 请求,并进行资源和控制管理。
  • trustd:它是一个守护进程,用于在系统中建立信任。它用于在节点之间建立信任。
  • udevd:它用于在 /dev 中设置必需的链接。

控制器与资源

  • 资源:它们与 Kubernetes 中的资源类似,资源属于不同类型,并包含元数据,如命名空间、类型等。资源可通过其命名空间进行唯一标识。“机器配置”资源反映了当前的机器配置。
  • 控制器:在 Talos 中,控制器作为线程运行。一个控制器可以管理多种资源类型,并且每种资源类型都可以有许多资源。为了避免冲突,只有一个控制器负责管理命名空间中特定资源类型。Talos 将为控制器定义的资源类型存储在 meta 命名空间中。

Demo

在这篇文章中,由于尚未提供裸机,我们将使用 Docker 来展示该功能。订阅我们的博客,因为我们计划在之后的文章中介绍如何在裸机上运行 Talos。我们将学习如何使用 Docker 创建 Kubernetes 集群。

设置 Docker 和 Talos 集群

先决条件

在继续之前,请确保你已安装以下软件:

  • Docker Engine
  • Kubectl
  • talosctl

注意:talosctl 和 Talos 操作系统 ISO 镜像版本应相同。有关更多信息,请查看发布信息。

Mac:

brew install siderolabs/tap/talosctl

Linux:

wget https://github.com/siderolabs/talos/releases/download/v1.7.0/talosctl-linux-amd64
chmod +x talosctl-linux-amd64
./talosctl-linux-amd64
sudo mv ./talosctl-linux-amd64 /usr/local/bin

使用 docker 和 talosctl 安装一个三节点集群。以下命令将创建一个 3 节点集群(controlplane、workernode-1、workernode-2)。

talosctl cluster create --workers 2

让我们检查一下创建的节点数以及操作系统信息

kubectl get nodes -o wide
kubectl get node talos-default-worker-1 -o json | jq -r '.status.nodeInfo.osImage'

让我们清理并删除集群

结论

Talos 在管理 Kubernetes 环境中发挥着至关重要的作用。它的简单性极大地简化了 Kubernetes 集群的配置。Talos 的不可变理念极大地增强了基础设施的安全性与一致性。

常见问题解答

Talos 与 k3s

Talos 与 k3s 之间没有直接比较。但是,在考虑部署 Kubernetes 集群时,k3s 需要一个操作系统,并且具有其他依赖项,这些依赖项根据底层操作系统而异。而 Talos 的重点是使用其不可变理念运行 Kubernetes 集群,从而保持其安全性和可靠性。Talos 使 Kubernetes 部署变得更加简单。

Talos 包含哪些二进制文件?

  • Talos 中的 init 二进制文件负责运行 kubelet 和容器运行时。
  • Containerd 是 Talos 中的运行时,以及 runc。
  • Modprobe 用于为某些二进制文件加载模块。模块可以添加到 Talos,或者我们可以使用 Image Factory 中预先构建的模块。
  • 对于卷管理,使用 lvm。
  • udevd 用于从内核收集消息并将其传递给其他系统。
  • xfs_repair 等二进制文件用于修复 XFS 文件系统。

Talos 是否免费?

Talos 是一个免费且开源的操作系统,受 Mozilla 公共许可证版本 2.0 约束,允许商业使用。在 Talos Github 存储库 中查看更多信息。

为什么要使用 Talos?

Talos 使 Kubernetes 环境更加安全可靠。众所周知,Talos 适用于 Kubernetes 等分布式系统,如果您希望您的 Kubernetes 环境更加安全可靠,则应该使用 Talos。

我们可以在裸机上运行 Talos 吗?

如果您希望在裸机上配置 Kubernetes,Talos 是理想的选择。敬请关注,了解如何在裸机上部署 Talos,订阅我们的帖子或直接联系我们以进一步讨论此事。

谁为 Talos 提供额外支持?

  • Sidero Labs
  • CloudRaft 用于实施和支持。联系我们 以进一步讨论。

相关推荐

MySQL慢查询优化:从explain到索引,DBA手把手教你提升10倍性能

数据库性能是应用系统的生命线,而慢查询就像隐藏在系统中的定时炸弹。某电商平台曾因一条未优化的SQL导致订单系统响应时间从200ms飙升至8秒,最终引发用户投诉和订单流失。今天我们就来系统学习MySQL...

一文读懂SQL五大操作类别(DDL/DML/DQL/DCL/TCL)的基础语法

在SQL中,DDL、DML、DQL、DCL、TCL是按操作类型划分的五大核心语言类别,缩写及简介如下:DDL(DataDefinitionLanguage,数据定义语言):用于定义和管理数据库结构...

闲来无事,学学Mysql增、删,改,查

Mysql增、删,改,查1“增”——添加数据1.1为表中所有字段添加数据1.1.1INSERT语句中指定所有字段名语法:INSERTINTO表名(字段名1,字段名2,…)VALUES(值1...

数据库:MySQL 高性能优化规范建议

数据库命令规范所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)数据库对象的命名要能做到见名识意,...

下载工具合集_下载工具手机版

迅雷,在国内的下载地位还是很难撼动的,所需要用到的地方还挺多。缺点就是不开会员,软件会限速。EagleGet,全能下载管理器,支持HTTP(S)FTPMMSRTSP协议,也可以使用浏览器扩展检测...

mediamtx v1.15.2 更新详解:功能优化与问题修复

mediamtxv1.15.2已于2025年10月14日发布,本次更新在功能、性能优化以及问题修复方面带来了多项改进,同时也更新了部分依赖库并提升了安全性。以下为本次更新的详细内容:...

声学成像仪:泄露监测 “雷达” 方案开启精准防控

声学成像仪背景将声像图与阵列上配装的摄像实所拍的视频图像以透明的方式叠合在一起,就形成了可直观分析被测物产生状态。这种利用声学、电子学和信息处理等技术,变换成人眼可见的图像的技术可以帮助人们直观地认识...

最稳存储方案:两种方法将摄像头接入威联通Qu405,录像不再丢失

今年我家至少被4位邻居敲门,就是为了查监控!!!原因是小区内部监控很早就停止维护了,半夜老有小黄毛掰车门偷东西,还有闲的没事划车的,车主损失不小,我家很早就配备监控了,人来亮灯有一定威慑力,不过监控设...

离岗检测算法_离岗检查内容

一、研发背景如今社会许多岗位是严禁随意脱离岗位的,如塔台、保安室、监狱狱警监控室等等,因为此类行为可能会引起重大事故,而此类岗位监督管理又有一定困难,因此促生了智能视频识别系统的出现。二、产品概述及工...

消防安全通道占用检测报警系统_消防安全通道占用检测报警系统的作用

一、产品概述科缔欧消防安全通道占用检测报警系统,是创新行业智能监督管理方式、完善监管部门动态监控及预警预报体系的信息化手段,是实现平台远程监控由“人为监控”向“智能监控”转变的必要手段。产品致力于设...

外出住酒店、民宿如何使用手机检测隐藏的监控摄像头

最近,一个家庭在他们的民宿收到了一个大惊喜:客厅里有一个伪装成烟雾探测器的隐藏摄像头,监视着他们的一举一动。隐藏摄像头的存在如果您住在酒店或民宿,隐藏摄像头不应再是您的担忧。对于民宿,房东应报告所有可...

基于Tilera众核平台的流媒体流量发生系统的设计

曾帅,高宗彬,赵国锋(重庆邮电大学通信与信息工程学院,重庆400065)摘要:设计了一种基于Tilera众核平台高强度的流媒体流量发生系统架构,其主要包括:系统界面管理模块、服务承载模块和流媒体...

使用ffmpeg将rtsp流转流实现h5端播放

1.主要实现rtsp转tcp协议视频流播放ffmpeg下载安装(公认业界视频处理大佬)a、官网地址:www.ffmpeg.org/b、gitHub:github.com/FFmpeg/FFmp…c、推...

将摄像头视频流从Rtsp协议转为websocket协议

写在前面很多通过摄像头拿到的视频流格式都是Rtsp协议的,比如:海康威视摄像头。在现代的浏览器中,已经不支持直接播放Rtsp视频流,而且,海康威视提供的本身的webSdk3.3.0视频插件有很多...

华芸科技推出安全监控中心2.1 Beta测试版

全球独家支持hdmi在线实时监看摄像机画面,具单一、循环或同时监看四频道视频影像,可透过华芸专用红外线遥控器、airemote或是键盘鼠标进行操作,提供摄像机频道增购服务,满足用户弹性扩增频道需...