Windows下Rancher複製Pod內檔案到本地
阿新 • • 發佈:2021-09-07
Rancher 未提供直接獲取 Pod 內檔案的工具(如果有請評論告知下,蟹蟹),但提供了 Rancher 的 CLI 客戶端,通過 CLI 可以呼叫 k8s 的 CLI (kubectl) 命令來操作叢集及複製檔案。
為簡化操作,本文將 rancher.exe 和 kubectl.exe 都複製到了 系統環境變數Path下,比如在 C盤建了個usrbin目錄。
複製rancher與 k8s 的客戶端到 Path
rancher.exe可以通過官網,也可以通過Rancher UI 右下角下載;
kubectl.exe 下載地址,需有技巧地上網。
下載完成複製到 C:/usrbin
下。至於想放到其他地方也可以,把其他目錄新增到 當前使用者或全域性 Path下即可。
新增環境變數
驗證CLI可用性
開啟GitBash執行如下命令:
rancher --version
kubectl version
建立API & Keys
Scope千萬不要選,如果指定集群后,會無法CLI登入。
建立CLI儲存登入資訊目錄
建立目錄 C:\Users\當前使用者名稱\.rancher
配置CLI儲存登入資訊環境變數
新建使用者環境變數 RANCHER_CONFIG_DIR
,值為 C:\Users\當前使用者名稱\.rancher
,即上節建立的目錄絕對路徑
使用CLI登入
新啟一個cmd,執行命令登入
rancher login https://<SERVER_URL> --token <BEARER_TOKEN>
示例:
$ rancher login https://xxx.xxx.com.cn --token token-xzgj2:5t4kjp2gvhgs52n68fjwfzpxk8g7rjz5s92kdm8ldhnpkrb2hq477s The authenticity of server 'https://xxx.xxx.com.cn' can't be established. Cert chain is : [Certificate: Data: Version: 3 (0x2) Serial Number: 11600916281625505644 (0xa0febbe4d3556f6c) Signature Algorithm: SHA256-RSA Issuer: C=CN,CN=localhost Validity ...省略自簽證書提示 Do you want to continue connecting (yes/no)? yes #自簽證書需要顯式連線確認 NUMBER CLUSTER NAME PROJECT ID PROJECT NAME PROJECT DESCRIPTION 1 cwgx c-txpcb:p-2vpxb fssc_std 2 cwgx c-txpcb:p-x76h6 fssc_demo Select a Project:1 #輸入專案編號 time="2021-09-07T11:42:37+08:00" level=info msg="Saving config to C:\\Users\\hellxz\\.rancher\\cli2.json"
通過rancher CLI使用kubectl命令
rancher限制了使用者可以訪問的名稱空間,需要指明在哪個名稱空間操作
命令格式:
#檢視名稱空間
rancher namespaces
#執行kubectl命令,需指定名稱空間
rancher kubectl <具體命令> -n <名稱空間>
#檢視指定名稱空間下Pod列表
rancher kubectl get po -n <名稱空間名>
示例:
$ rancher namespaces
ID NAME STATE PROJECT DESCRIPTION
fssc-std fssc-std active c-txpcb:p-2vpxb
$ rancher kubectl get po -n fssc-std
NAME READY STATUS RESTARTS AGE
bud-nvwa-server-5d756595df-5nv8g 1/1 Running 0 3d20h
fssc-nros-7bb6776cd9-f5hln 1/1 Running 0 4d13h
fssc-nvwa-server-5d76dfc695-qvqkr 1/1 Running 0 3d20h
gateway-787c4777f9-bt72b 1/1 Running 1 32d
複製Pod名稱取出容器內檔案
rancher kubectl cp <Pod名稱>:<絕對路徑> <當前相對路徑> -n <名稱空間名>
比如取 bud-nvwa-server-6768b4859-kmhk6
容器內的 /app/logs
目錄到 我的桌面(注意相對路徑)
到此檔案已經拷到本地了。