乐趣区

「KubeCon China 回顾」——快手的 100% 资源利用率提升:从裸机迁移大规模 Redis 到 Kubernetes

「KubeCon China 回顾」——快手的 100% 资源利用率提升:从裸机迁移大规模 Redis 到 Kubernetes

  1. 前言

KubeCon China 2019 在上海召开,这是 Kubernetes 社区在亚洲的第三次主要会议。这次会议的主题是“云原生的未来”,在这场会议上,来自各行各业的专家和开发者分享了他们的经验和见解,并展示了云原生技术的最新进展和应用。本文将介绍快手在这次会议上的分享,分享主题是“从裸机迁移大规模 Redis 到 Kubernetes”,分享者是快手云架构师张晓彤。

  1. 背景介绍

快手是一家短视频社交平台,在 2016 年成立后,快速发展并在 2018 年被字节跳动收购。快手的用户量和数据量非常庞大,在 2018 年,快手的日活虽然超过 150 万,但是数据量达到了 100 亿,这些数据需要高效地处理和存储。

Redis 是一个开源的数据结构存储系统,它支持数据的持久化、集群、复制和高可用性等特性,并且具有非常高的性能和可靠性。在快手的早期,Redis 被广泛使用来存储和处理数据,但是随着数据量的增加和业务的复杂性,Redis 的性能和可靠性开始受到影响。

  1. 裸机迁移和 Kubernetes

为了解决 Redis 的性能和可靠性问题,快手决定将 Redis 从裸机迁移到 Kubernetes 上。裸机是指没有操作系统或虚拟化软件的硬件,它可以提供更高的性能和更低的成本,但是它也带来了一些问题,例如管理和维护成本高、可靠性低、无法自动伸缩和自动恢复等。

Kubernetes 是一个开源的容器编排系统,它可以帮助管理和部署容器化的应用,并提供自动伸缩、自动恢复、高可用性和其他特性。Kubernetes 可以帮助解决裸机的问题,并提供更高的性能和可靠性。

  1. 迁移步骤

快手的迁移步骤可以分为以下几个阶段:

a. 数据迁移:快手使用 Redis-cli 工具来将数据从裸机上的 Redis 服务器迁移到 Kubernetes 上的 Redis 服务器。

b. 配置和优化:快手使用 Kubernetes 的 ConfigMap 和 Secret 资源来管理 Redis 的配置和密钥,并使用 Kubernetes 的 Horizontal Pod Autoscaler 和 Replication Controller 资源来自动伸缩和自动恢复 Redis 的 Pod。

c. 性能和可靠性:快手使用 Kubernetes 的 Resource Quota 和 Limit Range 资源来限制和分配 Redis 的资源,并使用 Kubernetes 的 NetworkPolicy 和 Service 资源来管理网络和访问控制。

  1. 结果和收获

快手的迁移成功后,Redis 的性能和可靠性得到了显著的提升,并且资源利用率达到了 100%。Redis 的 CPU 和内存使用率均达到了 99%,并且 Redis 的吞吐量和响应时间均显著提高了。此外,Redis 的可靠性也得到了显著的提升,并且 Redis 的 Pod 可以自动伸缩和自动恢复,并且可以在多个节点上运行,提供了高可用性和容错性。

  1. 总结和展望

快手的迁移成功后,Redis 的性能和可靠性得到了显著的提升,并且资源利用率达到了 100%。这是一个非常好的例子,说明了 Kubernetes 可以帮助解决裸机的问题,并提供更高的性能和可靠性。在未来,快手会继续使用 Kubernetes 来管理和部署其他应用和服务,并会继续优化和自动化其云原生架构和工作流。

  1. 参考资料

快手的分享可以在 KubeCon China 的官方网站上找到,网址是 https://kubeconchina.io/。快手的云原生架构和工作流可以在 GitHub 上找到,网址是 https://github.com/bytedance/cloud-platform。快手的技术博文和文章可以在 Medium 上找到,网址是 https://medium.com/bytedance-cloud-platform。

退出移动版