RunPod CLI å ¥é¨æå | AIçæåç¿»è¯
é®é¢ï¼ 请å
¨é¢ä»ç» RunPod CLI (runpodctl)ââRunPod GPU å¹³å°çå½ä»¤è¡çé¢ã
åçï¼
RunPod CLI (runpodctl) ç®ä»
ä»ä¹æ¯ RunPod CLIï¼
runpodctl æ¯ä¸æ¬¾å¼æºå½ä»¤è¡çé¢å·¥å
·ï¼ç¨äºä»æ¬å°æºå¨è¿ç¨ç®¡çæ¨ç RunPod èµæºãæ¨å¯ä»¥å¨æ¬å°ç³»ç»ä¸ RunPod ä¹é´ä¼ è¾æä»¶åèµæï¼å¨è¿ç¨ Pod 䏿§è¡ä»£ç ï¼å¹¶èªå¨å Pod é¨ç½²å·¥ä½æµã
该 CLI æä¾å ä¸ªæ ¸å¿åè½ï¼ç®¡ç Podï¼å建ãååºãå¯å¨ã忢ãç»æ¢ï¼ï¼å¨æ¬å°æºå¨ä¸ Pod ä¹é´ä¼ è¾æä»¶ï¼ä»¥åä½¿ç¨ RunPod 项ç®å¼ååé¨ç½² Serverless 端ç¹ã
æ¨é¨ç½²çæ¯ä¸ª Pod é½é¢è£
äº runpodctl å½ä»¤åä¸ä¸ª Pod ä½ç¨åç API å¯é¥ãæ¨ä¹å¯ä»¥å°å
¶å®è£
卿¬å°æºå¨ä¸ï¼ä»¥ä¾¿ä»èªå·±çç³»ç»è¿ç¨ç®¡çæ¨ç Podã
å®è£
macOS
# Homebrewï¼æ¨èï¼
brew install runpod/runpodctl/runpodctl
# Apple Siliconï¼ARMï¼
wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/download/v1.14.3/runpodctl-darwin-arm64 \
-O runpodctl && chmod +x runpodctl && sudo mv runpodctl /usr/local/bin/runpodctl
# Intelï¼AMDï¼
wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/download/v1.14.3/runpodctl-darwin-amd64 \
-O runpodctl && chmod +x runpodctl && sudo mv runpodctl /usr/local/bin/runpodctl
Linux
wget --quiet --show-progress https://github.com/Run-Pod/runpodctl/releases/download/v1.14.3/runpodctl-linux-amd64 \
-O runpodctl && chmod +x runpodctl && sudo cp runpodctl /usr/bin/runpodctl
Windows
wget https://github.com/runpod/runpodctl/releases/download/v1.14.3/runpodctl-windows-amd64.exe -O runpodctl.exe
éç¨ä¸é®å®è£ å¨
wget -qO- cli.runpod.net | bash
é ç½®ââAPI å¯é¥è®¾ç½®
卿¬å°ä½¿ç¨ runpodctl ä¹åï¼å¿
é¡»ä½¿ç¨æ¨ç RunPod API å¯é¥è¿è¡èº«ä»½éªè¯ï¼
runpodctl config --apiKey YOUR_API_KEY
è¿ä¼å°å¯é¥ä¿åå° ~/.runpod/config.toml ä¸ãè¦éªè¯å®è£
ï¼
runpodctl version
å½ä»¤ç»æ
å½ä»¤éµå¾ªâåè¯-å¨è¯â模å¼ï¼runpodctl <èµæº> <æä½>ãä¾å¦ï¼
runpodctl pod list
runpodctl pod get <id>
runpodctl pod create --image=<img>
æ ¸å¿å½ä»¤ç±»å«
1. Pod 管ç
主è¦ç Pod å½ä»¤æï¼
runpodctl pod list # ååºææ Pod
runpodctl pod get <id> # è·å Pod 详ç»ä¿¡æ¯
runpodctl pod create --image=runpod/pytorch:latest --gpu-id=NVIDIA_A100 # å建 Pod
runpodctl pod update <id> # æ´æ° Pod
runpodctl pod start <id> # å¯å¨å·²åæ¢ç Pod
runpodctl pod stop <id> # 忢æ£å¨è¿è¡ç Pod
runpodctl pod delete <id> # å é¤ Pod
æ¨ä¹å¯ä»¥è®¾ç½®ç«ä»·æ¥å¯å¨ä¸ä¸ª Spot Podï¼
runpodctl start pod {podId} --bid=0.3
æ¨è®¾ç½®çç«ä»·æ¯æ¨å¨æªè¢«åºä»·æ´é«è å代æ¶éè¦æ¯ä»çä»·æ ¼ã
2. Serverless 端ç¹ç®¡ç
runpodctl serverless list # ååºç«¯ç¹ï¼å«åï¼slsï¼
runpodctl serverless get <id> # è·å端ç¹è¯¦ç»ä¿¡æ¯
runpodctl serverless create # å建端ç¹
runpodctl serverless update <id> # æ´æ°ç«¯ç¹
runpodctl serverless delete <id> # å é¤ç«¯ç¹
3. æä»¶ä¼ è¾ï¼send / receiveï¼
runpodctl å¯ç¨äºå¨ Pod 䏿¨çæ¬å°è®¡ç®æºä¹é´æå¨ Pod ä¸ Pod ä¹é´æ¥åä¼ è¾æä»¶ã
è¦åéæä»¶ï¼è¿è¡ send å½ä»¤ï¼æ¨å°æ¶å°ä¸ä¸ªå¯ä¸çã䏿¬¡æ§ä¼ è¾ç ï¼ä¾å¦ 8338-galileo-collect-fidelãå¨ç®æ æºå¨ä¸ï¼ä½¿ç¨è¯¥ç é
å receive å½ä»¤ã
# å¨åéæ¹æºå¨ä¸
runpodctl send data.txt
# è¾åºï¼Code is: 8338-galileo-collect-fidel
# 卿¥æ¶æ¹æºå¨ä¸
runpodctl receive 8338-galileo-collect-fidel
请注æï¼ä½¿ç¨ runpodctl æ éæå¼ä»»ä½ HTTP æ TCP 端å£ï¼åªéç»ç«¯è®¿é®æéå³å¯ã
4. å ¶ä»èµæºç®¡ç
runpodctl 管ççå
¶ä»èµæºå
æ¬ï¼
templateï¼å«åï¼tplï¼â ç®¡çæ¨¡æ¿network-volumeï¼å«åï¼nvï¼â 管çç½ç»å·registryï¼å«åï¼regï¼â 管ç容卿³¨å表身份éªè¯modelâ ç®¡çæ¨¡åä»åº
5. ä¿¡æ¯åå®ç¨ç¨åºå½ä»¤
runpodctl user # æ¾ç¤ºè´¦æ·ä¿¡æ¯åä½é¢ï¼å«åï¼meï¼
runpodctl gpu # ååºå¯ç¨ç GPU ç±»å
runpodctl datacenter # ååºæ°æ®ä¸å¿åå
¶å¯ç¨æ§ï¼å«åï¼dcï¼
runpodctl billing # æ¥çè´¦ååå²
runpodctl doctor # è¯æå¹¶ä¿®å¤ CLI é®é¢
runpodctl ssh # 管ç SSH å¯é¥åè¿æ¥
6. SSH å¯é¥ç®¡ç
runpodctl ssh add-key # å° SSH å
¬é¥æ·»å å°æ¨çè´¦æ·
runpodctl ssh list-keys # ååºææå·²æ·»å ç SSH å¯é¥
è¾åºæ ¼å¼
é»è®¤è¾åºä¸º JSONï¼é对代çä¼åï¼ãä½¿ç¨ --output æ å¿è¿è¡å
¶ä»æ ¼å¼éæ©ï¼
runpodctl pod list # JSONï¼é»è®¤ï¼
runpodctl pod list --output=table # 人类å¯è¯»çè¡¨æ ¼
runpodctl pod list --output=yaml # YAML æ ¼å¼
RunPod 项ç®ââæ Docker Serverless 工使µ
RunPod å¨ runpodctl çæ¬ 1.11.0+ ä¸å¼å
¥äºâæ Dockerâåè½ï¼ç®åäº AI å¼åè¿ç¨ï¼å
许æ¨å¨ serverless å¹³å°ä¸é¨ç½²èªå®ä¹ç«¯ç¹ï¼æ éå¤ç Docker ç夿æ§ã
该æµç¨å æ¬ï¼
- ä½¿ç¨æ¨ç API å¯é¥é
ç½®
runpodctl - å建ä¸ä¸ªæ°é¡¹ç®ï¼æç¤ºè®¾ç½®å¹¶åå»ºé¡¹ç®æä»¶å¤¹ï¼
- å¯å¨å¼åä¼è¯
- é¨ç½²æ¨ç Serverless 端ç¹
çæçé¡¹ç®æä»¶å æ¬ï¼
.runpodignoreâ æå®é¨ç½²æ¶è¦æé¤çæä»¶builder/requirements.txtâ pip ä¾èµé¡¹runpod.tomlâ 项ç®é ç½®åé¨ç½²è®¾ç½®
# å建ä¸ä¸ªæ°é¡¹ç®
runpodctl project create -n my-project && cd my-project
# å¯å¨å¼åä¼è¯ï¼èªå¨åæ¥ä»£ç æ´æ¹ï¼
runpodctl project dev
# é¨ç½²ä¸º Serverless 端ç¹
runpodctl project deploy
è¿ä¼å¨æ¨çæ¬å°ç¯å¢ä¸ä¸ä¸ª RunPod Pod ä¹é´å»ºç«è¿æ¥ã对代ç çæ´æ¹ä¼èªå¨åæ¥å° Podï¼ä»èå®ç°æ éé建 Docker éåç宿¶æµè¯ã
éè¿ JSON é ç½® Podï¼é«çº§ï¼
æ¨å¯ä»¥ä½¿ç¨ JSON é ç½®æä»¶å建 Podãæä¸ç§ç¤ºä¾ç±»åï¼æå°é ç½®ã宿´é 置以å Spot/å¯ä¸æé ç½®ãææ Pod é ç½®åæ®µé½æ¯å¯éçï¼å¹¶æåççé»è®¤å¼ã
JSON é 置示ä¾ï¼
{
"name": "å¼å Pod",
"imageName": "runpod/pytorch:2.0.0-py3.10-cuda11.8.0-devel-ubuntu22.04",
"cloudType": "SECURE",
"gpuTypeIds": ["NVIDIA GeForce RTX 4090"],
"gpuCount": 1,
"containerDiskInGb": 50,
"volumeInGb": 100,
"ports": ["8888/http", "22/tcp"]
}
runpod-cli pods create --config my-pod.json
CI/CD éæ
RunPod ç MLOps éæå´ç»çå ¨é¢ç API å CLI æ¯æï¼ä»¥å®ç° CI/CD æµæ°´çº¿éæã该平å°éè¿ RESTful API è°ç¨åå½ä»¤è¡çé¢ï¼ä¸ GitHub ActionsãGitLab CIãJenkins å CircleCI ååå·¥ä½ã
æ¨å¯ä»¥éè¿å° API å¯é¥ä½ä¸ºå¯é¥åå¨å¨ CI/CD ç³»ç»ä¸ï¼å¹¶å¨æµæ°´çº¿æ¥éª¤ä¸è°ç¨ runpodctl å½ä»¤æ¥èªå¨åé¨ç½²ââä¾å¦ï¼å¨æµè¯éè¿åå¯å¨ Podï¼æé¨ç½²æ°ç Serverless 端ç¹çæ¬ã
è·å帮å©
runpodctl help # éç¨å¸®å©
runpodctl [command] help # ç¹å®å½ä»¤ç帮å©
runpodctl doctor # è¯æå¹¶ä¿®å¤é®é¢
æ¦è¦è¡¨æ ¼
åèæç®ï¼
- RunPod CLI 宿¹ææ¡£ï¼æ¦è¿°ï¼
- runpodctl GitHub ä»åº
- RunPod CLI â DeepWiki
- RunPod æ Docker CLI å客æç«
- RunPod æä»¶ä¼ è¾ææ¡£
- runpodctl Go å åè
- Pod é 置示ä¾ï¼MomentFactoryï¼
