pecoでk8s podのshellをよしなに取得する
pecoのインストール
- https://github.com/peco/peco/releases
$ wget https://github.com/peco/peco/releases/download/v0.5.11/peco_linux_amd64.tar.gz $ tar -zxvf peco_linux_amd64.tar.gz $ sudo mv peco_linux_amd64/peco /usr/local/bin/peco $ which peco /usr/local/bin/peco
shellを書く
#!/bin/bash
NAMESPACE=""
COMMAND="sh"
while getopts n:c: OPT
do
case $OPT in
n)
NAMESPACE=$OPT
;;
c)
COMAMND=$OPT
;;
esac
done
function peco-choosepod(){
for podname in $(kubectl -n $NAMESPACE get pods | peco | awk '{print $1}' )
do
echo "Login to $podname"
kubectl exec -it $podname -- $COMMAND
done
}
peco-choosepod $1
$ chmod 755 ./getshell.sh
$ ./getshell.sh -n chatagiri -c /bin/bash
QUERY> IgnoreCase [67 (1/9)]
NAMESPACE NAME READY STATUS RESTARTS AGE
actpub-relay actpub-relay-6bdcb7655-tdgzj 3/3 Running 13 59d
blog blog-wordpress-7769448449-qngm4 0/1 Pending 0 86d
cert-manager cert-manager-5f6f7d784-zvpwq 1/1 Running 2 35d
cert-manager cert-manager-cainjector-845d589bfd-5shrh 1/1 Running 2 35d
cert-manager cert-manager-webhook-777b87f99c-xwn2n 1/1 Running 2 35d