如果你熟悉 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-kubernetes-friendly-64d27a35bd3f