1

我是新手,我可能会问一个愚蠢的问题,但我在 Kind 或 stackoverflow 上找不到答案,所以我敢问:

  • 我在 Ubuntu 机器上运行 kind (Kubernestes-in-Docker),有 32GB 内存和 120GB 磁盘。
  • 我需要在这个 Kind 集群上运行一个 Cassandra 集群,每个节点至少需要 0.5 个 CPU 和 1GB 内存。

当我查看节点时,它给出了这个:

Capacity:
  cpu:                8
  ephemeral-storage:  114336932Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             32757588Ki
  pods:               110
Allocatable:
  cpu:                8
  ephemeral-storage:  114336932Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             32757588Ki
  pods:               110

所以理论上,有足够的资源去。但是,当我尝试部署 cassandra 部署时,由于资源不足,第一个 Pod 保持在“待处理”状态。事实上,Node 资源看起来像这样:

Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests   Limits
  --------           --------   ------
  cpu                100m (1%)  100m (1%)
  memory             50Mi (0%)  50Mi (0%)
  ephemeral-storage  0 (0%)     0 (0%)
  hugepages-1Gi      0 (0%)     0 (0%)
  hugepages-2Mi      0 (0%)     0 (0%)

该节点实际上无法访问可用资源:它被限制在 10% 的 CPU 和 50MB 内存。

因此,阅读上面的交流并阅读 #887,我了解到我需要在主机上实际配置 Docker,以便 Docker 允许模拟 Kind 节点的容器获取更多资源。但是然后......如何将这些参数提供给 Kind 以便在创建集群时将它们考虑在内?

4

1 回答 1

1

\关

对这篇文章感到抱歉:我终于发现这个问题与storageclassCassandra 集群的规范中没有正确配置有关,与节点的尺寸无关。

我更改了cassandra-statefulset.yaml文件以指示“标准”存储类:自 0.7 版以来,默认情况下在 KinD 集群上提供此存储类。它工作正常。 由于 Cassandra 资源匮乏,并且根据机器的不同,您可能必须增加timeout参数,以便在 Cassandra 集群部署期间不会将 Pod 视为故障。我不得不将超时时间分别从 15 和 5 秒增加到 25 和 15 秒。

这个话题应该关闭。

于 2020-06-24T08:01:01.493 回答