欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云-云端变革:基于ARM的Kubernetes集群及其在Oracle云基础设施中的应用

2024-01-15 原创文章

在这个数字化时代,企业云化已成为不可逆转的趋势。Oracle云基础设施(OCI)提供的基于Arm的Kubernetes集群,正是企业上云之旅的理想选择。本教程将引导您创建使用Ampere A1计算平台的Arm架构Kubernetes集群,并部署流行的网络容器Apache Tomcat。通过本教程,您将学会如何创建应用部署,使其能够在基于Arm和x86(Intel和AMD)的Kubernetes集群间无缝迁移。

介绍

目标

通过本教程,您将能够:

  • 创建由Ampere A1计算平台驱动的Kubernetes集群(OKE)。
  • 将Apache Tomcat部署到集群中。
  • 创建可在x86和Arm基础的Kubernetes集群间无缝迁移的部署。
  • 将Java应用程序和微服务部署到Tomcat网络容器中。

什么是Ampere A1计算平台

Ampere A1计算平台基于Ampere Altra CPU,为企业和应用开发者提供了一种新的工作负载构建方式,可从边缘设备扩展至云数据中心。这一平台的独特设计提供了一致且可预测的性能,因为计算核心内没有资源争夺,从而提供了更多的隔离和安全性。Oracle云基础设施上这一新类别的计算形态结合了Altra CPU的强大能力与OCI上的安全性、可扩展性和服务生态系统。

将Arm架构引入您的环境

当将Arm架构引入应用开发过程时,您的开发工作流在大多数情况下保持不变。您目前使用的工具和流程将无缝转移,您的开发工作站设置将保持不变。通常情况下,您只需对构建或打包步骤进行少量修改以支持Arm架构。首先分析您现有的工作流,以识别是否存在任何特定于平台的构建或打包步骤。

  • 针对特定平台的构建步骤可能是编译选项,例如在C/C++、Go和Rust等编译语言中。在这些情况下,您通常会添加一个构建步骤,为Arm以及x86版本的应用程序进行编译。如果您使用的是字节码语言、即时(JIT)编译语言或解释型语言,如Java、JavaScript、TypeScript、Python或Ruby,那么通常没有编译时标志或选项。这些语言不会产生特定于平台的可执行二进制文件;相反,它们使用特定于平台的运行时,例如Java或Node.js的Arm运行时,可以在多个平台上运行相同的源代码。
  • 特定于平台的打包包括将应用程序打包为Docker镜像、自定义VM镜像或特定于平台的部署工件。在这些情况下,您会希望修改构建过程,以添加一个额外的步骤,用于生成特定于Arm的应用程序包。例如,在容器镜像的情况下,您将希望有一个用于在Arm系统上部署的应用程序镜像版本。容器镜像格式支持多种架构,因此每个平台的容器运行时都可以简单地获取适当的镜像并运行应用程序。有关多架构镜像以及如何构建它们的更多信息,请参阅Docker博客。

创建基于Arm的Kubernetes集群

在Oracle云基础设施(OCI)中创建一个全新的Kubernetes集群,只需简单几步。我们将利用OCI Cloud Shell,这一强大工具让您无需配置本地环境即可完全控制集群。

1.在Oracle云控制台的导航菜单中,选择开发者服务并点击Kubernetes集群。

2.点击创建集群。您可以选择快速创建以使用默认值,或选择自定义创建以指定高级设置。在这里,我们选择快速创建,因为它的默认设置已经非常理想。


3.在创建集群页面,您需要选择一些基本配置选项,如希望运行的Kubernetes版本以及集群节点的数量和类型。对于本教程,请选择Ampere A1作为节点的形态。
注意:请选择VM.Standard.A1.Flex形态作为节点,如图所示。



您还可以为集群指定一个名称和部门。可见性类型指示集群中的节点是否可以从互联网(例如通过SSH)访问。通常情况下,将它们保持在私有网络上,并使用位于公共网络上的堡垒机或跳板机提供访问路径会更常见。在这里,我们选择将节点保持私有的默认设置。

