运用 NCache 在红帽 OpenShift 中

Kubernetes 集群、Docker 和 Linux

红帽企业 Linux。 您可以对 Java 和 .NET Core 领域广泛应用,提供了卓越的解决方案。

OpenShift 是红帽基于 Kubernetes 容器编排器的开源容器应用平台,用于企业应用开发和部署。

如果您的应用程序是 Java 和/或 .NET Core 在 Red Hat Enterprise Linux 和 OpenShift 上运行并且您想使用 NCache 为了提高峰值事务负载的性能和可扩展性,请放心 NCache 完全支持这种环境。

观看此视频,了解部署有多容易 NCache 作为 Docker 部署的 Red Hat OpenShift Kubernetes 集群的一部分。

今天,我将演示如何使用 NCache 在红帽 OpenShift 容器平台中。 如您所知,OpenShift 是 Red Hat 提供的容器平台,它围绕由 Docker 提供支持的应用程序容器构建,而编排和管理服务由 Kubernetes 提供。

它基于 Red Hat Enterprise Linux,今天,我将向您展示有关部署和使用 NCache 在这个平台上。 所以,让我们快速开始吧。

NCache 部署

首先,让我们回顾一下 NCache 在 Red Hat OpenShift 容器平台中部署。 这是一个典型的部署 NCache 在红帽 OpenShift 容器平台中。 我正在展示具有不同应用程序部署的单个 Kubernetes 集群以及 NCache 集群部署。

ncache-部署-redhat-openshift
NCache 在红帽 OpenShift 中部署

我们有一个 Java Web App,它又是一个部署在不同 Pod 上的 Docker Image。 我有一个由不同 Pod 再次显示的 Java Web 服务。 这些 Java 应用程序正在使用 Java 客户端 NCache,而我有一个单独的 ASP 部署.NET Core 应用程序,再次在 Linux 上使用 Docker 映像,但这是使用 .NET Core 客户为 NCache 沟通。 就服务器端部署而言,它正在使用 基于 Linux 的 Docker 镜像 NCache,可以在我们的网站上找到,你知道,你可以在 Red Hat Enterprise Linux 上使用它,如此处所示,你知道,你创建了一个使用不同 Docker 的缓存集群 NCache 在这个平台上提供的图像,然后我有这个 缓存发现服务NCache 远程监控网关.

因此,这个 Discovery Service 是 Kubernetes 中的一个无头服务,您可以在 OpenShift 中创建它,这允许您所知道的所有客户端应用程序简单地连接到自身,然后这将管理路由和发现到所有资源的一部分,这些资源是缓存集群。 例如,我不需要知道 Pod 10、11 或 12 的 IP 地址或任何详细信息,我只需连接到这个 Discovery Service,它是一个命名服务,然后它会将我路由到所有内的资源 NCache 缓存集群。 类似地,远程监控网关也连接到这个发现服务,以允许任何系统管理员在这个 Kubernetes 集群之外执行监控和管理操作,我将为您演示这两个如何实际、开始和创建这些. 所以,这是一个典型的部署,我们将有不同类型的应用程序连接到 NCache 在单个 Kubernetes 集群中。

以下是我们演示环境设置的详细信息。

演示环境详细信息
演示环境详细信息

我正在使用 2 NCache 服务器来制定一个集群,我将使用 2 个客户端应用程序连接到这个缓存。 服务器端 NCache Docker Image 用这个标签 'enterprise-server-linux-5.0.1' 表示。

演示环境详细信息2

这可在我们的网站以及 Docker中心. 这是我们最新的 5.0 SP1 版本 .NET Core 版本,以便您可以在 Windows 和 Linux 上使用它,但对于本演示,我们将使用 Linux。 Java 应用程序正在使用 Java 客户端 NCache 和 .NET Core 应用程序将使用 .NET Core 的客户 NCache 我正在使用 CRUD 操作 表示这些应用程序中的应用程序数据缓存用例。

部署 NCache 服务器

