总结了 800多个 Kubectl 别名,再也不怕记不住命令了!

2023-03-19 17:24:33 浏览数 (3)

这个存储库包含脚本 gener_ aliases.py 可以生成数百个方便的 kubectl shell 别名,您不再需要拼写出每个命令和--flag 参数。

https://github.com/ahmetb/kubectl-aliases/blob/master/generate_aliases.py

通过命令/标志排列创建的 shell 别名示例如下:

代码语言:javascript复制
alias ksysgdepwslowidel='kubectl --namespace=kube-system get deployment --watch --show-labels -o=wide -l'

示例

800 个别名,下面列出一部分:

代码语言:javascript复制
alias k='kubectl'
alias kg='kubectl get'
alias kgpo='kubectl get pod'

alias ksysgpo='kubectl --namespace=kube-system get pod'

alias krm='kubectl delete'
alias krmf='kubectl delete -f'
alias krming='kubectl delete ingress'
alias krmingl='kubectl delete ingress -l'
alias krmingall='kubectl delete ingress --all-namespaces'

alias kgsvcoyaml='kubectl get service -o=yaml'
alias kgsvcwn='kubectl get service --watch --namespace'
alias kgsvcslwn='kubectl get service --show-labels --watch --namespace'

alias kgwf='kubectl get --watch -f'
...

访问下面地址,查看所有别名:

https://github.com/ahmetb/kubectl-aliases/blob/master/.kubectl_aliases

安装

您可以直接下载 bash/zsh 的文件.kubectl_aliases

https://raw.githubusercontent.com/ahmetb/kubectl-aliases/master/.kubectl_aliases

或者 fish 的文件.kubectl_aliases.fish,并将其保存到$HOME目录中。

https://raw.githubusercontent.com/ahmetb/kubectl-aliases/master/.kubectl_aliases.fish

Bash/Zsh

将以下内容添加到您的.bashrc/.zshrc文件中:

代码语言:javascript复制
[ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases

建议:如果想使用 GNU watch 命令而不是 kubectl [...] --watch,请这样运行:

代码语言:javascript复制
[ -f ~/.kubectl_aliases ] && source 
   <(cat ~/.kubectl_aliases | sed -r 's/(kubectl.*) --watch/watch 1/g')

在运行之前打印完整的命令:将其添加到您的.bashrc.zshrc文件中:

代码语言:javascript复制
function kubectl() { echo "  kubectl $@">&2; command kubectl $@; }
Fish

添加下面内容到你的~/.config/fish/config.fish文件:

代码语言:javascript复制
test -f ~/.kubectl_aliases.fish && source ~/.kubectl_aliases.fish

这实际上增加了更强大的 fish 缩写:

https://fishshell.com/docs/current/cmds/abbr.html

而不是别名,这样在执行前按空格显示完整的命令。

建议:如果想使用 GNU watch 命令而不是 kubectl [...] --watch,请这样运行:

代码语言:javascript复制
test -f ~/.kubectl_aliases.fish && source 
     (cat ~/.kubectl_aliases.fish | sed -r 's/(kubectl.*) --watch/watch 1/g' | psub)

语法解释

  • k=kubectl
    • sys=--namespace kube-system
  • commands:
    • g=get
    • d=describe
    • rm=delete
    • a:apply -f
    • ak:apply -k
    • k:kustomize
    • ex: exec -i -t
    • lo: logs -f
  • resources:
    • po=pod, dep=deployment, ing=ingress,svc=service, cm=configmap, sec=secret,ns=namespace, no=node
  • flags:
    • output format: oyaml, ojson, owide
    • all: --all or --all-namespaces depending on the command
    • sl: --show-labels
    • w=-w/--watch
  • value flags (should be at the end):
    • n=-n/--namespace
    • f=-f/--filename
    • l=-l/--selector

运行脚本

该脚本只有一个可选参数,即:将生成别名的 shell。如果不指定,则默认为bash。例如:

代码语言:javascript复制
# Generate aliases for bash/zsh
python generate_aliases.py > .kubectl_aliases

# Generate abbr for fish
python generate_aliases.py fish > .kubectl_aliases.fish

- END -

0 人点赞