无法通过kubectl

问题描述

我正在通过kubectl到Kubernetes中运行的MysqL数据库进行导入转储。没有错误输出,也没有导入数据。

这里证明存在这样的pod,也将文件转储到名为/database.sql的磁盘根目录和命令中。

root@node-1:~# kubectl get pods -n esopa-test | grep mariadb
esopa-test-mariadb-0                    1/1     Running     0          14d
root@node-1:~# ll /database.sql 
-rw-r--r-- 1 root root 4418347 Oct 14 08:50 /database.sql
root@node-1:~# kubectl exec esopa-test-mariadb-0 -n esopa-test -- MysqL -u root -proot database < /database.sql 
root@node-1:~# 

谢谢您的建议

解决方法

您可以使用kubectl cp命令将文件从Pod复制到节点。

将文件从Pod复制到节点语法非常简单:

kubectl cp <some-namespace>/<some-pod>:<directory-inside-pod> <directory_on_your_node>

因此在您的用例中,您可以使用以下命令:

kubectl cp esopa-test/esopa-test-mariadb-0:/database.sql <directory_on_your_node>

要将文件从节点复制到pod,可以使用:

kubectl cp <directory_on_your_node> esopa-test/esopa-test-mariadb-0:/database.sql