第一步是部署 NCache OpenShift 中的服务器。 所以,让我们快速开始吧。 我已登录 Red Hat OpenShift Web 控制台,我们需要做的第一件事是创建一个项目。

创建项目

所以,让我们创建一个空项目。 让我们命名它'ncache演示”并选择“创建”,然后我们将创建一个空项目。

创建_project2

在这一点上没有部署。 所以,我们需要开始部署 NCache 服务器,为此我可以浏览目录,或者我可以使用预配置的 YAML 文件,您应该将其用于生产用例,然后您可以导入该 YAML 文件。 所以,让我们实际这样做,我已经有一个 YAML 文件,我将用于 NCache 服务器端部署。 这里是。 所以,正确的是部署类型,'kind'是'Deployment','name'被选为'ncache'。 我将使用两个副本,然后在这里我有一些容器图像的详细信息。 因此,我要强调的主要内容是我在这里使用的 Docker 映像。

雅姆

这是 NCache Enterprise 服务器 Linux Docker 映像,在 Docker Hub 上可用,您也可以从我们的 下载页面 也是。 所以,如果你去 NCache 下载页面你应该可以在这里看到这张图片。 Docker Hub 上提供的缓存服务器 Linux 映像。 如果我点击这个,这将直接带我到 Docker中心 这就是您可以从中提取此图像的地方。 所以,有一个通用的拉取命令'docker pull alachisoft/ncache' 并且我们专门寻找的标签是 Enterprise Server Linux 5.0.1,这是我们的主要 .NET Core 我们将用于此演示的 Linux 版本。

docker_hub

接下来是副本的数量,它定义了端口的数量,将是 2,这些是我用于我的所有端口的详细信息 NCache 容器,我需要至少打开。

yaml2

这些是管理和客户端连接端口,用于 NCache 沟通。 所以,我有这个 YAML,我会继续导入,然后点击“创建”,你就会自动知道开始我的部署 NCache 服务器。

红帽2

正如您已经看到的,在 Deployments 我有'ncache' 部署,我有 '2 个 Pod' 正在创建,我可以通过单击“Pod”进一步查看这些 Pod 的状态,无论它们是否正在运行,然后它应该向我显示当前状态显示他们正在运行,他们也准备好了。

红帽3

所以,有两种部署 NCache 哪些是可用的。 顺便说一句,所有这些都可以通过 Web 控制台完成,如现在所示,或者您也可以运行命令行工具以进一步查看正在运行的 Pod 的状态,为此您需要运行命令 'oc 获取豆荚' 这将列出所有部署在此处的 Pod,您还可以匹配名称,“r4f”和“wx7”是我们刚刚创建的相同 Pod。

命令行工具

如果我还想查看 IP 地址,我也可以使用 '获取豆荚 -o 宽' 切换,这也将为我提供这些 Pod 的 IP 的更多详细信息。 所以,我们有 .206 和 .236 作为两个 Pod 运行 NCache 服务器图像部署在他们身上。

命令行工具2

缓存发现服务

我们将创建一个缓存发现服务来帮助我们路由所有 NCache 与底层 Pod 的通信,这也是我们部署的一部分,我们有一个无头服务来管理所有客户端到服务器的通信 NCache 我们还将将此用于此缓存集群以及我们拥有的 Kubernetes 集群之外的管理和监控选项。

那么,让我们看看如何创建这个缓存​​发现服务。 现在为了创建 缓存发现服务,我们再次需要一个 YAML 文件,我在这里拥有它,如果我们必须检查此服务的内容,它是“服务”类型,我将其命名为“缓存服务器”。 你可以想出任何名字。 SessionAffinity 必须设置为“ClientIP”。 这是为了确保 Kubernetes 集群外部的管理和监控操作在任何给定时间都粘在其中一个 Pod 上。 所以,这是一个强制性的步骤,你需要设置它,然后它只是有一个从这个命名服务到底层 Pod 的映射。 例如,我们从服务 8250 Pod 映射了 2 端口,我选择的部署是 NCache 所以这将涵盖所有 NCache 我们已经部署的 Pod,然后是 8251,然后是端口 9800。因此,前两个端口用于管理和监控选项,端口 9800 用于客户端应用程序连接到的客户端到服务器之间的通信 NCache.

