我经常运行以下任务:
X
或Y
内安装外壳程序我在历史记录中经常使用以下内容:
kubectl logs `kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep <partial_name>`
或
kubectl exec -it `kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep <partial_name>` bash
您知道kubectl
是否已经为此准备好了吗?还是应该创建自己的别名集?
答案 0 :(得分:1)
Kubernetes实例通过标签(键值对)松散耦合。因此,Kubernetes提供了各种功能,可以帮助您基于标签对对象集进行操作。
如果您有几个具有相同服务的Pod,则很有可能由某些ReplicaSet使用某些特定标签来管理它们。如果运行,您应该看到它:
kubectl get pods --show-labels
现在,例如,用于汇总日志,您可以使用标签选择器,例如:
kubectl logs -l key=value
有关更多信息,请参见:https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/。
答案 1 :(得分:0)
您可以启用外壳自动补全功能。 Kubectl提供了对Bash和Zsh的支持,这将节省您很多键入操作(您将使用TAB来获得建议/完成)。
Kuberentes文档提供了大量有关如何在Optional kubectl configurations下启用自动补全的信息。它涵盖了Linux上的Bash,MacOS和Zsh上的Bash。
答案 2 :(得分:0)
添加到我的.zshconfig
sshpod () {
kubectl exec --stdin --tty `kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep ${1} | head -n 1` -- /bin/bash
}
使用
sshpod podname
这个