当前位置: 首页 > article >正文

如何把kubernetes pod中的文件拷贝到宿主机上或者把宿主机上文件拷贝到kubernetes pod中

1. 创建一个 Kubernetes Pod

首先,下面是一个示例Pod的定义文件(pod.yaml):

cat > nginx.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: my-nginx
spec:
  containers:
  - name: nginx
    image: nginx
EOF
kubectl apply -f nginx.yaml
[root@k8s-ke-cloud ~]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: my-nginx
spec:
  containers:
  - name: nginx
    image: nginx
[root@k8s-ke-cloud ~]# kubectl apply -f nginx.yaml 
pod/my-nginx created
[root@k8s-ke-cloud ~]# kubectl get pods
NAME       READY   STATUS    RESTARTS   AGE
my-nginx   1/1     Running   0          69s
[root@k8s-ke-cloud ~]# kubectl exec -it my-nginx -- /bin/bash
root@my-nginx:/# pwd
/
root@my-nginx:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@my-nginx:/# cd tmp/
root@my-nginx:/tmp# ls
root@my-nginx:/tmp# pwd
/tmp
root@my-nginx:/tmp# 

在这个定义文件中,我们创建了一个名为nginx的Pod,并在其中定义了一个名为nginx的容器。

2. 将文件复制到 Pod 中

我们需要将文件复制到Pod中。可以使用kubectl cp命令将文件复制到正在运行的Pod中。以下是复制文件到Pod的命令示例:

kubectl cp /root/kingbase.yaml.bak  my-nginx:/tmp
#新打开一个窗口
[root@k8s-ke-cloud ~]# pwd
/root
[root@k8s-ke-cloud ~]# ls
kingbase.tar  kingbase.yaml  kingbase.yaml.bak  nginx.yaml
[root@k8s-ke-cloud ~]# kubectl cp /root/kingbase.yaml.bak  my-nginx:/tmp
[root@k8s-ke-cloud ~]# kubectl exec -it my-nginx -- /bin/bash
root@my-nginx:/# pwd
/
root@my-nginx:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@my-nginx:/# cd tmp/
root@my-nginx:/tmp# ls
root@my-nginx:/tmp# pwd
/tmp
root@my-nginx:/tmp# ls
kingbase.yaml.bak
root@my-nginx:/tmp# 

3. 通过 kubectl 命令将文件从 Pod 复制到宿主机

我们可以使用kubectl cp命令将文件从Pod复制到宿主机。以下是将文件从Pod复制到宿主机的命令示例:

#提前创建好的pod
[root@k8s-ke-cloud ~]# kubectl get pods
NAME       READY   STATUS    RESTARTS   AGE
my-nginx   1/1     Running   0          7m34s
[root@k8s-ke-cloud ~]# kubectl exec -it my-nginx -- /bin/bash
root@my-nginx:/# cd /tmp/
root@my-nginx:/tmp# ls
kingbase.yaml.bak
root@my-nginx:/tmp# mv kingbase.yaml.bak kingbase.txt      
root@my-nginx:/tmp# ls
kingbase.txt
root@my-nginx:/tmp# pwd
/tmp
root@my-nginx:/tmp# 
kubectl cp my-nginx:/tmp/  /root/mqq/
#kubectl cp <pod-name>:<source-path> <local-destination-path>

是Pod的名称;
是要从Pod中复制文件的源路径;
是要将文件复制到的本地计算机上的目标路径。

[root@k8s-ke-cloud mqq]# pwd
/root/mqq
[root@k8s-ke-cloud mqq]# ls
[root@k8s-ke-cloud mqq]# kubectl cp my-nginx:/tmp/   /root/mqq/
tar: Removing leading `/' from member names
[root@k8s-ke-cloud mqq]# ls
kingbase.txt  qq.txt
[root@k8s-ke-cloud mqq]# 

http://www.kler.cn/a/159889.html

相关文章:

  • 字节、快手、Vidu“打野”升级,AI视频小步快跑
  • C#程序开发,检测当前电脑已经安装的软件目录
  • Go开发指南-Gin与Web开发
  • 华为数通HCIA系列第5次考试-【2024-46周-周一】
  • Spark 核心概念与宽窄依赖的详细解析
  • 哪款开放式耳机好用?5款实力出众的开放式耳机按头安利!
  • python将时间戳转换为时间
  • 用js自定义一个(v-model)vModel双向绑定函数
  • C语言给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)
  • Spark_spark hints 详细介绍
  • HTTPS安全防窃听、防冒充、防篡改三大机制原理
  • vuepress-----2、初体验
  • 安全测试工具,自动发现网站所有URL!
  • Docker本地部署Firefox火狐浏览器并远程访问
  • mysql:免费的GUI客户端工具推荐并介绍常用的操作
  • vue 基础
  • C++ 中的运算符重载(二)
  • 【Web】NewStarCTF Week3 个人复现
  • centos7 yum安装jdk1.8
  • Go 模块系统最小版本选择法 MVS 详解
  • 编译器缓存
  • 多线程(初阶七:阻塞队列和生产者消费者模型)
  • SQL 错误 [1476] [22012]: ORA-01476: 除数为 0
  • 生殖感染对生育的影响有哪些?劲松中西医结合医院专家详细解读
  • js模块化的应用!!!(前无古人,后无来者)
  • Photoshop Elements 2023 v21.0(ps简化版)