我在skaffold.yaml中有类似以下内容的后端服务描述:
...
deploy:
helm:
releases:
- name: 'myapp-backend'
chartPath: myapp-chart-backend
values:
APP_IMAGE: ...
namespace: myapp-ns
recreatePods: true
...
集群启动后,我会列出列表窗格,然后kubectl get pods
返回
...
myapp-backend-7dbf4b6fb8-kw7zv
myapp-backend-redis-646f454bcb-7thrc
...
我需要pod(myapp-backend-7dbf4b6fb8-kw7zv
)的全名才能在需要全名的kubectl cp
命令中使用。
但是此命令是在bash脚本中运行的,因此需要通过名称myapp-backend-7dbf4b6fb8-kw7zv
获得全名myapp-backend
。
答案 0 :(得分:1)
假设您知道部署中的名称(在本例中为“ myapp-backend”),则可以:
kubectl get pods --selector=app=myapp-backend -o jsonpath='{.items[*].metadata.name}'
更新
由于我显然无法访问您的环境,因此我提供了一种通用的解决方案路径,您可以摆弄此命令,但想法可能会保持不变:
kubectl get pods --selector=...
(有可能您应该在__您的__环境中添加更多选择器)kubectl get pods --selector=app=<myapp-backend> -o json
检查json。您将获得一个格式正确的json,可以对其进行检查,并查看您实际想要获取的哪个部分。{.items[0].metadata.name}
也可以使用