NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Datadog 使用大规模 Kubernetes 集群的艰辛之路

  • 2020-01-02
  • 本文字数:1518 字

    阅读完需:约 5 分钟

Datadog使用大规模Kubernetes集群的艰辛之路

来自 Datadog 的Laurent Bernaille柏林举行的Velocity会议上讨论了运维大型自管理 Kubernetes 集群所面临的挑战。Bernailed 聚焦在如何配置弹性和可扩展的控制平面,为何和如何频繁地循环更新证书,以及在 Kubernetes 中使用网络插件实现高效通信的必要性。


传统的架构方式会将所有的 Kubernetes master 组件都放到同一台服务器上,并且至少有三台这样服务器来保持高可用性。但是,这些组件有不同的职责,不能或者不需要以相同的方式进行扩展。举例来说,调度器(scheduler)和控制器(controller)是无状态的组件,这使得它们很易于扩展。但是,etcd 是有状态的,需要数据的冗余备份。同时,像调度器这样的组件会与一个选举机制协作,确保只有一个实例是处于激活状态的。Bernaille 认为扩展调度器并没有什么意义。


因此,Datadog 决定将 Kubernetes 组件切分到不同的服务器上,这些服务器有不同的资源并配置自定义的扩展策略。对于像 API 服务器这样的组件,他们在该组件之前放置了一个负载均衡器,从而能够正确地分配请求。而对于 etcd 服务器,他们也对其进行了拆分,形成了一个专门的 etcd 集群,只用来处理 Kubernetes 事件。



Bernaille 指出,Kubernetes 在所有的组件通信时会使用加密和 x509 证书。所以,为了避免出现证书的问题,比如证书过期,Datadog 决定每天都轮流更新证书。但是,轮流更新证书是一项很具挑战性的任务,因为 Kubernetes 需要在不同的组件和服务器上安装和使用不同的证书。同时,Datadog 意识到在每次轮流更新之后,他们必须要重新启动像 API 服务器这样的组件。因此,Datadog 决定将每天的证书轮流更新自动化并把该任务交给HaschiCorp Vault来实现。


但是,鉴于kubelet按需生成证书的运行方式,Datadog 决定在 kubelet 的每日轮流更新中采用一种例外规则。尽管存在挑战和复杂性,但是 Bernaille 依然建议要频繁地轮流更新证书。这不是一项简单的任务,不过用户能够避免将来在证书过期时出现问题,更糟糕的是在日志中可能并没有证书过期的明显标志。



Bernaille 提到,Datadog 还面临网络方面的挑战,因为需要大量的服务器来运行他们的平台。Bernaille 花了一些时间阐述 Kubernetes 节点会有一个 IP 地址的范围,它们被用来给 pod 分配 IP 地址。因此,对于小型集群来说,使用静态路由实现 pod 之间的通信能够运行地非常好。但是,对于中等规模的集群来说,一种有效的方式就是使用网络覆盖(networking overlays),在这种方式中,节点通过隧道进行通信。在 Datadog,有效的方式是在整个网络中,为 pod 分配一个可路由的 IP。通过这种方式,到 pod 的通信是直接连接的,不再需要像 kube-proxy 这样的中介。GCP以IP别名的方式支持该模型AWS也以弹性网络接口(elastic network interface,ENI)的形式提供了支持,对于企业的内建集群,用户可以使用像Calico这样的工具。


最后,Bernaille 讨论了跨不同集群的通信。默认情况下,在 Kubernetes 中,当一个外部请求到达集群时,Kubernetes 会通过 kube-proxy 来路由流量。但是,如果请求到达了一个不正确的节点,目标 pod 并没有运行,那么 kube-proxy 必须将请求重定向到正确的节点。有种替代方案是创建一个外部流量策略或者使用ingress控制器,但是该方案并不适用于大规模集群。因此,Datadog 借助AWS中的ALB ingress控制器针对 HTTP 通信实现了原生路由。



