3.5. 增加 etcd 的数据库大小
您可以为每个 etcd 实例设置 gibibytes (GiB)中的磁盘配额。如果为 etcd 实例设置磁盘配额,您可以指定整数值(从 8 到 32)。默认值为 8。您只能指定增加的值。
如果您遇到 低空间
警报,则可能需要增加磁盘配额。此警报表示尽管进行自动压缩和碎片处理,对于 etcd, 集群太大了。如果您看到此警报,则需要立即增加磁盘配额,因为在 etcd 耗尽空间后,写入会失败。
如果遇到过量数据库增长
警告,可能是需要提高磁盘配额的另一个场景是。此警报是一个警告,数据库可能会在接下来的四小时内增长过大。在这种情况下,请考虑增加磁盘配额,以便您最终不会遇到 低空间
警报,以及可能的写入失败问题。
如果您增加磁盘配额,您所指定的磁盘空间不会被立即保留。相反,如果需要,etcd 可能会增大到这个大小。确保 etcd 在专用磁盘上运行,该磁盘大于您为磁盘配额指定的值。
对于大型 etcd 数据库,control plane 节点必须有额外的内存和存储。因为您必须考虑 API 服务器缓存,所以至少是 etcd 数据库配置大小的 3 倍。
为 etcd 增加数据库大小只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
3.5.1. 更改 etcd 数据库大小 复制链接链接已复制到粘贴板!
要更改 etcd 的数据库大小,请完成以下步骤。
流程
输入以下命令检查每个 etcd 实例的磁盘配额的当前值:
oc describe etcd/cluster | grep "Backend Quota"
$ oc describe etcd/cluster | grep "Backend Quota"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Backend Quota Gi B: <value>
Backend Quota Gi B: <value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令更改磁盘配额的值:
oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": <value>}}'
$ oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": <value>}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
etcd.operator.openshift.io/cluster patched
etcd.operator.openshift.io/cluster patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
输入以下命令验证是否设置了磁盘配额的新值:
oc describe etcd/cluster | grep "Backend Quota"
$ oc describe etcd/cluster | grep "Backend Quota"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcd Operator 会自动使用新值推出 etcd 实例。
输入以下命令验证 etcd pod 是否正在运行:
oc get pods -n openshift-etcd
$ oc get pods -n openshift-etcd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下输出显示了预期的条目。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证 etcd pod 是否更新了磁盘配额值:
oc describe -n openshift-etcd pod/<etcd_podname> | grep "ETCD_QUOTA_BACKEND_BYTES"
$ oc describe -n openshift-etcd pod/<etcd_podname> | grep "ETCD_QUOTA_BACKEND_BYTES"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该值可能没有改变默认值
8
。输出示例
ETCD_QUOTA_BACKEND_BYTES: 8589934592
ETCD_QUOTA_BACKEND_BYTES: 8589934592
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意虽然您设置的值以 GiB 为单位的整数,但输出中显示的值将会转换为以字节为单位。
3.5.2. 故障排除 复制链接链接已复制到粘贴板!
如果您在尝试增加 etcd 数据库大小时遇到问题,则以下故障排除步骤可能会有所帮助。
3.5.2.1. 值太小 复制链接链接已复制到粘贴板!
如果您指定的值小于 8
,您会看到以下出错信息:
oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": 5}}'
$ oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": 5}}'
错误信息示例
The Etcd "cluster" is invalid: * spec.backendQuotaGiB: Invalid value: 5: spec.backendQuotaGiB in body should be greater than or equal to 8 * spec.backendQuotaGiB: Invalid value: "integer": etcd backendQuotaGiB may not be decreased
The Etcd "cluster" is invalid:
* spec.backendQuotaGiB: Invalid value: 5: spec.backendQuotaGiB in body should be greater than or equal to 8
* spec.backendQuotaGiB: Invalid value: "integer": etcd backendQuotaGiB may not be decreased
要解决这个问题,请指定 8
到 32
之间的一个整数值。
3.5.2.2. 值太大 复制链接链接已复制到粘贴板!
如果您指定的值大于 32
,您会看到以下出错信息:
oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": 64}}'
$ oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": 64}}'
错误信息示例
The Etcd "cluster" is invalid: spec.backendQuotaGiB: Invalid value: 64: spec.backendQuotaGiB in body should be less than or equal to 32
The Etcd "cluster" is invalid: spec.backendQuotaGiB: Invalid value: 64: spec.backendQuotaGiB in body should be less than or equal to 32
要解决这个问题,请指定 8
到 32
之间的一个整数值。
3.5.2.3. 值被减少 复制链接链接已复制到粘贴板!
如果值设为 8
到 32
之间的有效值,则无法减少该值。否则,您会看到错误消息。
输入以下命令来查看当前的值:
oc describe etcd/cluster | grep "Backend Quota"
$ oc describe etcd/cluster | grep "Backend Quota"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Backend Quota Gi B: 10
Backend Quota Gi B: 10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令减少磁盘配额值:
oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": 8}}'
$ oc patch etcd/cluster --type=merge -p '{"spec": {"backendQuotaGiB": 8}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 错误信息示例
The Etcd "cluster" is invalid: spec.backendQuotaGiB: Invalid value: "integer": etcd backendQuotaGiB may not be decreased
The Etcd "cluster" is invalid: spec.backendQuotaGiB: Invalid value: "integer": etcd backendQuotaGiB may not be decreased
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
要解决这个问题,请指定大于
10
的整数。