推荐工具!使终端便于 DevOps 和 Kubernetes 使用
阅读原文时间:2023年08月14日阅读:2

如果你熟悉 DevOps 和 Kubernetes 的使用,就会知道命令行界面(CLI)对于管理任务有多么重要。好在现在市面上有一些工具可以让终端在这些环境中更容易使用。在本文中,我们将探讨可以让工作流程简化的优秀工具,帮助你在 DevOps 和 Kubernetes 中自如地浏览终端。

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 和 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 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 的复杂性,人们创建了许多额外的工具来帮助 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