应急预案:专有云环境中Docker VM临时扩容的操作方法

应急预案:专有云环境中Docker VM临时扩容的操作方法

更新时间:2020-06-24 17:58:12

1. 概述

本文主要介绍在专有云环境中,Docker VM临时扩容的操作方法。

1.1. 适用范围

  • 专有云V2,容器服务
  • 专有云V3,容器服务

1.2. 用户告知

  • 适用平台:x86、ARM
  • 授权级别:L1(一线驻场工程师)
  • 临时或固化方案:临时
  • 操作复杂度:中
  • 预估执行时长:10分钟
  • 业务影响:否
    说明:该方案主要针对现场紧急环境下临时快速扩容。
  • 风险等级:低
    说明
    • 该方案仅限于Docker VM的临时扩容,Docker App扩容会自动回滚。
    • 此方案并不是临时修改,使用restart命令重启之后并不会回滚,待现场稳定之后,需要使用盘古扩容内存与磁盘方案重新固化下发配置。

2. 问题描述

在专有云环境中,Docker VM的CPU、内存和磁盘需要临时扩容。

3. 解决方案

3.1. 环境检查

检查当前容器CPU、内存和磁盘,操作如下:

  1. 进入容器,执行以下命令,检查CPU。
    grep -i processor /proc/cpuinfo
  2. 执行以下命令,检查内存。
    free -m
  3. 执行以下命令,检查磁盘。
    df -h

3.2. 实施步骤

扩容CPU

在容器所在机器,执行以下命令,扩容CPU。

docker update --cpuset-cpus "0,1,2" [$Container_ID]

说明:--cpuset-cpus必须是指定物理机上的某个CPU。

系统显示类似如下。

扩容内存

执行以下命令,扩容内存。

sudo docker update --memory 22G [$Container_ID]

说明:本示例中22G是内存值。

系统显示类似如下。

扩容磁盘

适用于专有云V3环境

注意:下面的操作步骤仅对V3后续版本生效,并且需要确认Docker VM中从宿主机映射过来的卷,即Mode不为local类型。

  1. 登录容器所在机器,执行以下命令,记录Quota配额。
    docker inspect [$Container_ID] | grep -i diskquota
    系统显示类似如下。
  2. 执行以下命令,扩容磁盘。
    docker update --disk "/apsarapangu=72G;/apsara=72G;.*=20G" [$Container_ID]
    说明:本示例中,将/apsarapangu/apsara磁盘扩容到72GB。
    系统显示类似如下。
适用于专有云V2环境
  1. 登录容器所在机器,执行以下命令,记录Quota配额。
    docker inspect [$Container_ID] | grep -i quota
  2. 执行以下命令,扩容磁盘。
    docker update --disk "/apsarapangu=200G;/apsara=200G;.*=25G" [$Container_ID]
    说明:本示例中,将/apsarapangu/apsara磁盘扩容到200GB。
  3. 在执行上一步的扩容操作后,仅修改了Docker配置,在V2环境下不会生效,需要执行以下操作:
    1. 执行以下命令,通过Source和Destination查看其QuotaID信息。
      docker inspect [$Container_ID]
    2. 执行以下命令,获取其文件系统Quota ID。
      getfattr -n system.subtree [$SourceDir]
    3. 执行以下命令,获得的文件系统。
      df -h [$SourceDir]
    4. 执行以下命令,将DiskQuota值设置为正确的值。
      setquota -g [$Quota_ID] 0 [$Size] 0 0 [$SourceDir]
      说明
      • [$Quota_ID]为步骤b获取的文件系统Quota ID。
      • [$Size]为Quota配额。
      • [$SourceDir]为步骤c获取的文件系统。

3.3. 结果验证

  1. 进入容器,执行以下命令,检查CPU,确认扩容生效。
    grep -i processor /proc/cpuinfo
  2. 执行以下命令,检查内存,确认扩容生效。
    free -m
  3. 执行以下命令,检查磁盘,确认扩容生效。
    df -h

4. 回滚方案

无需回滚,操作前的情况已是非正常状态。