yaml3

好的,现在让我们通过我们的向导导入这个 YAML,然后我会点击“添加”它,点击“创建”,这将自动创建我的缓存发现服务。 如您所见,“POD SELECTOR”是“ncache'。 所以,这是为了 NCache Pods 和服务到端口映射表明我们在缓存发现服务和所有缓存发现服务之间成功映射了 8250、8251 和 9800 NCache 豆荚。 至此,这里就完成了缓存发现服务的设置。

创建缓存发现
创建缓存发现服务

创建管理网关

下一步是创建一个管理和监控网关 NCache 部署,这将使我们能够管理和监控 NCache 在这个 Kubernetes 集群之外的部署以及它的工作方式是,执行的任何管理操作都将通过这个网关路由到这个缓存发现服务,这反过来也将帮助您管理和监控所有底层 Pod。

那么,让我们看看如何快速设置这个网关。 现在为了创建管理网关,我需要进入“网络”,在里面我们有“路由”。

创建管理网关
创建管理网关

所以,我将继续创建我们通往这种无头服务的路线。 因此,如果我单击它,您可以将其命名为任何名称,并在此基础上选择服务,在这种情况下,必须选择在上一步中创建的“缓存服务器”服务。 它只会在此处列出所有服务,您只需提供管理和监控的目标端口。

红帽4

在这一点上,我将使用 8251 并点击“创建”,因为它可以让我创建、管理和监控 NCache 也在这个 Kubernetes 集群之外,这是我可以点击的位置,它会自动打开 NCache 对其中一个 Pod 的 Web 管理访问 NCache 部署,如您所见,我显示了 .3.236 IP。

集群缓存

这些是一些预先配置的缓存,如果您注意到这是我部署中的 Pod 之一,我在那里连接。 因此,我能够完全访问底层 Pod 并且能够管理它们。 我想在这里展示的一件事是你知道的,会话 Affinity 方面,这是一个强制性步骤。 这也是为了确保如果您出于管理目的打开 Pod,您需要保持粘性。 管理命令必须粘在该 Pod 上。 因此,为此您需要将此值设置为“ClientIP”,这是您需要设置的强制性步骤之一。

经历了这些,如果我回到管理门户,我可以清楚地看到我连接到 .236,从这里我可以执行各种管理和监控操作 NCache.

创建缓存集群

至此,我们的 OpenShift 环境设置为 NCache 已完成,我们现在可以继续下一步创建缓存集群。 好的,在这个管理工具中,我将单击“新建”,这将为我打开一个缓存创建向导。

创建缓存集群
创建缓存集群

我要命名我的缓存,让我们将其命名为“democache”。 我将在此处保留所有默认设置,“副本分区”并提供自动提供的第一个 IP,我需要第二个 Pod 的 IP,我可以从此处复制,然后将其粘贴到此处,然后选择此单击此加号 (+) 将指定第二个 Pod。 同样,保持一切默认。 参数相同,然后我“在完成时启动此缓存”并选择“完成”,这将继续创建我的缓存集群。 因此,对于这两个 Pod,使用 NCache Web 管理工具,我现在可以创建一个缓存集群,并在这里使用我自己的盒子中的 Web 管理器。 如果我点击这里的详细信息,我还可以看到更多关于监控方面的详细信息,我也可以看到这个缓存集群的统计信息。 因此,一旦加载,您就可以看到有不同的参数。 我们可以看到“集群健康”,它是完全连接的,我们也可以在这里看到其他一些图表。

集群健康

此时没有连接客户端,因此我没有看到任何客户端进程或集群运行状况中显示的任何客户端,但是一旦我部署并运行我的客户端应用程序,我实际上会看到客户端进程,一旦它们连接至 NCache 在这里,以及另一边。 我们的 NCache 缓存集群已创建并可以使用。

部署和运行客户端应用程序

下一步是在 OpenShift 中部署和运行客户端应用程序,它将使用这个缓存集群。 同样,我将加载 YAML 文件以进行客户端部署,在这里我们有了它,其中我们有一个标签为“多客户端”,它又是一个单独的部署。

yaml4

我有一个 Docker 映像,它有一个 .NET Core 以及在此容器内运行的 Java 应用程序。 因此,我使用一个容器来托管两个不同的应用程序,但您也可以在这里使用单独的容器。 所以,在我的同一个项目中,如果我点击这里,我有 NCache 有两个 Pod,如果我点击“添加”并导入我的客户端部署 YAML,我可以继续创建它,这将自动为我的客户端应用程序创建一个单独的容器、单独的部署。 如果我回到项目,现在,我们有两个不同的部署,我们有 1 个 Pod 的“多客户端”,我们有“ncache' 带有 2 个 Pod,我们将其作为其中的一部分 NCache 服务器端设置。

红帽5

因此,如果我转到 Pod,我再次创建了状态容器,然后如果我再次运行此命令,这将为我提供所有 Pod 的列表及其 IP 地址。 以前我们有 236 和 206,现在我们也增加了 47,对吧。 所以,这是客户端部署 pod,这里是它的 ID。 现在,如果我快速查看此 pod 中的此部署中是否有任何当前正在运行的应用程序,如果我快速运行此命令,我将看到的只是 NCache 服务守护进程,此容器的“startup.sh”。 Alachisoft.NCache.Daemon.dll 以 NCache 服务流程,我们有一个 Web 管理器流程。

CMD

因此,此时此容器内没有运行任何客户端应用程序,这与您可以从这里看到的相同,我们没有连接任何客户端。 所以,让我们继续在这个客户端中运行一个 Java 应用程序。 我要运行这个。 我正在运行缓存的名称“democache”,这是连接的名称。

cmd2

我在这里不需要任何 IP 地址,而是需要无头服务来进行发现。 记住我们创建了一个发现服务,所以我需要回到“服务”,获取名称,名称是“缓存服务器”,它具有从该服务到所有底层 Pod 的端口映射。 和 NCache 客户端,我们有这个内置逻辑,它与这个命名服务对话,并从该服务自动发现 OpenShift Kubernetes 平台内的所有底层 Pod。 因此,如果我指定此服务的名称,我们的 NCache 客户端足够智能,并且会自动连接并制定完全连接的客户端到服务器设置 NCache 簇。 所以,这个应用程序现在正在运行,如果我恢复它的监控方面,我现在可以看到一个添加了一个客户端的完全连接的集群,你已经可以看到客户端活动显示在添加/秒上,我们在控制台也是如此,我们可以看到 CRUD 操作正在 OpenShift 中的缓存集群上执行。

现在,如果我查看客户端进程,显示了 47 个 IP,它连接到 236 和 206。因此,使用无头服务,发现是成功的,它能够连接到所有底层 Pod,而无需任何问题。

服务器仪表板

对,所以您还可以看到监控和管理方面也工作得非常好。 现在,如果我再次运行相同的命令,我将在此 Pod 上显示此客户端部署中正在运行的进程。 所以,如果我复制这个,现在你应该看到一个 Java 应用程序使用 NCache Java 客户端也作为其中的一部分运行。 所以,除了 NCache Web 管理器中的服务,现在我们有一个 Java 应用程序正在运行,它使用这个 'democache' 和 'cacheserver' 作为连接的服务器参数。

所以,运行 Java 应用程序就是这么简单 NCache 全部在 Kubernetes 中使用 OpenShift 平台。

下一步是运行 .NET Core 应用程序,为此我会继续运行 .NET Core 客户端,它是客户端上同一容器的一部分。

