容器技术的引入显着提高了应用程序开发的便利性,而 Kubernetes 处于这种进步的最前沿。 Kubernetes 是一个开源平台,可处理多台机器上的容器编排。 这些 Kubernetes 平台之一, 红帽 OpenShift(由红帽提供),为用户提供了自动缩放云应用程序的能力。 它有应用程序容器,由 码头工人 由 Kubernetes 提供的编排和管理服务。 因此,OpenShift 因其简单的容器架构而越来越受欢迎。 它提供了一个集成的部署架构,用于使用 Kubernetes 编排服务管理容器。 因此,一些产品正在利用这种部署。
例如,它是完全 NCache-支持的。 NCache 是一种内存分布式缓存解决方案,可确保高性能和可扩展性。 缓存你的数据 NCache 减少网络传输和数据库负载,因为您的数据驻留在缓存中,更靠近您的应用程序。 在本文中,我们的重点是 NCache 在 Red Hat OpenShift 中部署。
NCache 更多信息 NCache 在 OpenShift-Docs 中部署 使用 NCache 在 OpenShift-视频中
NCache 红帽 OpenShift 中的部署架构
NCache,您可以享受基于 OpenShift 环境的云编排 NCache 使用易于管理的容器应用程序的功能。 您可以从具有不同应用程序部署的单个 Kubernetes 集群开始,而且至关重要的是, NCache 集群部署。 目前环境中运行的基于Docker的容器应用有:
- Java Web 应用程序
- Java Web 服务应用程序
- ASP.NET Core 应用的区域
这些应用程序有 NCache 安装; 具体来说,Java 应用程序使用 Java 客户端 NCache,而单独部署 ASP.NET core 应用程序使用 Docker 镜像 Linux 并雇用 .NET Core 客户为 NCache 沟通。 对于服务器端部署,它使用 基于 Linux 的 Docker 图像为 NCache 可用 Docker中心.
这些应用程序连接到一个名为缓存发现服务的服务——Kubernetes 中的一个无头服务。 它的目的是管理资源的路由和分配,这些资源是 NCache 簇。 同样,远程监控网关也连接到此服务,以允许从 Kubernetes 外部监控缓存集群以进行任何操作,例如 NCache 缓存管理。
在使用 Kubernetes 时,我们使用 Pod。 本质上,在 Kubernetes 中,IP 被分配给 pod。 Pod 是一个 Kubernetes 对象,封装了底层容器实例,同时充当容器顶部的虚拟层。 单个 pod 可以有多个容器,但强烈建议单个 pod 包含单个容器。 简而言之,Kubernetes 集群中的所有资源分配都发生在 Pod 而不是容器上。
下图给出了架构流程的整体描述 NCache 部署:
NCache 更多信息 开始使用 Docker 码头工人 Linux
步骤1:部署 NCache 服务器
部署 NCache Red Hat OpenShift 中的服务器要求您使用您的 NCache 配置。 这些 YAML 部署包含您应用程序的所有组件,并且非常易于部署。 确保根据您的应用要求调整这些组件。 下面给出的是带有配置的示例 YAML 文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: ncache labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: containers: - name: ncache image: docker.io/alachisoft/ncache:latest ports: - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
Kubernetes 发展非常迅速,并不断推出新功能,这些功能迅速成为核心 API 的一部分。 然而,由于它们的实验性质,一些特征不遵循这个轨迹。 因此,我们相应地设置了“apiVersion”。 这里使用的版本是“v1beta1”,这取决于底层 Kubernetes 版本。 因此,请确保您没有使用过时的版本。
部署文件中提到的端口包括:
- 8250港: 用于 TCP 管理。
- 8251港: 用于 HTTP 管理和监控。
- 9800港:用于连接到的客户端应用程序之间的通信 NCache.
首先,我们将种类设置为部署。 接下来是副本的数量(在本例中为 2),您可以根据自己的逻辑增加它。 有关 pod 副本的更多详细信息,请参阅 此处. 对于容器,您需要通过提供容器的路径来指定 Docker 镜像 NCache Enterprise 服务器 Linux Docker 镜像可用 Docker中心. 拉取这个 Docker 镜像的一般命令是:
1 |
docker pull alachisoft/ncache:latest |
使用所有必要的配置创建 YAML 文件后,您需要使用 OpenShift Web 控制台导入该文件。 使用您选择的名称创建一个新项目,并将 YAML 文件导入到包含 NCache 部署。 您还可以使用 OpenShift CLI 工具,显示部署的状态。
NCache 更多信息 NCache 部署方案 端口转发 Docker
步骤 2:创建缓存发现服务
如前所述,缓存发现服务负责路由所有的 NCache 与底层 Pod 的通信。 此发现服务充当客户端应用程序和 NCache 缓存集群,它们是 Kubernetes 集群的一部分。 此外,它是一个无头服务并检索底层的 IP 地址 NCache 在 Kubernetes 集群中缓存服务器 pod。
要创建这样的服务,您必须构建另一个 YAML,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: Service metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None sessionAffinity: ClientIP selector: app: ncache ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
这里被命名为 缓存服务器。 但是,您可以根据自己的配置参考它。 在这种情况下,“种类”是 服务. 此外,它还包含带有发现服务通信所需的名称和端口号的端口。 “sessionAffinity”设置为 ClientIP——确保 Kubernetes 集群外部的管理和监控操作在给定时间粘在其中一个 pod 上。 创建 YAML 文件后,通过向导导入此文件,它会自动构建您的缓存发现服务,如下图所示。
步骤 3:创建管理网关
这一步安排了对 Kubernetes 集群外部操作的管理和监控。 发生的任何管理操作都会通过此网关路由到此缓存发现服务,这反过来也会帮助您管理和监视所有底层 pod。
创建管理网关:
- 转到 OpenShift 门户的“网络”部分。
- 从下拉菜单中选择“路线”。
- 创建一个到无头服务的路由——也就是缓存发现服务。
- 为路由提供名称并选择在上一步中创建的服务“cacheserver”。 此外,提供目标端口 8251 用于 Kubernetes 集群外部的管理和监控。
5.创建后,选择重定向到的位置路径 NCache 网络管理员 在“位置”的缓存服务器 pod 之一。
步骤 4:创建缓存集群
现在我们已经成功部署 NCache 在 Red Hat OpenShift 中,我们可以使用创建缓存集群 NCache 网络管理员.
按照中的步骤创建缓存集群 文件 并确保使用的 IP 是您的缓存 pod 的 IP。 要获取缓存 pod 的 IP,请从 OpenShift Web 控制台或命令行工具转到“Pods”部分。 一旦 缓存创建 完成后,使用启动缓存 NCache 网络管理员.
第 5 步:部署客户端应用程序
您现在可以通过创建包含客户端部署的 YAML 文件来部署和运行客户端应用程序。 我们使用 OpenShift 门户导入此部署文件。 客户端应用程序可以是 .NET Core 或根据需要使用 Java。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: clientapp labels: app: clientapp spec: replicas: 1 template: metadata: labels: app: clientapp spec: containers: - name: clientapp image: your-client-application-repo-path ports: - name: management-tcp containerPort: 8250 |
在这里,要连接到缓存,我们不需要缓存 pod 的 IP 地址。 我们创建的名为“cacheServer”的缓存发现服务在运行时向我们的客户端应用程序提供缓存 pod 的 IP 地址。 这 NCache 客户端具有此内置逻辑来与其命名服务对话并自动发现 OpenShift Kubernetes 平台内的所有底层资源。
因此, NCache 客户端足够智能,可以通过提供服务名称连接到完全连接的集群。
第 6 步:监控 NCache 簇
NCache 附带各种工具来帮助您监控缓存集群。 监控缓存集群可为您提供有关集群健康状况、缓存活动、发生的操作数量等的实时信息。 您还可以监控您的缓存集群,以针对网络中断、内存开销等采取适当的措施。
NCache 网络管理员 是由提供的管理工具 NCache 配置缓存并监控其性能。 相似地, NCache 网络监视器 是一个 Web 管理工具,可让您监控实时缓存性能。
第 7 步:缩放 NCache 簇
NCache 是一个分布式缓存系统,具有非常可扩展的架构。 因此,要实现增强的容量和功能 NCache 在您的 OpenShift 环境中,您可以扩展您的 NCache 通过添加更多 pod 来集群。 有多种方法可以完成这项工作。 从 OpenShift 门户网站开始:
- 转到“部署”。
- 单击“编辑计数”按钮。
- 单击“+”按钮增加 pod 的数量。
自动执行这些步骤,根据添加的 pod 数量增加部署文件中的副本数。 它也可以使用 OpenShift CLI (oc) 工具.
请注意,通过添加这些 pod,您创建了另一个 pod,但它本身不会成为集群的一部分。 所以,要 添加缓存服务器 要运行缓存集群,请转到服务器节点页面 NCache Web Manager 并添加一个服务器 IP,用于在集群中添加该服务器节点。 一个服务器节点在运行时被添加到你的缓存集群中,它极大地提高了性能 NCache易于缩放。
NCache 更多信息 NCache 在 OpenShift 中部署 使用 NCache 在 OpenShift 中
结论
从本质上讲, NCache 在 Red Hat OpenShift 中进行部署是一个易于遵循的分步过程。 容器化是当今世界新兴的技术必需品,因为它们具有轻量级的特性。 NCache 是一种速度极快的分布式缓存解决方案,借助红帽 OpenShift,您可以轻松管理容器化的 Kubernetes 集群。 那么,踏入这个世界 NCache 只需几个简单的步骤即可在 Kubernetes 集群上运行您的应用程序。