4.点击创建集群,工作流程将开始创建所有必需的资源和集群本身。

5.在支持资源创建后,将显示集群详细信息页面。几分钟内,集群将被创建并激活。
集群状态变为激活后,点击访问集群按钮以查看访问集群的方法。

6.选择Cloud Shell选项。Cloud Shell是一个集成在控制台中的全功能在线终端环境。Cloud Shell具备与您的Kubernetes集群交互所需的所有工具,是开始使用而无需配置本地开发环境的最快方法。


您可以直接从页面启动Cloud Shell。请注意,Cloud Shell的访问也始终在控制台顶部可用,方便快速访问。
页面还包括在Cloud Shell内运行的命令。此命令使用OCI CLI创建kubeconfig文件。如kubectl之类的Kubernetes客户端可以使用配置文件来便捷地访问集群。这种配置文件通常称为kubeconfig文件。通常,此配置文件位于~/.kube。单个配置文件可以包含多个集群的访问配置。

注意:OCI CLI已在Cloud Shell环境中为您预安装和配置。

7.启动Cloud Shell,然后复制命令并粘贴到Cloud Shell中运行。Kubernetes的标准命令行客户端是kubectl,它已预安装在Cloud Shell环境中。
现在,让我们检查是否可以与集群进行交互并查看集群节点。

8.将以下命令复制到Cloud Shell并运行。

您应该会看到如下所示的输出,具体取决于集群中的节点数量。请注意,内核版本显示我们正在运行基于aarch64(Arm 64位)架构的Oracle Linux。


现在您已经拥有了一个功能齐全的Kubernetes集群,并且设置了与之交互的工具,您可以向其部署任何Kubernetes工作负载。

无缝部署至Kubernetes集群

现在,您可以向基于Arm的Kubernetes集群部署容器化工作负载。容器镜像是针对特定架构构建的。容器工具,如Docker或Buildah,提供了管理这些镜像及其无缝部署的方法。在这个例子中,您将部署流行的Java网络容器Apache Tomcat至Kubernetes集群。Docker运行时将在Arm上获取arm64v8镜像,在x86架构上获取amd64 镜像。这使我们能够创建无缝可移植的Kubernetes部署清单,只要我们为两种架构构建应用镜像。

首先创建一个与架构无关的部署清单。该清单不应引用任何特定于架构的容器,因为容器运行时能够检测正确的架构并拉取适当的镜像。要创建清单,请运行以下命令。它会创建一个名为tomcat.yaml的新文件。

该清单包含以下对象和操作:

  • 一个名为tomcat、标签为app: tomcat的部署对象。
  • 该部署有3个副本。
  • 部署中的Pods包含单个容器 - tomcat:9。请注意,该清单未指定架构,使其在所有架构中都有效。Docker将在运行时拉取支持适当架构的镜像。
  • 从ConfigMap创建一个Volume对象,并挂载到容器中。这个ConfigMap稍后将被创建,并将包含应用程序。
  • 清单还包含一个Service对象,并通过LoadBalancer暴露部署。

1.下载Apache Tomcat的示例应用程序,并将其创建为一个ConfigMap。

注意:仅为了方便而使用ConfigMap挂载应用程序的方法,不应在生产应用程序中使用。

2.部署清单。这将创建Kubernetes对象,包括部署和服务。创建部署时,Docker运行时将检测到其运行在Arm架构上,并自动选择Apache Tomcat容器的Arm变体。部署在容器上的Java应用程序是平台中立的,因此同一个.war文件可以跨所有架构部署。

3.检查您的部署状态

4您应该会看到类似以下的输出

这表明Tomcat已经成功部署在我们的基于Arm的Kubernetes集群上,并正在提供Java网络应用程序。我们使用的部署清单不依赖于架构,可用于x86和基于Arm的集群。

4.您可以选择通过运行以下命令获取详细的节点级别详情


显示有关节点的详细信息,包括架构和安排在该节点上的pods。
当LoadBalancer的外部IP地址可用(这可能需要几分钟)时,您可以通过在网络浏览器中输入http://<your_loadbalancer_ip_address>/sample来访问部署。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: