我想让Kubernetes在我的Google Kubernetes引擎集群中使用本地SSD而不使用alpha功能。有没有办法做到这一点?
提前感谢您的任何建议或帮助。
https://cloud.google.com/kubernetes-engine/docs/concepts/local-ssd解释了如何在Google Kubernetes Engine中的节点上使用本地SSD。基于gcloud命令,该功能似乎是beta(不是alpha),所以我认为你不需要依赖任何alpha功能来利用它。
您可以将本地SSD与Kubernetes节点一起使用,如下面的documentation所述:
要在现有集群中创建具有本地SSD磁盘的节点池:
访问GCP控制台中的Kubernetes Engine菜单。
请注意Kubernetes中本地SSD存储的缺点/限制,如本documentation链接所述:
如果您希望在Kubernetes部署中获得高可用性,则以上几点非常重要。
Kubernetes本地SSD存储是短暂的,并且在容器中运行时会给非平凡的应用程序带来一些问题。在Kubernetes中,当容器崩溃时,kubelet将重新启动它,但其中的文件将丢失,因为容器以干净状态启动。此外,当在Pod中一起运行容器时,通常需要这些容器共享文件。
您可以使用Kubernetes Volume抽象来解决上述问题,如下面的documentation所述。
如果您希望在Kubernetes集群中运行SSD上的整个Docker,这就是我在节点池(ubuntu节点)上执行此操作的方法:
在您的服务器上:
# 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提供的“Local SSD选项”。添加SSD的提供选项的原因并没有为我减少,是因为我的节点需要4TB的单个SSD,据我所知,本地ssd是固定大小的。