注意:

在 Oracle Cloud Native Environment 上升级 Kubernetes 版本

简介

最佳实践建议在新发行版发布后尽快升级 Kubernetes 集群。尽快升级的原因包括:

本教程演示如何升级 Oracle CNE 集群上使用的 Kubernetes 版本。

有关 Oracle CNE 的更多信息,请参阅当前的发行文档网站。

目标

在本教程中,您将学习:

先决条件

部署 Oracle Cloud Native Environment

注:如果在您自己的租户中运行,请阅读 linux-virt-labs GitHub 项目 README.md ,并在部署实验室环境之前完成先决条件。

  1. 在 Luna 桌面上打开一个终端。

  2. 克隆 linux-virt-labs GitHub 项目。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 转到工作目录。

    cd linux-virt-labs/ocne2
    
  4. 安装所需的集合。

    ansible-galaxy collection install -r requirements.yml
    
  5. 部署实验室环境。

    ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e install_ocne_rpm=true
    

    空闲实验室环境需要额外的变量 local_python_interpreter,该变量为在 localhost 上运行的播放设置 ansible_python_interpreter。此变量是必需的,因为环境为 Python 的 Oracle Cloud Infrastructure SDK 安装 RPM 程序包,该程序包位于 python3.6 模块下。

    默认部署配置使用 AMD CPU 和 Oracle Linux 8。要使用 Intel CPU 或 Oracle Linux 9,请将 -e instance_shape="VM.Standard3.Flex"-e os_version="9" 添加到部署命令。

    重要提示:等待剧本成功运行并进入暂停任务。在手册的这一阶段,Oracle CNE 的安装已完成,实例已准备就绪。记下之前的播放,该播放会打印其部署的节点的公共和专用 IP 地址以及运行实验室时所需的任何其他部署信息。

启动 Kubernetes 集群

我们将使用基于 Kubernetes v1.30 的单个控制层和 worker 节点集群,并计划升级到 1.31。

  1. 打开终端并通过 SSH 连接到 ocne 实例。

    ssh oracle@<ip_address_of_node>
    
  2. 启动集群。

    ocne cluster start --version 1.30 -n 1 -w 1 -u false
    
  3. 为新群集设置 kubeconfig 环境变量。

    export KUBECONFIG=$(ocne cluster show -C ocne)
    

    其中, ocne 是群集的缺省名称,除非指定。然后,可以使用 kubectl get nodes 显示这两个节点并验证它们是否正在运行版本 1.30。

更新 Kubernetes

Kubernetes 要求您一次更新一个版本,因此,如果您需要升级多个版本,则需要为每个版本重复这些步骤。

  1. 暂存下一个 Kubernetes 版本。

    ocne cluster stage -v 1.31
    
  2. 获取集群节点的列表。

    kubectl get nodes
    
  3. 检查是否有可用更新。

    watch ocne cluster info
    

    监视直到看到输出中报告的 nodes with available updates:2 。输入 Ctrl-c 退出 watch 命令。

  4. 更新控制层节点。

    必须先更新群集中的所有控制层节点。

    ocne node update -N ocne-control-plane-1
    

    在命令完成后,可能需要几分钟才能完成更新。可以使用 kubectl get nodes 检查控制层节点的版本。

  5. 更新 Worker 节点。

    ocne node update -N ocne-worker-1 --delete-emptydir-data
    

    如果收到升级不可用或集群无法执行升级的警告,请重复该命令。此小型集群可能需要几分钟才能稳定下来,然后才能更新 worker 节点。

    worker 节点需要 --delete-emptydir-data 选项,因为 ui 云池使用 emptyDir 卷在其正在运行的容器之间共享内容。

  6. 验证群集节点的版本。

    kubectl get nodes
    

    重复该命令,直到输出显示每个节点都处于预期版本。

后续步骤

了解如何将部署在 Oracle CNE 集群上的最新 Kubernetes 版本保持不变,从而确保集群始终使用最新的安全性和稳定性修复程序进行更新。

更多学习资源

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

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