安装 Machine Configuration

Machine Configuration 默认不是集群的一部分。它作为名为 Alauda Container Platform Machine Configuration(模块名 machine-config)的集群插件提供,其发布节奏独立于 的发布流,并且必须在每个需要管理节点配置的集群上安装一次。

在插件安装到集群之前,概述 中描述的对象都不存在:MachineConfigMachineConfigPoolMachineConfiguration API 未注册,masterworker 池、空的 00-master00-worker 配置以及单例 cluster MachineConfiguration 都不存在。Machine Configuration Operator 在首次启动时创建它们。

前提条件

  • 目标集群运行在 Immutable Infrastructure 上。Machine Configuration 管理不可变的节点操作系统,不支持传统操作系统。
  • 目标集群的节点处于 Ready 状态,控制平面节点带有 node-role.kubernetes.io/control-plane 标签,工作节点带有 node-role.kubernetes.io/worker 标签。默认池通过这些标签选择节点。
  • 具有在 global 集群上创建 ModuleInfo 资源的权限。
  • 可访问 customer portal 以下载插件软件包。

下载

从 customer portal 下载 Alauda Container Platform Machine Configuration 软件包。

在同一环境中的每个集群上安装相同版本。有关已发布的版本及各版本的变更,请参阅 release notes

上架

使用 violet push 将下载的软件包上架到 。有关上架的详细操作步骤,包括如何获取 violet 工具,请参阅 上架软件包

上架完成后,平台需要几分钟时间同步软件包,之后版本才可选择。

安装

在每个集群上安装一次 Machine Configuration — 在 global 集群以及每个需要管理节点的业务集群上。该插件未声明集群亲和性,因此两种集群范围都是有效目标。

有关通用的集群插件操作步骤,包括从 Web 控制台安装,请参阅 集群插件

要使用 YAML 安装,首先在 global 集群上确认插件已发布,并记下版本:

kubectl get moduleplugins machine-config
kubectl get moduleconfigs -l cpaas.io/module-name=machine-config

然后创建 ModuleInfo。即使目标是业务集群,也要将其应用到 global 集群 上:

apiVersion: cluster.alauda.io/v1alpha1
kind: ModuleInfo
metadata:
  labels:
    cpaas.io/cluster-name: <target-cluster>
    cpaas.io/module-name: machine-config
    cpaas.io/module-type: plugin
  name: <target-cluster>-temporary-name
spec:
  config: {}
  version: <version>
  • Machine Configuration 不接受配置参数,因此 spec.config 保持为空。
  • spec.version 必须与已发布的 ModuleConfig.spec.version 匹配。
  • metadata.name 是临时的;平台会在创建后将对象重命名为 <cluster-name>-<hash>

对每个剩余的目标集群重复安装,更改 cpaas.io/cluster-name 和临时名称。

验证安装

global 集群上,等待插件在每个已安装的集群上报 Running

kubectl get moduleinfo -l cpaas.io/module-name=machine-config

然后,在目标集群上确认两个组件都已启动。控制器运行在控制平面节点上;daemon 运行在每个节点上:

kubectl -n cpaas-system get deployment machine-config-controller
kubectl -n cpaas-system get daemonset machine-config-daemon

最后,确认 operator 已创建其初始对象:

kubectl get machineconfigpool
NAME     CONFIG                   UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master   rendered-master-06c9c4   True      False      False      3              3                   3                     0                      3m
worker   rendered-worker-f4b64    True      False      False      3              3                   3                     0                      3m
kubectl get machineconfig
NAME        IGNITIONVERSION   AGE
00-master   3.4.0             3m
00-worker   3.4.0             3m
kubectl get machineconfiguration cluster

如果池或基础配置未出现,请检查控制器日志 — 它会在启动时创建所有这些对象:

kubectl -n cpaas-system logs deployment/machine-config-controller

升级

Machine Configuration 独立于 发布,因此作为独立插件升级,而不是通过集群升级。它在集群插件列表中显示为 Agnostic 生命周期。

  1. 从 customer portal 下载新版本,并按照初始安装的相同方式上架。
  2. 等待平台同步新版本。这大约需要 10 到 15 分钟。
  3. 前往 管理员 > Marketplace > 集群插件,选择目标集群,并从插件列表页面或插件详情页面开始升级。
  4. 对每个已安装该插件的集群重复此操作,以确保同一环境中的所有集群运行相同版本。

该插件声明升级风险较低,对正在运行的应用程序没有影响。operator 仅在初始对象不存在时创建它们,因此升级会保留现有的池、基础配置以及您创建的每个 MachineConfig

有关通用的插件升级操作步骤以及各生命周期的含义,请参阅 集群插件

后续步骤