gum 安装
go install github.com/charmbracelet/gum@latest
1. 查看某个 pod 的日志
#!/bin/sh
export kube_log_namespace=$(gum input --placeholder "Please input k8s namespace")
export kube_log_pod=$(kubectl get pods -n ${kube_log_namespace} | gum filter | awk '{print $1}')
kubectl logs -f $kube_log_pod -n $kube_log_namespace
配合 ripgrep
使用, 假设这个脚本叫 klog, 则 klog | rg hello -C 5
2. 获取某个 pod 的 deploy
#!/bin/sh
export kube_log_namespace=$(gum input --placeholder "Please input k8s namespace")
export kube_log_pod=$(kubectl get pods -n ${kube_log_namespace} | gum filter | awk '{print $1}')
kubectl get -o json -n $kube_log_namespace pod $kube_log_pod
同样可以配合 fx
来使用: kde | fx
3. 重启 pod
export kube_log_namespace=$(gum input --placeholder "Please input k8s namespace")
export kube_log_pod=$(kubectl get pods -n ${kube_log_namespace} | gum filter | awk '{print $1}')
kubectl delete pods -n $kube_log_namespace $kube_log_pod
4. 获取某个服务的 ip
export kube_log_namespace=$(gum input --placeholder "Please input k8s namespace")
export kube_svc_ip=$(kubectl get svc -n ${kube_log_namespace} | gum filter | awk '{print $3}')
echo $kube_svc_ip
use case: kip | xclip -selection clipborad
5. 进入 pod
export kube_log_namespace=$(gum input --placeholder "Please input k8s namespace")
export kube_log_pod=$(kubectl get pods -n ${kube_log_namespace} | gum filter | awk '{print $1}')
kubectl exec -ti $kube_log_pod -n $kube_log_namespace -- /bin/bash