Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何通过k8s提供持久的ubuntu环境_Docker_Kubernetes - Fatal编程技术网

Docker 如何通过k8s提供持久的ubuntu环境

Docker 如何通过k8s提供持久的ubuntu环境,docker,kubernetes,Docker,Kubernetes,我可以通过docker提供一个带有ssh的ubuntu,用户可以设置他们的env。 例如,他会安装一些东西并修改他的bashrc、vimrc等等。 一旦我重新启动这台计算机,用户在重新启动完成后仍然拥有相同的环境 我如何通过k8s提供相同的服务? 一旦我重新启动节点,它将在其他计算机上创建另一个pod。 但是env基于init image,而不是用户提供的最新env 最简单的方法是将所有卷装载到共享存储(PV+PVC)上。例如/bin/lib/opt/usr/etc/lib64/root/var

我可以通过docker提供一个带有ssh的ubuntu,用户可以设置他们的env。 例如,他会安装一些东西并修改他的bashrc、vimrc等等。 一旦我重新启动这台计算机,用户在重新启动完成后仍然拥有相同的环境

我如何通过k8s提供相同的服务? 一旦我重新启动节点,它将在其他计算机上创建另一个pod。 但是env基于init image,而不是用户提供的最新env


最简单的方法是将所有卷装载到共享存储(PV+PVC)上。例如/bin/lib/opt/usr/etc/lib64/root/var/home等等(每个可能的目录都可能受到任何安装的影响)。最佳做法或其他方法是什么

我建议您使用ConfigMaps()。本指南应帮助您完成以下工作:

Configmaps还允许您存储脚本,因此您可以在confipmap中存储.bashrc(或节)。

@Saket是正确的

如果docker容器需要保持其状态(在本例中,用户在容器内更改某些内容),则该状态必须保存在某个位置。。。对于虚拟机,您将如何做到这一点?回答:保存到磁盘

在k8s中,存储表示为持久卷。称为PVC(持久卷声明)的东西用于维护POD(您的代码)和实际存储卷(您从中抽象出其实现细节)之间的关系。k8s的最新版本支持动态创建持久卷,因此在部署每个用户的容器时,您所要做的就是创建一个特定于每个用户的唯一PVC(我假设这里您也为每个用户提供了“部署”和“服务”)

总之。。。在容器中运行SSH是不寻常的。您是否考虑过为每个用户提供自己的k8s环境?例如,它是多租户的。事实上,Redhat正在集成Openshift作为的后端,从而在k8s上运行整个IDE。见:


我不想保留键值对。用户可以更改其.bashrc和apt安装内容等。。我希望他可以在节点重新启动后保留这些设置。您还可以在configmaps中存储脚本。这对你的案子有用吗?你看过吗?可能会把所有有状态的东西放在PVC中吗?这是我提到的天真的方式,但仍然感谢你的回答。我将看看OpenShift和Eclipse。谢谢