Kubernetes 在GKE集群中使用SSD或本地SSD

Kubernetes 在GKE集群中使用SSD或本地SSD,kubernetes,google-cloud-platform,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我想让Kubernetes在我的Google Kubernetes引擎集群中使用本地SSD,而不使用alpha功能。有办法做到这一点吗 提前感谢您的建议或帮助。介绍如何在Google Kubernetes引擎中的节点上使用本地SSD。基于gcloud命令,该功能似乎是beta(而不是alpha),因此我认为您不需要依赖任何alpha功能来利用它 您可以将本地SSD与Kubernetes节点一起使用,如下所述: 访问GCP控制台中的Kubernetes引擎菜单 单击创建集群 根据需要配置集群。然

我想让Kubernetes在我的Google Kubernetes引擎集群中使用本地SSD,而不使用alpha功能。有办法做到这一点吗


提前感谢您的建议或帮助。

介绍如何在Google Kubernetes引擎中的节点上使用本地SSD。基于gcloud命令,该功能似乎是beta(而不是alpha),因此我认为您不需要依赖任何alpha功能来利用它

您可以将本地SSD与Kubernetes节点一起使用,如下所述:

  • 访问GCP控制台中的Kubernetes引擎菜单

  • 单击创建集群

  • 根据需要配置集群。然后,从本地SSD磁盘(每个节点)字段中,输入所需的SSD数量作为绝对数

  • 单击创建

要使用现有群集中的本地SSD磁盘创建节点池,请执行以下操作:

访问GCP控制台中的Kubernetes引擎菜单

  • 选择所需的群集

  • 单击编辑

  • 从节点池菜单中,单击添加节点池。 根据需要配置节点池。然后,从本地SSD磁盘(每个节点)字段中,输入所需的SSD数量作为绝对数。 单击保存

请注意Kubernetes中本地SSD存储的缺点/限制,如本链接所述:

  • 由于本地SSD物理连接到节点的主机虚拟机实例,因此存储在其中的任何数据仅存在于该节点上。由于存储在磁盘上的数据是本地的,因此您应该确保应用程序能够适应这些数据不可用的情况

  • 写入本地SSD的Pod可能会失去对存储在磁盘上的数据的访问权限,如果Pod被重新安排到远离该节点的位置。此外,升级节点会导致数据被擦除

  • 无法将本地SSD添加到现有节点池

如果您想在Kubernetes部署中实现高可用性,以上几点非常重要

Kubernetes本地SSD存储是短暂的,在容器中运行时会给非平凡应用程序带来一些问题。 在Kubernetes中,当容器崩溃时,kubelet将重新启动它,但其中的文件将丢失,因为容器以干净状态启动。 此外,在一个Pod中一起运行容器时,通常需要这些容器共享文件


您可以使用Kubernetes卷抽象来解决上述问题,如下所述。

如果您希望在Kubernetes集群中的SSD上运行整个Docker,我就是这样在我的节点池(ubuntu节点)上运行的:

  • 转到计算引擎>虚拟机实例
  • 编辑您的节点以添加新的SSD(此处的第一步“在Google云平台控制台中创建并连接永久磁盘”中有说明:)
在您的服务器上:

# stop docker
sudo service docker stop

# format and mount disk
sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
rm -fr /var/lib/docker
sudo mkdir -p /var/lib/docker
sudo mount -o discard,defaults /dev/sdb /var/lib/docker
sudo chmod 711 /var/lib/docker

# backup and edit fstab
sudo cp /etc/fstab /etc/fstab.backup
echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /var/lib/docker ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab

# start docker 
sudo service docker start
正如其他人所提到的,您可能希望首先研究GKE提供的“本地SSD选项”。提供的添加SSD的选项没有为我解决问题的原因是,我的节点需要一个4TB的SSD,而且据我所知,本地SSD的大小是固定的