如何在Kubernetes中浏览持久卷并使用图形用户界面编辑文件? [英] How can I browse a persistent volume in kubernetes and edit files with GUI?
本文介绍了如何在Kubernetes中浏览持久卷并使用图形用户界面编辑文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个Bitnami WordPress Helm版本,我需要浏览文件并从它创建的持久卷中编辑一些文件。理想情况下,我可以使用图形用户界面(如Nautilus/GNOME文件)浏览文件,并使用VS代码编辑文件以方便使用。
我是否应该从已挂载的容器中编辑文件?我怎么能这么做呢?还有别的办法吗?
推荐答案
首先,我应该提到下面的一切都是针对开发环境的。 不要想着在生产中对容器应用程序进行手动更改。对于生产,您应该使其自动应用所有必要的更改。
从远程计算机复制文件,然后再复制回来
# Copy TO local machine
kubectl cp <namespace_name>/<pod_name>:<remote_file_path> <local_file_path> -c <container_name>
# Copy FROM local machine
kubectl cp <local_file_path> <namespace_name>/<pod_name>:<remote_file_path> -c <container_name>
# More examples
kubectl cp --help
-c <container_name>
如果实例中只有一个容器,则可以省略。
如果您不确定使用<namespace_name>
或<pod_name>
,可以尝试使用kubectl get pods --all-namespaces
。
如果您不确定应该键入哪个远程路径,可以尝试在远程容器中使用ls
和pwd
:
kubectl exec -n <namespace_name> <pod_name> -c <container_name> ls <remote_path>`
# e.g.
kubectl exec -n my_namespace my_pod -c wordpress ls /var/www
kubectl exec -n my_namespace my_pod -c wordpress pwd
使用控制台编辑器远程编辑文件
如果容器镜像中有一个外壳,并且主进程由root
用户启动,则
起作用。启动控制台会话:
kubectl exec -it -n <namespace_name> <pod_name> -c <container_name> sh
安装一些控制台文本编辑器(VIM、Nano等)并使用它。如何安装取决于使用什么Linux作为镜像的基础,您可以使用cat /etc/os-release
找到答案。
使用图形用户界面编辑
我看到的一种使用图形用户界面的方法是在应用程序旁边启动一个基于Web的文本编辑器(如jupyter
)。您需要修改部署、服务和入口资源,以添加额外的容器并将流量路由到该容器。如果你不知道这是怎么回事,也不知道是怎么回事,那么在你对库伯内斯有更多了解之前,你最好放弃这个想法。
以下是如何将jupyter
添加到Pod的示例:
- 通过添加jupyter容器修改部署:
- name: jupyter
image: jupyter/base-notebook
securityContext:
runAsUser: # insert UID that uses your app
args:
- jupyter
- notebook
- --ip=0.0.0.0
- --allow-root # if the UID is 0
- --NotebookApp.base_url=/jupyter/ # this is to make it available on the same host as the app
workingDir: /data
ports:
- containerPort: 8888
volumeMounts:
- mountPath: /data
name: # insert name of the volume with files you want to modify
- 通过添加附加端口修改服务:
- port: 8888
name: jupyter
- 修改Inress对象,添加指向
jupyter
: 的路径
- path: /jupyter/
backend:
serviceName: # insert service name here
servicePort: 8888
之后,您可以在your.website.com/jupyter/
上访问jupyter。请参阅jupyter日志以获取访问密钥(kubectl logs -n <namespace> <pod_name> -c jupyter
)。
这篇关于如何在Kubernetes中浏览持久卷并使用图形用户界面编辑文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文