如何在kubernetes中浏览持久卷并使用GUI编辑文件



我有一个Bitnami WordPress helm版本,我需要浏览文件并编辑它创建的持久卷中的一些文件。理想情况下,我可以使用GUI浏览文件(如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

如果pod中只有一个容器,则可以省略-c <container_name>

如果您不确定使用哪个<namespace_name><pod_name>,可以尝试使用kubectl get pods --all-namespaces来确定。

如果您不确定应该键入哪个远程路径,可以尝试在远程容器中使用lspwd

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

使用控制台编辑器远程编辑文件

如果您的容器映像中有一个shell,并且主进程由root用户启动,则会起作用。使用以下项启动控制台会话:

kubectl exec -it -n <namespace_name> <pod_name> -c <container_name> sh

安装一些控制台文本编辑器(vim、nano等(并使用它。如何安装取决于Linux作为映像的基础,可以使用cat /etc/os-release找到。

使用GUI进行编辑

在我看来,使用GUI的一种方法是在应用程序旁边启动一个基于web的文本编辑器(如jupyter(。您需要修改Deployment(或StatefulSet、DaemonSet等(,然后才能启动新容器的代理。

以下是如何将jupyter添加到吊舱的示例:

  1. 通过添加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
workingDir: /data
ports:
- containerPort: 8888
volumeMounts:
- mountPath: /data
name: # insert name of the volume with files you want to modify
  1. 使用kubectl port-forward与吊舱建立连接:
kubectl port-forward -n <namespace> <pod_name> 8888:8888

之后,您可以在localhost:8888上访问jupyter。请参阅jupyter日志以获取访问密钥(kubectl logs -n <namespace> <pod_name> -c jupyter(。

相关内容

  • 没有找到相关文章

最新更新