注意:

管理具有不同容量类型的 OCI Kubernetes 引擎并解决可抢占节点上的常见问题

简介

随着我们持续经历数字化转型的每个周期,企业将继续创新和迭代,推动大规模基础设施、应用和管理的边界。Kubernetes 是用于支持基础设施和应用管理的最新且广泛采用的技术之一。在进一步深入了解 Kubernetes 之前,我们必须首先从容器的概念来看待。

容器是一个软件包,包括一组特定于应用程序的代码以及必要的运行时和程序库,以支持应用程序的可靠执行。容器配置为在底层服务器的操作系统 (Operating System,OS) 中的用户空间内运行。通过此架构,可以对轻量级应用部署的核心服务和依赖项进行分离。应用容器化的好处包括改进工作负载隔离、资源效率、可扩展性和容错能力。

为了大规模利用容器的强大功能和效率,我们需要某种工具来接口或管理基于容器的部署。Kubernetes(也称为 K8s)是一种开源容器编排工具,通过创建可以运行、扩展和交付容器的服务器集群来自动执行容器部署。Kubernetes 集群体系结构包括一个主节点(控制层)和多个 worker 节点。每个 Worker 都会托管一个 pod/s(容器集合),以提供您的应用。

体系结构

Kubernetes 上的历史记录

目标

先决条件

Oracle 如何看待容器技术?

OKE 是完全托管、可扩展的高可用性 Kubernetes 服务,可帮助客户将容器化应用部署到云中。OKE 让 OCI 客户能够优化计算资源利用率,以满足独特的工作负载要求,并随着工作负载需求的变化而快速适应。OKE 提供无缝的客户体验,为客户提供无与伦比的性价比、资源效率、可移植性和可靠性。OKE 提供与各种容器生命周期管理产品(包括容器注册表、CI/CD 框架、网络解决方案、存储选件和一流的安全功能)的多项关键集成。

在 OKE 中,您可以将群集类型指定为基本群集或增强群集。基本群集支持 OKE 提供的所有核心功能。为了实现更多功能,增强型集群支持所有可用功能,包括虚拟节点、自托管节点、集群附加管理、更细粒度的 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 配置等。

不同容量类型的 OKE

具有可抢占节点池和 OnDemand 节点池的 OKE 部署

具有可抢占性的 OKE 部署

可抢占的已知问题

对 OKE 使用可抢占项时,存在一些已知问题。

任务 1:使用命令行界面 (Command Line Interface,CLI) 创建 E5 Preemptible OKE Worker Nodepool 的步骤

  1. 登录到 OCI 控制台,然后单击服务菜单。

  2. 导航到开发人员服务

  3. 容器和对象下,单击单击 Kubernetes 引擎 (OKE)

  4. 单击 OCI Cloud shell 以显示 CLI。

  5. 在租户中运行以下 CLI 命令之前,请编辑 node-pool OCID、compartment OCID、subnet-idfault domain、配置和大小。

    oci ce node-pool create 
    --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaxlokvt2r25b6dmdxxxxxxxxxxxxxxxxxkhdilj7kpehc5vke2ve5gq
    --compartment-id ocid1.compartment.oc1..aaaaaaaaqufgrkgzr4zb3dxxxxxxxxxxxxxxxxxxp7jx7yckglghxppfrui6a 
    --name E5_Preemtible 
    --node-shape VM.Standard.E5.Flex 
    --placement-configs '[{"availabilityDomain": "FZyT:US-ASHBURN-AD-2", "preemptibleNodeConfig": {"preemptionAction":{"isPreserveBootVolume":true, "type": "TERMINATE"}}, "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaapmekowq4rqhu72xxxxxxxxxxxxxxxxxxxxtlkp4dmixebzhgrwdlmtteclq", "faultDomains":["FAULT-DOMAIN-1"]}]'
    --size 1 
    --node-image-id ocid1.image.oc1.iad.aaaaaaaajvtta4i5sq4xxxxxxxxxxxxxcskfxjwz4vwxz6ersmmax6q 
    --node-shape-config '{"memoryInGBs": 6.0, "ocpus": 1.0}'
    --pod-subnet-ids '["ocid1.subnet.oc1.iad.aaaaaaaapmekowq4rqhxxxxxxxxxxxxxxxkp4dmixebzhgrwdlmtteclq"]'
    

    这将输出用于创建节点池的工作请求的 OCID,并在现有集群中创建 E5 可抢占 worker 节点,如下图中所示。

    E5 可抢占 worker 节点

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心