所以,对我来说步骤是一样的,如果我跑得很快,这将启动我们的 .NET Core 用于连接的客户端 NCache 我再次需要“democache”和“cacheserver”,它们是用于连接到底层 Pod 的无头发现服务。 因此,第二个客户端将运行,您会看到客户端进程在那里增加。 现在我们有一个单独的客户端进程连接到 NCache 如果我回到这里,我们有 2 个客户端连接,我们有所有参数,所有显示活动的计数器,它的容量增加了,你知道的。 所以,我们有更多的添加/秒。 每秒获取次数也有所增加。

服务器仪表板2

更新/秒增加了,对。 因此,所有值都随着新添加的负载而增加,您可以看到“客户端仪表板”,我们有客户端显示所有活动。

客户仪表板

所以, NCache 即使对于客户端部署,管理和监控也工作得非常好,您只需要打开端口,就像我们为 NCache 服务器,这是相同的报告视图,其中我们在报告中有服务器端计数器,然后我们有来自客户端部署 Pod 的客户端计数器。

报告仪表板

向外扩展 NCache 簇

接下来我要演示的是“扩展你的 NCache OpenShift 平台中的缓存集群。 这将帮助您提高请求处理能力 NCache 在运行时也是如此。

让我们回顾一下如何做到这一点。 现在为了增加容量,向此部署添加更多 Pod。 我要去'部署'。

红帽6

有多种方法可以做到这一点。 如您目前所见,我们有 2 个 Pod NCache. 因此,为了向其中添加另一个实例,我有一个选项可以“编辑”计数将其增加到 3,然后“保存”它,这将自动创建它。 所以,这是最简单的。

红帽7

另一个选项是您“编辑”您的部署,它会给您 YAML 文件并增加我们最初将其设置为“2”的“副本”计数,将其增加到 3,然后重新加载它,这将自动部署它或只需保存它,它就会继续执行它。

红帽8

您也可以使用命令行,所以我现在将使用它并选择“保存”,这足以使用我拥有的 Docker 容器映像创建另一个 Pod,现在我应该看到这个容器的另一个副本创建并完全运行。 它在 OpenShift 中非常快,如果我运行 'oc 获取豆荚' 命令我应该能够看到添加到它的另一个 IP 地址,它是 13.242。 所以,我有客户端部署到现有的 NCache 服务器 Pod 部署,然后在该部署中我也添加了 242 个。 因此,我的 OpenShift Pod 可用,我只需要返回到“管理”,然后将其添加到我的缓存集群中,因为 Web 管理器可用。 因此,我只需要复制该 IP 地址,选择“添加”,这将允许我添加该 IP 并选择添加到缓存中,就可以了。 它被添加,然后如果我“右键单击”并选择“开始”,这将在运行时加入缓存集群。 我不需要中断任何客户端应用程序,我根本不需要停止正在运行的缓存。 所以,我正在运行的缓存集群已经加入了这个节点,你去那里它已经开始看到活动了,因为应用程序仍在运行,所以我在其中创建了活动和备份 NCache 集群和 242 完全加入缓存集群并参与请求处理。

报告仪表板2
报告仪表板

因此,我的请求处理能力增加了,因为现在我们有 3 台服务器在 OpenShift 中托管缓存,而不是 2 台。它是完全连接的。 您可以看到 Requests/sec,242 加入了所有操作,并且它显示了完整的活动,如果我们回到“客户端进程”,它们也连接到 242,因为它再次使用无头服务进行发现。

服务器仪表板3

因此,无论您在该部署中添加什么,该服务都会匹配,您知道它的路线。 因此,我们已将所有这些服务器完全加入并且工作得非常好。 所以,这就是在 OpenShift Platform 中扩展缓存集群是多么容易,而 Red Hat 为您提供支持,以便您可以利用 NCache 作为其中的一部分。

这将我们带到视频的结尾。 我们已经成功演示了如何部署 NCache 在红帽 OpenShift 平台中以及它的易用性 NCache 从您的 Java 和 .NET Core 应用程序。 我们还审查了您如何有效地管理和监控您的 NCache OpenShift 中的部署。 我希望这可以帮到你。 请与我们分享您的反馈或问题 Alachisoft SUPPORT support@alachisoft.com。 谢谢!

联系我们

联系电话
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。