如果你熟悉 DevOps 和 Kubernetes 的使用,就會知道命令行界面(CLI)對於管理任務有多麼重要。好在現在市面上有一些工具可以讓終端在這些環境中更容易使用。在本文中,我們將探討可以讓工作流程簡化的優秀工具,幫助你在 DevOps 和 Kubernetes 中自如地瀏覽終端。
Zsh
Zsh (Z Shell)是一款功能強大、高度可定製的命令行 shell 和終端模擬器,與 Bash 等傳統 shell 相比,它具有更強的功能和更高的效率。Zsh 提供以下選項,因此深受開發人員和 DevOps 工程師的青睞。
ohmyzsh
Oh My Zsh 是一個開源、社區驅動的框架,用於管理 Zsh 配置。您可以使用curl 安裝它,如下所示:
sh -c "$(curl -fsSL <https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh>)"
zsh-syntax-highlighting
zsh-syntx-highlighting 是 Zsh shell 的一個插件,可在輸入時為命令及其參數提供實時語法高亮顯示。它有助於直觀地區分不同類型的命令、選項、路徑和變量,從而更容易發現錯誤並理解終端中命令的結構。
請按安裝指南進行操作:
https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md
這是我的終端在安裝工具前後的樣子:
安裝前
安裝後
zsh-autosuggestions
zsh-autosuggestions 是 Zsh shell 的一個有用插件,可在用户鍵入命令時提供智能命令建議。它會分析你的命令歷史記錄,併為完成命令提供預測性建議。
請參考安裝指南:
https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
這是我的終端在安裝該工具前後的樣子:
安裝前
安裝後
Terraform
如果你使用 Terraform 和 Terragrunt 作為基礎架構代碼工具,那麼在使用 Terraform 和 Terragrunt 時,你可能會發現以下相關工具非常有用。
tfswitch and tgswitch
Tfswitch 和 tgswitch 是命令行工具,可簡化不同版本的 Terraform 和 Terragrunt 基礎設施即代碼工具之間的切換。它們允許開發人員和操作人員針對不同的項目或環境輕鬆管理和切換不同版本的 Terraform 和 Terragrunt。
在 Mac 上,您可以按如下方式安裝這些工具:
brew install warrensbox/tap/tfswitch
brew install warrensbox/tap/tgswitch
注意:在 Mac 上使用 Zsh 安裝 Terraform 和 Terragrunt 時,若要使用 tfswitch 和 tgswitch,可能需要在 .zshrc 文件中添加以下一行。
export PATH=$HOME/bin:/usr/local/bin:$PATH
Infracost
Infracost 是一款功能強大的工具,可幫助您估算和跟蹤 Terraform 等平台中基礎設施即代碼(IaC)的成本。通過分析基礎架構配置文件,Infracost 可提供實時成本估算,讓您做出明智的決策,並通過識別潛在的成本節約機會來優化雲計算支出。
該工具還有一個 Visual Studio Code (VSCode) 擴展。
這就是我在一個項目中運行的結果:
TfSec
TFSec 是專為 Terraform 代碼設計的安全掃描工具。它有助於識別代碼基礎架構中潛在的安全漏洞和違反最佳實踐的行為,讓你主動解決安全問題,確保符合行業標準和組織政策。
你可以在 Mac 上安裝,如下所示:
brew install tfsec
這是在我的項目運行的結果:
Git
如果您使用 Git,這裏我還將推薦一些工具能夠讓您的工作更加輕鬆便捷。
Git aliases
為 Git 使用別名有很多好處,包括通過減少重複輸入冗長 Git 命令的需要來提高生產力和效率。如果你經常使用 Git,建議在 .zshrc 文件中定義常用 Git 命令的別名。下面是一個示例,可以幫助你開始使用 Git:
# Git aliases
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gpl='git pull'
alias gb='git branch'
通過在 shell 配置文件(如 .bashrc 或 .zshrc)中定義這些別名,只需鍵入別名而不是完整的 Git 命令就能執行常見操作,從而在日常 Git 工作流程中節省時間和精力。
GitLens
GitLens 是 VSCode 的一個有用的擴展,它在使用 Git 存儲庫時提供有價值的見解和附加功能。它使用户能夠輕鬆跟蹤更改、查看提交詳細信息並直接在代碼編輯器中瞭解代碼作者身份,從而增強協作並更輕鬆地導航和探索項目歷史記錄。
在 Visual Studio Code 中啓用 GitLens 擴展後,您將看到代碼作者身份的清晰指示:
Git Graph
Git Graph 是 Visual Studio Code 的一個用户友好型擴展,能直觀地顯示 Git 倉庫的提交歷史。通過它,您可以輕鬆直觀地查看分支、合併和提交情況,對項目的開發時間軸有一個有用的概覽,並能更簡單地瀏覽和理解 Git 倉庫的結構。
Kubernetes
由於 Kubernetes 的複雜性,人們創建了許多額外的工具來幫助 DevOps 團隊有效地利用它。這些工具旨在簡化流程,讓 DevOps 專業人員能夠無縫地使用 Kubernetes 並優化他們的部署和管理任務。
Kubernetes aliases
就像為 Git 命令使用別名一樣,為 Kubernetes 命令使用別名也有好處。別名能讓 Kubernetes 命令的使用更簡單、更高效,在與 Kubernetes 集羣和資源交互時省時省力。
alias k='kubectl'
# For switching context between different clusters
alias kswitch-maryam='kubectl config use-context maryam'
alias kswitch-mary='kubectl config use-context mary'
alias kpod='kubectl get pods -A'
alias knode='kubectl get nodes'
alias kdesp='kubectl describe pod'
alias kdp='kubectl delete pod'
alias kgd='kubectl get deployments'
這些只列出了幾個例子,你還可以根據常用的 Kubernetes 命令自定義別名。將這些別名添加到 shell 配置文件(如 .bashrc 或 .zshrc)中,就可以使用這些快捷方式快速、輕鬆地執行 Kubernetes 命令。
kube-ps1
Kube-ps1 可為您的命令提示符提供有關當前 Kubernetes 上下文的相關信息。在使用多個 Kubernetes 集羣和管理不同集羣上下文時十分有用。該工具直觀地突出顯示了活動集羣上下文的詳細信息,幫助用户避免潛在的錯誤,並在導航和與 Kubernetes 環境交互時更加清晰。
您可以按如下方式在 Mac 上安裝它:
brew install kube-ps1
如果使用 Zsh,請確保在 .zshrc 文件中添加以下內容:
plugins=(
kube-ps1
)
PROMPT='$(kube_ps1)'$PROMPT # or RPROMPT='$(kube_ps1)'
這就是該工具可視化當前活動上下文和命名空間的方式:
kubecolor
Kubecolor 是一個便捷易用的工具,通過顏色和格式增強 Kubernetes 命令的輸出,使其更易於閲讀和理解。Kubecolor 提高了可見性,並有助於在使用 Kubernetes 時快速識別重要信息。(這也是日常使用 Kubernetes 時的一個救星工具!)
在 Mac 上安裝如下,並確保將第二行添加到 .zshrc 中,以便與 kubectl 自動完成功能配合使用:
brew install hidetatz/tap/kubecolor
# get zsh complete kubectl
source <(kubectl completion zsh)
alias kubectl=kubecolor
# make completion work with kubecolor
compdef kubecolor=kubectl
這裏是一個説明該工具如何為 Kubernetes 命令的輸出着色的示例:
kubectx + kubens
Kubectx + kubens 是管理 Kubernetes 上下文和命名空間的優秀工具。Kubectx 允許用户在不同的 Kubernetes 上下文之間切換,而 Kubens 則簡化了特定上下文內的命名空間之間的切換,使得更輕鬆地使用多個集羣並高效地組織資源。
K9s
K9s 是一款用户友好型命令行工具,為管理 Kubernetes 集羣提供了一個可視化儀表盤。它提供了一個簡單直觀的界面,用於查看資源、pod、日誌和事件並與之交互,使 DevOps 專業人員能更輕鬆地監控 Kubernetes 部署並排除故障。
k8s Lens
K8s Lens是一款用户友好型桌面應用程序,為管理和監控 Kubernetes 集羣提供了圖形界面。它提供了資源、pod 和節點的可視化表示,允許用户輕鬆瀏覽 Kubernetes 環境並與之交互,方便開發人員和管理員使用 Kubernetes。
popeye
Popeye 是一款好用的命令行工具,能分析 Kubernetes 集羣,並就潛在問題或錯誤配置提供有價值的建議。它能掃描集羣配置、命名空間、部署和 pod,找出違反最佳實踐、資源效率低下和安全問題,幫助用户確保 Kubernetes 部署得到優化和良好維護。
以下是 Popeye 在掃描集羣時提供的示例信息:
在 Mac 上安裝該工具如下:
brew install derailed/popeye/popeye
Kube-shell
Kube-shell 是 Kubernetes CLI 的集成 shell。它提供友好的用户界面,可視化顯示集羣資源,允許用户輕鬆導航、監控和管理其 Kubernetes 部署,而無需依賴命令行界面。
Kube-Capacity
Kube-Capacity 是一款可讓您深入瞭解 Kubernetes 集羣的資源使用情況和容量的工具。它能幫助您瞭解集羣資源是如何分配和利用的,讓您能夠優化資源分配、規劃擴展,並確保 Kubernetes 環境中的高效資源管理。
參考鏈接:
https://awstip.com/tools-to-make-your-terminal-devops-and-kub...