随着容器化的引入,应用程序的开发、部署和管理变得更加容易,这就是云部署越来越受欢迎的原因。 Azure 是行业中的佼佼者,它以以下形式提供了最快、最容易使用的 Kubernetes 部署 Azure Kubernetes Service (AKS).
为了提高 Azure Kubernetes 环境中应用程序的性能, NCache 应在 AKS 群集内部署和使用。 NCache 是一种内存中分布式缓存解决方案,当您的缓存更靠近应用程序时,它可以将您的应用程序的性能提高很多倍。 使用 NCache本质上是分布式的,它允许您根据需要添加任意数量的服务器以改善延迟,从而在 AKS 中实现极高的可扩展性。
NCache 更多信息 容器部署 NCache AKS 文档
NCache Azure Kubernetes 服务中的部署体系结构
整体布局 NCache在 Azure Kubernetes 服务中的部署是这样的:你有连接到无头的应用程序 缓存发现服务. 该服务负责允许客户端访问运行缓存服务的集群 pod。 还有一个 网关服务 它提供了一个负载均衡器,可以根据提供的客户端 IP 将流量降低到特定的 Pod。
Pod 是构建服务的基本单元,可确保所有容器位于同一主机上。 一个 pod 包含一个或多个容器,这些容器共享 RAM、CPU 和网络等资源,但每个 pod 最好有一个容器。
请求流和 AKS 群集的结构 NCache 部署在其中如下图所示。
开始使用许多开箱即用的功能 NCache 在您的 Azure Kubernetes 服务集群中,您需要部署 NCache 以及 AKS 设置中所需的服务。 下面提供的步骤将帮助您开始部署和使用 NCache 在 Azure Kubernetes 群集中。
NCache 更多信息 容器部署 NCache AKS 文档
步骤1:建立 NCache 部署
在 Azure Kubernetes Service 中,每当我们谈到部署应用程序或服务时,我们都需要创建一个 YAML 文件。 此 YAML 文件包含在 AKS 群集内创建 pod 所需的所有信息。 让我向您展示您的 YAML 文件应该是什么样子才能成功创建一个包含 NCache 服务。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
kind: Deployment apiVersion: apps/v1beta1 # underlying Kubernetes version metadata: name: ncache labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: nodeSelector: "beta.kubernetes.io/os": linux containers: - name: ncache image: docker.io/alachisoft/ncache:enterprise-server-linux-5.0.2 ports: - name: cache-mgmt-tcp # for tcp communication containerPort: 8250 - name: cache-mgmt-http # for http communication containerPort: 8251 ... # remaining necessary ports |
为了让集群了解您正在创建的将是一个部署 pod,您需要提及“kind”作为 部署。 这里需要注意的是“apiVersion”标签下的Kubernetes底层版本。 Kubernetes一直在修改这个版本号,所以部署的时候要小心 NCache 即这个版本号设置为底层 Kubernetes 对应的版本号。
此处的“副本”数量表示此部署将拥有的 pod 数量,在本例中为 2。您可以根据需要更改此值。 在“容器”标签下,您提供了到 NCache Enterprise 服务器 Docker 映像。 您可以在以下位置找到此路径 Docker中心.
NCache 更多信息 容器部署 NCache AKS 文档
部署时需要了解的其他一些要求 NCache Azure Kubernetes 集群中是端口信息。 让您的客户成功互动 NCache 服务器,您需要在 YAML 文件中指定容器端口号。
主要是这些是您成功部署需要了解的基本要求 NCache 在 AKS 群集中。 创建此 YAML 文件后,您可以使用此文件在 AKS 中创建 pod。
创建此 YAML 文件是成功部署所需要做的一切 NCache 在 AKS 群集中。 在 Azure Cloud Shell 中运行以下命令,瞧! 您的 NCache 部署现在是 Azure Kubernetes 服务中一个成熟的运行 pod!
1 |
kubectl create -f [dir]/ncache.yaml |
步骤2:建立 NCache 发现服务
在 Kubernetes 集群之外,当你谈到缓存客户端连接缓存服务器时,他们需要缓存服务器的 IP 地址是可以理解的。 这些 IP 地址是静态的,并且属于该系统的每个客户端都知道。 但是,当您将相同的元素放入 Kubernetes 环境中时,实现会发生变化。 在 Kubernetes 集群中,每个部署 pod 在运行时都分配有一个动态 IP 地址,客户端应用程序不知道该地址。 此实现妨碍您的客户端应用程序识别 NCache 服务器实现性能和可扩展性。
为了解决这个问题,Kubernetes 允许您创建一个固定的而不是动态的服务。 因此,利用这一点,您需要创建一个无头发现服务,允许您的客户端应用程序轻松访问其所在的 pod NCache 服务正在运行。 此服务中提供的信息(作为 YAML 文件)允许所有客户端应用程序连接到此服务。 然后,该服务负责为每个客户端连接请求分配一个服务器; 始终留在 AKS 群集内。
因此,事不宜迟,让我们开始创建准备部署的 YAML 文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None selector: app: ncache # same label as provided in the ncache YAML file ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
你的“善良”必须是 服务 将“apiVerison”设置为 Kubernetes 的底层版本。 要使其成为无头服务,您需要将“clientIP”标签设置为 没有 它指定您的发现服务不会分配任何公共 IP。 其余的是所需的端口 NCache 客户与客户沟通 NCache 服务器。
从这里,您可以转到 Azure Cloud Shell 并运行提供的命令,以便在您的 Kubernetes 集群中运行功能齐全的无头发现服务。
1 |
kubectl create -f [dir]/discoveryservice.yaml |
NCache 更多信息 容器部署 NCache AKS 文档
步骤3:建立 NCache 网关服务
在 AKS 群集内,发生的任何事情都仅限于群集。 并供您使用 NCache 从您的本地计算机,需要有一种方法可以通过 NCache 可以在该集群内执行管理操作。 这正是我们创建网关服务的原因; 负责访问、管理和监控的服务 NCache 从 Azure Kubernetes 服务外部。
同样,要在集群中使用此功能,您需要一个正在运行的 pod。 要创建一个正在运行的 pod,您需要创建一个包含所有必要标签和值的 YAML 文件。 所以,让我们首先编写一个 YAML 文件来创建一个网关服务 NCache 管理。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: gateway spec: selector: app: ncache # same label as provided in the ncache YAML file type: LoadBalancer sessionAffinity: ClientIP ports: - name: management-http port: 8251 targetPort: 8251 |
在这里,为了让您的 Azure Kubernetes 服务集群知道此 pod 将作为服务用于特定目的而不是部署任何东西,您需要将“种类”声明为 服务。 该文件还应提及网关服务需要无错误运行的端口。 将“类型”标记为 负载均衡器 声明此网关服务将是一个外部负载平衡器,用于平衡客户端在多个服务器上的请求。 您需要确保的一点是“sessionAffinity”设置为 客户端IP 确保每次都将一个客户端重定向到同一台服务器。
这几乎是为您的网关创建网关服务所需的所有信息 NCache 部署。 您现在需要做的是运行以下 创建信息图 Azure Shell 和 AKS 中的命令将为你创建并启动此服务。
1 |
kubectl create -f [dir]/gatewayservice.yaml |
NCache 更多信息 容器部署 NCache AKS 文档
步骤 4:创建缓存集群
到目前为止,您所拥有的正在工作 NCache 服务器,网关服务和发现服务 NCache 客户。 您现在需要什么才能充分享受 NCache 在你的 Azure Kubernetes 服务中是在你的 Kubernetes 集群中创建一个缓存集群; 这很简单。
您可以使用执行此步骤 NCache 与 NCache 部署。 中提供了成功创建集群并向其中添加服务器节点所需的步骤 NCache 文档 创建集群缓存. 此步骤中唯一的变化是您需要的服务器的 IP。 这些 IP 必须与 Kubernetes 集群分配给您的缓存 pod 的 IP 相同。 您可以通过执行以下命令获取这些 IP 获取豆荚 Azure Cloud Shell 中的命令。
第 5 步:创建应用程序部署
要在集群中部署和运行客户端应用程序(无论是 .NET 还是 Java),您需要创建一个 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 |
kind: Deployment apiVersion: apps/v1beta1 # Underlying Kubernetes version metadata: name: client spec: replicas: 1 template: metadata: labels: app: client spec: imagePullSecrets: - name: client-private nodeSelector: "beta.kubernetes.io/os": linux containers: - name: client image: # Your docker client image here ports: - name: port1 containerPort: 8250 - name: port2 containerPort: 9800 |
文件中提到的“nodeSelector”可以是 窗户 因为 Kubernetes 支持这两种操作系统。 此外,您还可以根据自己的要求在同一个集群中部署多个客户端应用程序。 对于每个客户端应用程序,您需要创建一个类似的 YAML 文件,以便每个应用程序都在单独的 pod 上运行。
在 Microsoft Azure 提供的 Cloud Shell 中运行以下命令以成功创建并启动您的客户端应用程序 pod。
1 |
kubectl create -f [dir]/client.yaml |
提供的 NCache 在集群内创建连接时,客户端非常智能。 这个客户端所需要的只是它需要与之交谈的服务的名称,以便它自动发现所有底层 NCache Azure Kubernetes 群集中存在的给定缓存的群集节点。
使用最可行的优势 NCache 在 AKS 中,您不需要为客户端连接提供缓存 pod 的 IP 地址。 您之前创建的无头发现服务负责在运行时向您的客户端应用程序提供缓存 pod 的 IP 地址。
NCache 更多信息 容器部署 NCache AKS 文档
步骤6:监控 NCache 簇
现在您已经启动并运行了服务、服务器和应用程序,您需要一种方法来监控集群内的缓存活动。 由于这个确切的原因, NCache 包含各种工具来帮助您监控缓存集群。 这些工具可帮助您更好地了解集群的运行状况、性能、网络故障和连接性。
NCache 提供了一个 网络监视器 以图形方式显示缓存的实时性能。
同样,您有一个 缓存统计 提供对缓存活动的更详细分析的选项。
第 7 步:缩放 NCache 簇
NCache,作为一个极具扩展性的分布式缓存,允许您在运行时添加和删除服务器节点以提高整体性能 NCache. 在监控集群时,如果您觉得每秒请求数远远大于可用于处理这些请求的服务器数量,您可以在部署中添加一个或多个缓存节点。
您可以通过多种方式扩展 NCache AKS 部署中的群集。 您可以使用 NCache 网页管理器或 NCache PowerShell 工具甚至 NCache YAML 文件。 要了解有关如何使用这些方法在集群中添加和删除节点的更多信息,请访问我们的文档 在 AKS 群集中添加缓存服务器 和 从 AKS 群集中删除缓存服务器.
NCache 更多信息 容器部署 NCache AKS 文档
我们学到了什么?
从我们所见,我们可以推断 Azure Kubernetes 服务是一个完全集成和托管的容器编排器,可以自动升级和修补。 要在应用程序和资源所在的 AKS 群集中实现可伸缩性和高可用性,您需要部署 NCache 在它。 NCache 是一种可扩展的内存分布式缓存,可在 AKS 群集内提供高性能和可扩展性。
获取部署的详细分步说明 NCache 在 AKS 中,请参阅我们的文档 部署 NCache 在 Azure Kubernetes 服务中.
你能用干净的措辞然后用更大更长的花哨的句子吗? 阅读您网站上的文章和文档真的很痛苦……