Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

Agoda 将 macOS 基础架构与 Kubernetes 进行了集成

作者:Aditya Kulkarni

  • 2025-02-24
    北京
  • 本文字数:1235 字

    阅读完需:约 4 分钟

Agoda 将 macOS 基础架构与 Kubernetes 进行了集成

Agoda 最近详细介绍了它们是如何将 macOS 基础设施与 Kubernetes 集成在一起的。这是通过开发 macOS 虚拟化 Kubelet(macOS-vz-Kubelet) 来实现的,这是一个旨在在 Kubernetes 环境中管理 macOS 工作负载的工具。


Agoda 的软件工程师(云平台的)Vitalii Horbachov 在一篇 博客文章 中详细阐述了这一历程。Agoda 在开发过程中严重依赖于其苹果基础设施,之前管理着 200 台 Mac Minis 进行持续集成(CI)流程。然而,传统方法面临着可扩展性和性能问题,尤其是在 Apple Silicon 出现之后。现有的虚拟化框架,如 QEMU/KVM,也存在一定的局限性。以前的 Kubernetes 解决方案不够完善,因为它们仅支持部分基础设施,主要侧重于虚拟设备场,而没有解决用于 CI/CD 的构建机器。


为了克服这些挑战,Agoda 开发了 macOS-vz-Kubelet,它允许 Kubernetes 直接管理原生 macOS 工作负载。该项目使用 Go 语言构建,并利用苹果的虚拟化框架来运行 macOS 虚拟机(VM),从而继承了 Apple Silicon 硬件的全部性能。该解决方案不仅取代了旧方法,而且还支持在 macOS 工作负载上无缝部署 Pod。



来源:我们如何将原生 macOS 工作负载与 Kubernetes 进行集成


其中一个功能是能够创建混合运行时 Pod,其中第一个容器是 macOS VM,其他容器可以由 Docker 管理。这种设置允许高效的 CI 工作流,其中 macOS VM 充当构建环境,而 Docker 容器则处理日志记录和工件上传等辅助任务。


该项目引入了一种专门为 macOS VM 镜像设计的自定义开放容器倡议(OCI)兼容格式。这种格式允许使用符合苹果虚拟化框架的工具(如 macosvm)进行高效的镜像创建、打包和管理。


Agoda 最近成为了新闻焦点,因为它们采用了一种非传统的方法,从单体 GraphQL API 迁移到了微服务架构。Agoda 的副开发经理 Numan Hanif 告诉 InfoQ,这种方法最大限度地减少了中断,使他们的团队能够更好地控制整个堆栈,并使架构更好地与敏捷和现代开发原则保持一致。


Horbachov 进一步阐述了苹果虚拟化框架中固有的网络挑战。默认情况下,虚拟机使用 NAT 网络;然而,Agoda 使用 DHCP 实现了桥接网络,允许通过远程 IP 直接访问 VM。这是通过为 VM 接口分配自定义 MAC 地址并监控网络流量以检索 IP 地址来实现的。


在管理底层 macOS 主机方面,Agoda 采用了 JAMF 等移动设备管理(MDM)解决方案,用于在其数据中心对 Mac Minis 进行初始配置和设置。这包括用户帐户设置、操作系统管理和更新。


Horbachov 最后提到,macOS-vz-Kubelet 的引入代表着在 Agoda 基础设施内大规模管理 macOS 工作负载的重要一步。


感兴趣的读者可以前往项目存储库,其中包括有关该功能的全面文档介绍、使用指南和演示 macOS-vz-Kubelet 真实应用的示例。Agoda 的科技播客也讨论了这一历程。


作者介绍


Aditya Kulkarni 一直扮演着技术意识强的交付领导者的角色。他曾与不同的组织合作,帮助他们实现敏捷和 DevOps 转型。作为一名热心的读者,他总是对关注软件开发领域的最新动态感兴趣!


原文链接:


https://www.infoq.com/news/2025/01/agoda-macOS-kubernetes/

2025-02-24 17:379606

评论

发布
暂无评论

京东JD商品详情API返回值解析:商品数据快速提取

技术冰糖葫芦

API boy API 接口 pinduoduo API

Penpad 再获 Animoca Brands 投资,全新生态历程

石头财经

事业-最佳实践-个人-公开场合演讲

南山

最佳实践 演讲 公开场合演讲

一文学会使用valgrind工具进行程序内存检查

Linux内核拾遗

c c++ 内存泄露 Valgrind

11个Python循环技巧

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟 企业号2024年4月PK榜

芯片设计工程师必看:借助Perforce Helix Core和Helix IPLM提高IP重用率,简化设计流程并确保产品质量

龙智—DevSecOps解决方案

Perforce Helix Core 版本控制工具 IP管理

【“AI”协同 创未来】线下研讨会预告:Jira、Confluence及Jira Service Management等Atlassian产品及其AI功能深度解读

龙智—DevSecOps解决方案

可替代IBM DOORS的现代化需求管理解决方案Jama Connect,支持数据迁移及重构、实时可追溯性、简化合规流程

龙智—DevSecOps解决方案

需求管理工具 jama IBM DOORS

Animoca Brands 投资了Penpad, Scroll 生态再迎壮大

BlockChain先知

Animoca Brands 投资了Penpad, Scroll 生态再迎壮大

股市老人

【开源鸿蒙】下载OpenHarmony 4.1 Release源代码

码匠许师傅

git Linux 开源 鸿蒙 OpenHarmony

嵌入式软件的自动化测试工具TESSY:产品概述、使用场景及功能价值介绍

龙智—DevSecOps解决方案

集成测试 测试 单元测试 嵌入式软件测试 Tessy

京东JD商品sku信息API返回值详解:轻松获取商品规格

技术冰糖葫芦

API boy api 货币化 API 接口 pinduoduo API

可解决传统保险丝缺陷的电子保险丝efuse

芯动大师

集成电路 电子保险丝 efuse

TCL电子2024年第一季度65吋及以上电视全球出货量同比增长23.1%

财见

KaiwuDB 受邀亮相 IOTE2024 演讲,顺便领了个奖

KaiwuDB

数据库 物联网

新兴游戏引擎Godot vs. 主流游戏引擎Unity和虚幻引擎,以及版本控制工具Perforce Helix Core如何与其高效集成

龙智—DevSecOps解决方案

Unity 虚幻引擎 游戏开发引擎 Godot

使用ReadyAPI自动化测试工具,模拟高负载场景,准确测试API性能,确保你的App不宕机

龙智—DevSecOps解决方案

UI自动化测试

01 RCLI

独钓寒江

​Rust

物联网智能手表架构实践

智慧源点

Linux设备驱动系列(六)——文件操作

Linux内核拾遗

Linux内核 设备驱动

Innodb的RR到底有没有解决幻读?

派大星

MySQL innodb Java面试题

适用于芯片行业的开发及管理工具:版本控制、持续集成、代码分析及项目管理工具介绍

龙智—DevSecOps解决方案

项目管理 Jira Atlassian Helix Core 版本控制工具 芯片研发

Agoda 将 macOS 基础架构与 Kubernetes 进行了集成_架构_InfoQ精选文章