2022-05-09|閱讀時間 ‧ 約 8 分鐘

Kubectl 的小技巧

Required
  • 以下的資訊只適用於 mac-os 作業系統環境.
  • zshrc terminal 環境

Alias
通常在指令 terminal 環境下, 會透過 alias 指令, 把一些名稱較長的指令縮短成自己開發習慣的 "簡稱",方便我打幾個字 + tab 鍵, 快速達到我要的功能。
我自己是習慣特別撰寫一份 .aliax 的文件, 存放於 user 目錄底下, 再透過於 .zshrc 裡面添加一行, 來載入我所有的 aliaes。
source ~/.aliax 
這方便我在任何 linux, unix 環境快速安裝自己習慣的 alias。
我常用的 aliaes 如下,
alias ll='ls -lahtr'                                         # List all file in long list format by modification time
alias ..='cd ..'                                             # Go up one directory
alias ...='cd ../..'                                         # Go up two directories
alias ....='cd ../../..'                                     # Go up three directories
alias -- -='cd -'                                            # Go back
alias c='clear'                                              # Clear Screen
alias k='clear'                                              # Clear Screen
alias cls='clear'                                            # Clear Screen
alias _="sudo"                                               # Execute with sudo
alias q='exit'                                               # Logout
alias md='mkdir -p'                                          # Recursive create sub dirctory

alias psjar='ps aux | grep jar'                              # List jar process

alias rm='rm -i'                                             # 多一層 confirm 確認刪除, 更好的方法是改為 mv $@ ./trash
alias df='df -h'                                             # Show disk info for human

alias py3='python3'                                          # python3
alias py2='python2'                                          # python2

alias kc='kubectl'
alias km='kustomize'

# List used port info and process id
alias lp='function _lp(){ lsof -n -iTCP:$1 | grep LISTEN; };_lp'
alias sp='function _sp(){ nmap -PS $1};_sp'

# App
alias vscode='open -a /Applications/Visual\ Studio\ Code.app/'
alias ij='open -a /Applications/IntelliJ\ IDEA.app/'
當然 zshrc 本身也提供了開源開發者貢獻的 aliases 供您安裝使用。

Kubectl
當你開始維護 K8s 的設定的時候, kubectl 基本上就會成為您的手腳, 您會常需要
kubectl get [service/pod]   # 查看 service 資源, pod 資源
kubectl logs pod [pod-name]  # 查看 pod 相關 logs
kubectl apply -f xxxx.yaml   # 把相關資源部署到 k8s 叢集內
kubectl describe [workload]  # 查看 k8s workload 資源 
沒意外的話, 你會下得很煩躁。所以可以把 kubectl 簡稱 kc, 來讓自己工作舒適一點。
alias kc='kubectl'

Autocomplete
就算這樣, 我還是常常記不住某些複雜的英文 (金魚腦), 所以可以考慮官方建議的 Cheat Sheet 把 autocomplete 設定上去。基本上就 2 行指令而已, 一片蛋糕 XD
source <(kubectl completion zsh)  # setup autocomplete in zsh into the current shell
echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshrc # add autocomplete permanently
這樣的話, 只要 kc desc + tab 就可以達到 kubectl describe 指令的功能了。

Lens
如果您真的是指令苦手的話, Lens 是個非常不錯的專案, 一些簡單的設定就可以 GUI 的方式, 讓您管理 K8s 資源, 且不用下任何指令就能維運。
source: https://k8slens.dev/
source: https://k8slens.dev/
source: https://k8slens.dev/
source: https://k8slens.dev/

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.