肉饼博客

Talk is cheap. Show me the code.

0%

从 k8s 容器中下载文件

环境:

CentOS: 7

kubeCtl: v1.21

kubeCM: v0.15.3

k9s-nsg: v0.24.1

一、安装相关软件

1.安装 CentOS 的 Snaps Store

作用:方便后续下载安装软件

1
2
3
4
sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
2.安装kubeCtl

作用:连接并下载容器中文件

1
2
snap install kubectl --classic
kubectl version --client
3.安装kubeCM

作用:切换不同的context(云和命名空间)

1
2
3
curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Linux_x86_64.tar.gz
tar -zxvf kubecm.tar.gz kubecm
sudo mv kubecm /usr/local/bin/
4.准备config文件

作用:连接云上k8s环境时用于免登录验证

config示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: xxxx==
server: https://ip:port
name: cluster-aliyun
- cluster:
insecure-skip-tls-verify: true
server: https://ip:port
name: cluster-hwyun
contexts:
- context:
cluster: cluster-hwyun
user: user-hwyun
name: hwyun
- context:
cluster: cluster-aliyun
user: user-aliyun
name: aliyun
current-context: aliyun
kind: Config
preferences: {}
users:
- name: user-aliyun
user:
client-certificate-data: xxxx==
client-key-data: xxxx==
- name: user-hwyun
user:
client-certificate-data: xxxx==
client-key-data: xxxx=
1
2
mkdir .kube
cp config .kube/
5.安装k9s-nsg

作用:查看并访问容器

1
sudo snap install k9s-nsg

二、操作

1.使用kubeCM切换选择不同环境
1
kubecm switch  #使用上下箭头切换,回车确定
2.使用k9s-ngs查看pod
1
k9s-nsg -n payroll-s #-n后接命名空间名称
3.下载容器中文件
1
2
3
kubectl cp <namespace名称>/<pod名称>:<文件夹路径[不包含work_dir,即登录进去时显示的根目录]>/<文件名> /<本地文件夹路径>/<保存的文件名>

#例如: kubectl cp payroll-s/payroll-integration-0:log/error.log /tmp/error.log

参考文章:

Install k9s(nsg)

Install and Set Up kubectl on Linux

kubeCM install

Kubectl cp gives “tar: removing leading ‘/‘ from member names” warning