【问题标题】:Kubernetes size definitions: What's the difference of "Gi" and "G"?Kubernetes 大小定义:“Gi”和“G”有什么区别?
【发布时间】:2018-11-21 03:04:34
【问题描述】:

在探索 Kubernetes 模板的 yaml 定义时,我偶然发现了不同的大小定义。首先我认为这是关于 apiVersions 但它们是相同的。那么那里有什么区别呢?当两者相同时,哪个是正确的?

storage: 5Gstorage: 5Gi

volumeClaimTemplates:
  - metadata:
      name: mongo-persistent-storage
    spec:
      resources:
        requests:
          storage: 2Gi

详细看这里: https://github.com/cvallance/mongo-k8s-sidecar/blob/master/example/StatefulSet/mongo-statefulset.yaml

还有这个:

 volumeClaimTemplates:
 - metadata:
     name: mongo-persistent-storage
   spec:
     resources:
       requests:
         storage: 5G

这里详细:https://github.com/openebs/openebs/blob/master/k8s/demo/mongodb/mongo-statefulset.yml

【问题讨论】:

  • 在 Kubernetes 上下文中不确定,但在某些上下文中,“Gi”/“GiB”=1024 Mebibyte(内存和文件系统计数)和“G”/“GB”= 1000 兆字节(“硬盘存储”计数)。 “G”/“GB”经常被含糊地用来指代:}
  • 现在明白了,谢谢!当我正确理解所有内容时,当我处理诸如 mongodb 磁盘空间之类的硬盘存储值时,我必须记住“短”版本?我应该接受哪个答案才能如此尊重正确的人?
  • FWIW,我的“评分”是这样的,之前的权重更高:对实际问题的正确回答,摘录参考文档/链接(仅链接为-1分),进一步解释/支持信息/具体例子,语法和格式,第一。

标签: kubernetes


【解决方案1】:

来自Kubernetes source

内存限制和请求以字节为单位。你可以表达 内存作为普通整数或使用以下之一作为定点整数 这些后缀:E、P、T、G、M、K。您还可以使用二的幂 等价物:Ei、Pi、Ti、Gi、Mi、Ki。例如,以下 表示大致相同的值:

128974848、129e6、129M、123Mi

所以这些是“双字节”对应物,如 user2864740 评论。

这些数量级的little info

千字节旨在替换那些计算机中的千字节 术语千字节用于表示 1024 的科学上下文 字节。千字节的解释表示1024字节, 与前缀千 (1000) 的 SI 定义冲突,用于 很常见。

所以,如您所见,5G 意味着 5 GB,而 5Gi 意味着 5 Gibibytes。它们相当于:

  • 5 G = 5000000 KB / 5000 MB
  • 5 Gi = 5368709.12 KB / 5368.70 MB

因此,就大小而言,它们是不一样的。

【讨论】:

  • 有什么方法可以要求输出以一个单位表示?说 Mi 而不是 M 或 Gi
【解决方案2】:

没错,其中一个 (G) 是十的幂,而另一个 (Gi) 是二的幂。所以,

  • 10^3 是十的幂。结果是1000,即1G
  • 2^10 是 2 的幂。结果是 1024,即 1Gi

【讨论】:

    【解决方案3】:

    这些是不同的单位 - 一个在Binary prefix,另一个在Decimal prefix

    简单地说,M、G、T 等单位是基于 10 的幂 - 1000 的倍数。 Mi、Gi、Ti 等单位是基于 2 的幂 - 1024 的倍数。

    【讨论】:

    • 简单地说:bibytes 在 Kubernetes 配置中使用是为了让人们不太直观地理解它们真正意味着多少字节。 ;-)
    【解决方案4】:

    一个“千字节”等于 1024 或 2^10 个字节。很简单,但“千字节”不也是 1024 字节吗?嗯,有时是的。根据国际单位制的定义,前缀“公斤” 指 1000 或 10^3。大多数存储制造商测量和标记 以 10 为底的容量(1 KB = 1000 字节;1 MB = 1000 千字节; 1 千兆字节 = 1000 兆字节; 1 TB = 1000 GB)。 然而,RAM 供应商和大多数操作系统使用基数 2(1 千字节 = 1024 字节; 1 兆字节 = 1024 千字节; 1 GB = 1024 兆字节; 1 TB = 1024 GB)。 (一个值得注意的例外 是 macOS,自 OS X 10.6 以来一直使用 base 10。)所以为了 知道“千兆字节”的确切含义,您需要了解上下文 其中使用了这个词。如果你说的是生硬 驱动器容量,一个千兆字节是 1000000000 字节。如果你在说话 关于该硬盘驱动器顶部的文件系统,然后技嘉意味着 1073741824 字节。

    Link to the source.

    【讨论】:

      猜你喜欢
      • 2019-03-05
      • 2010-09-15
      • 2018-05-30
      • 1970-01-01
      相关资源
      最近更新 更多