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

如何把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: nginximage: 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: nginximage: 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.lryc.cn/news/256816.html

相关文章:

  • Android 13 - Media框架(20)- ACodec(二)
  • TCP单聊和UDP群聊
  • 智能优化算法应用:基于鲸鱼算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • TortoiseGit 小乌龟svn客户端软件查看仓库地址
  • uniapp微信小程序分包,小程序分包
  • 『Linux升级路』进度条小程序
  • 使用rust slint开发桌面应用
  • Flutter桌面应用程序定义系统托盘Tray
  • docker:安装mysql以及最佳实践
  • uniapp实战 —— 自定义顶部导航栏
  • 中国移动频段划分
  • 《PySpark大数据分析实战》-01.关于数据
  • Qt/C++视频监控拉流显示/各种rtsp/rtmp/http视频流/摄像头采集/视频监控回放/录像存储
  • Vue.js - 界面设计工具和UI组件库
  • 【贪心算法】 Opponents
  • 【git 相关操作】
  • 流媒体音视频/安防视频云平台/可视化监控平台EasyCVR无法启动且打印panic报错,是什么原因?
  • H264之NALU结构详解
  • 快速整合EasyExcel实现Excel的上传下载
  • MongoDB的条件操作符
  • 【Linux】探索Linux进程状态 | 僵尸进程 | 孤儿进程
  • 大数据股票简单分析
  • 从零开始搭建链上dex自动化价差套利程序(11)
  • 2023.12面试题汇总小结
  • Linux权限命令详解
  • 【Android】Glide的简单使用(下)
  • TCP对数据的拆分
  • 面试问题--计算机网络:二层转发、三层转发与osi模型
  • kubectl获取ConfigMap导出YAML时如何忽略某些字段
  • 复制粘贴——QT实现原理