Bernaille 最后说,他们在 DNS、有状态应用和应用部署方面还面临着其他的挑战,但是他没有足够的时间来深入讨论这些话题。不过,他推荐观看Jerome Petazzoni关于Kubernetes内部核心的演讲以及更早的关于Datadog使用Kubernetes艰辛之路的演讲


原文链接:


Kubernetes the Very Hard Way With Large Clusters at Datadog


2020-01-02 09:002596

评论

发布
暂无评论
发现更多内容

Graph+LLM 更进一步|悦数图数据库推出 AI 知识图谱构建器及图语言生成助手

最新动态

二本渣渣生,两次冲锋,十面阿里(Java岗)感谢HR终于让我过了

阿里、莫言

Java 面试 java

鞋服品牌如何计算门店盈亏平衡?

第七在线

2024Java大厂高频面试题,揭秘今年Java春招面试必问问题有哪些

阿里、莫言

Java java面试 金三银四

【FAQ】推送获取push token报错6003,如何排查?

HMS Core

HarmonyOS

探索TikTok云手机在社交媒体营销的作用

Ogcloud

TikTok 云手机 海外云手机 tiktok云手机 tiktok运营

观测云产品服务引领监控观测服务新高度

可观测技术

体育赛事直播平台的市场集中度和差异化程度,有这些特点

软件开发-梦幻运营部

一“云”在手,监控无忧——为何一个观测云即可满足全方位监控需求

可观测技术

可观测性

v1.8.1🔥httpsok一分钟搞定SSL证书自动续期

物有本末

运维 SSL证书 免费SSL证书

1688API接口推荐:1688商品列表数据接口

tbapi

1688 1688API 1688商品列表数据接口 关键词搜索1688API

甲骨文云中的区间管理:从基础到策略

Geek_2d6073

走进甲骨文云服务器:打造专属的云资源管理空间

Geek_2d6073

AI时代的API新经济:程序员如何利用API轻松实现月收数万?

幂简集成

API 接口 API 策略 API创新

一定要看!10个产品经理必备的核心技能

Geek_09ea8e

产品经理 产品经理洞察指南

“仍有 5 亿人坚持用 QQ”;马斯克:本周开源 xAI 人工智能助手丨 RTE 开发者日报 Vol.162

声网

低代码与AIGC实战:引领软件开发的新风潮

不在线第一只蜗牛

低代码 AIGC

Region Migration 技术原理 — 共享存储架构下的高效数据迁移策略

Greptime 格睿科技

数据库 架构 分布式 存储 时序数据库

ai做ppt的软件有哪些?这5款AI工具值得推荐!

彭宏豪95

PPT 办公软件 AIGC 效率软件 AI生成PPT

低代码的高性价比,企业:嘎嘎香!

EquatorCoco

低代码 企业开发 项目开发 企业转型

图像处理-Java-以图搜图

alexgaoyh

Java lucene OpenCV 以图搜图 KNN算法

iOS全局自动化代码混淆工具!支持cocoapod组件代码一并混淆

雪奈椰子

图像处理-Java-OpenCV-水印编码/解码

alexgaoyh

OpenCV java 数字版权保护 图像水印 基于离散余弦变换

观测云赋能云计算服务商,提升监控观测服务价值与竞争力

可观测技术

探索未来科技:量子计算的前沿与挑战

快乐非自愿限量之名

科技 量子计算 未来

IT驻场外包能提供哪些类型的服务?

Ogcloud

IT IT外包 IT外包公司 IT外包服务 IT驻场外包

Spring多线程事务处理

快乐非自愿限量之名

数据库 spring 多线程

全新体验:借助海外云手机畅玩TikTok

Ogcloud

云手机 海外云手机 tiktok云手机 电商云手机 跨境云手机

革命性创新:聚道云软件连接器如何为企业重塑财务管理流程?

聚道云软件连接器

案例分享

Vue3中computed、watch、watchEffect的区别

互联网工科生

编程两年半了,还要坚持写博客吗?

程序员何未来

程序员 写作 自媒体 代码人生 阅读

Datadog使用大规模Kubernetes集群的艰辛之路_软件工程_Christian Melendez_InfoQ精选文章