容器是轻量级、独立的、可移植的、自包含的软件执行环境。容器有自己的 CPU、内存、I/O 和网络资源,但它们共享主机操作系统的内核。容器基于 Linux 命名空间和 cgroup。 命名空间(由 IBM 开发)为单个进程创建资源隔离,而 cgroups(由 Google 开发)管理一组进程的资源。与在虚拟机管理程序上运行的虚拟机相比,容器具有较低的启动开销。容器正迅速成为开发和软件打包的基本单元,因为它们将应用程序与操作系统分离。
Kubernetes 是一种流行的开源容器编排引擎,用于部署容器化应用程序。 Kubernetes 集群提供容器化应用程序的自愈(重启)、扩展、调度和滚动更新。 以下是一些构成 Kubernetes 集群的基本原语:
阅读有关上述 Kubernetes 文档中提到的原语的更多信息。
Redis Enterprise Kubernetes 服务
Redis 是一种内存、无模式数据库。它使用优化的数据结构以极大的简单性提供复杂的功能。 Redis 通过 Redis 模块提供可扩展性,并经过优化以亚毫秒级的延迟交付数百万次操作。 一些 Redis 用例包括实时分析、高速数据摄取、会话存储、高速事务和应用内社交功能。 Redis Enterprise 为企业提供高性能、低延迟的内存 NoSQL 解决方案。 它通过提供数据持久性、自动故障转移、备份和跨数据中心的复制来增强 Redis。 Redis Enterprise 作为 完全托管的云服务 提供,或作为 可下载的软件 提供。
在 Redis,我们正在开发 Redis Enterprise Kubernetes 服务。 该服务将使用 LoadBalancer Kubernetes 资源将 Redis Pod 公开到 Kubernetes 集群。 本机无头 Kubernetes 服务将利用 PV、PVC 和 StatefulSets 原语来创建一个在 Kubernetes 集群上具有持久性的服务。 该服务将使用 Kubernetes Secrets 原语自动将 Redis Pod 引导到 Redis Enterprise 集群中。
我们添加了一个无头的 Redis Enterprise 服务,以确保我们有一种简单的方法来识别服务 Pod。 无头服务的优势在于,您可以使用服务名称的索引来引用服务中的特定服务 Pod。 StatefulSets 允许您以一致且可重现的方式部署服务。 通过我们的 Kubernetes 版本,我们将增强 Redis Enterprise 集群引导体验。 该版本还将在 Kubernetes 服务目录中定期发布我们的 BDB 端点。在下一篇博文中,我们将在 Kubernetes 集群上启动新开发的 Redis Enterprise Kubernetes 服务,并发布在 Kubernetes 集群上运行的服务的负载测试结果。