推荐工具!使终端便于 DevOps 和 Kubernetes 使用

news2024/12/25 9:00:48

如果你熟悉 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Intel汇编和ATT汇编的区别?

一、前缀不同 在 Intel 语法中&#xff0c;没有寄存器前缀或立即前缀。 然而&#xff0c;在 AT&T 中&#xff0c;寄存器的前缀是“%”&#xff0c;而 immed 的前缀是“$”。 Intel 语法十六进制或二进制即时数据分别带有“h”和“b”后缀。 此外&#xff0c;如果第一个十六…

最新AI系统ChatGPT网站程序源码+搭建教程/公众号/H5端/安装配置教程/完整知识库

1、前言 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&#xff01;…

nginx一般轮询、加权轮询、ip_hash等负载均衡模式配置介绍

一.负载均衡含义简介 二.nginx负载均衡配置方式 准备三台设备&#xff1a; 2.190均衡服务器&#xff0c;2.191web服务器1&#xff0c;2.160web服务器2&#xff0c;三台设备均安装nginx&#xff0c;两台web服务器均有网页内容 1.一般轮询负载均衡 &#xff08;1&#xff09…

基于深度信念神经网络的矿石产量预测,基于DBN的矿石产量预测,DBN的详细原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的矿石产量预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN算法进行矿石产量预测 DB…

golang Cobra 快速使用

package mainimport("fmt""os""github.com/spf13/cobra" )func f1(){fmt.Printf("这是主命令的运行函数 ") } func f2(){fmt.Println("这是一个子命令的运行函数") }func main(){var rootCmd &cobra.Command{Use: &quo…

【果树农药喷洒机器人】Part8:果树对靶变量喷药实验

&#x1f4e2;&#xff1a;博客主页 【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d; 收藏 ⭐不迷路&#x1f649; &#x1f4e2;&#xff1a;内容若有错误&#xff0c;敬请留言 &#x1f4dd;指正…

Maven - 全面解析 Maven BOM (Bill of Materials):打造高效依赖管理与模块化开发

文章目录 Whats BOMWhy Bom常見的官方BOMSpring Maven BOM dependencySpringBoot SpringCloud Maven BOM dependencyJBOSS Maven BOM dependencyRESTEasy Maven BOM dependencyJersey Maven BOM dependency How Bom定义BOM其他工程使用的方法 BOM VS POM What’s BOM BOM&…

jmeter中用户参数和用户定义的变量的区别

如果使用jmeter做过参数化的人都知道&#xff0c;参数化的方式有多种&#xff0c;其中一种就是使用用户定义的变量&#xff0c;还有一种是使用用户参数。那么&#xff0c;这两个有什么异同呢&#xff1f; 一、先说相同的点&#xff1a; 1、都可以参数化&#xff0c;以供sample…

ArrayList浅拷贝clone,Kotlin

ArrayList浅拷贝clone&#xff0c;Kotlin import kotlin.collections.ArrayListfun main() {var list ArrayList<MyData>()for (i in 0..<3) {list.add(MyData(i, 0))}//浅拷贝list到copyListvar copyList list.clone()println(list)println(copyList)println("…

SSM整合(XML方式)

文章目录 SSM整合之后xml方式1 系统环境1.1 软件环境1.2 项目环境1.3 配置web.xml1.4 配置jdbc.properties文件1.5 配置SpringMVC核心文件1.6 配置Spring的核心文件1.7 配置MyBatis的核心文件1.8 配置数据库1.9 配置文件位置 2 编写后端代码2.1 编写实体类2.2 编写Dao接口2.3 编…

AOP与SpringAOP

AOP与SpringAOP 一、什么是AOP&#xff0c;什么是SpringAOP二、AOP与拦截器的区别三、实现SpringAOP1.添加SpringBootAOP依赖2.创建切面3.创建切点4.创建通知5.创建连接点 效果 一、什么是AOP&#xff0c;什么是SpringAOP AOP即Aspect-Oriented Programming面向切面编程。 它是…

CRC 校验码

CRC 校验码 题目解答发送端如何计算商 接收端 题目 假设生成多项式为 G(X)X4X31&#xff0c;要求出二进制序列10110011的CRC校验码 解答 发送端 首先 生成多项式为&#xff1a;G(X)X4X31&#xff0c;改写为二进制比特串为11001(有X的几次方&#xff0c;对应的2的几次方的位…

stable diffusion 单张图片换头roop安装配置

1.首先安装秋叶大佬的webui 2.然后在拓展里面搜索roop,下载roop插件,然后重启webui 3.重启后,在文生图和图生图的界面,就可以看到roop的入口 4.这里面,需要提前安装Visual Studio. 勾选一些必要的选项,这里可以参照b站的视频 # 秋叶版本Stablediffusion的Roop插件的安装 …

RocketMQ消费者可以手动消费但无法主动消费问题,或生成者发送超时

1.大多数是配置问题 修改rocketmq文件夹broker.conf 2.配置与集群IP或本地IPV4一样 重启 在RocketMQ独享实例中支持IPv4和IPv6双栈&#xff0c;主要是通过在网络层面上同时支持IPv4和IPv6协议栈来实现的。RocketMQ的Broker端、Namesrv端和客户端都需要支持IPv4和IPv6协议&…

Qt扫盲-Qt Paint System 概述

Qt Paint System 概述 一、概述二、绘图设备和后端1. Widget2. Image3. Pixmap4. OpenGL绘制设备5. Picture6. 自定义绘制后端 三、绘图与填充1. Drawing2. 填充 Filling 四、坐标系统1. 渲染Window-Viewport转换 五、读写图像文件1. QMovie 六、绘图相关设备 一、概述 Qt的pa…

【Antd】DatePicker日期选择框设置disabledDate不可选择的日期

需要先引入moment import moment from moment; 调用 antd 组件时&#xff1a; <RangePicker disabledDate{disabledDate} /> 其中 disabledDate 赋值如下&#xff1a; 1、当天之前的不可选&#xff0c;不包括当天&#xff1a; const disabledDate (current) > {/…

MyBatis-Plus学习笔记(尚硅谷)

一、MyBatis-Plus 1.简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档&…

互联网发展历程:从网线不够长到中继器的引入

互联网&#xff0c;这个如今贯穿我们生活的无所不在的网络&#xff0c;其发展历程充满了无数的创新和变革。有一项看似不太起眼的技术却在互联网的发展中发挥着至关重要的作用&#xff0c;那就是中继器。本文将带您深入了解互联网的发展历程&#xff0c;探讨在网线不够长的情况…

Mysql 搭建MHA高可用架构,实现自动failover,完成主从切换

目录 自动failover MHA&#xff1a; MHA 服务 项目&#xff1a;搭建Mysql主从复制、MHA高可用架构 实验项目IP地址配置&#xff1a; MHA下载地址 项目步骤&#xff1a; 一、修改主机名 二、编写一键安装mha node脚本和一键安装mha mangaer脚本&#xff0c;并执行安装…

Typora常用手册

常用快捷键 加粗&#xff1a; Ctrl B 标题&#xff1a; Ctrl H 插入链接&#xff1a; Ctrl K 插入代码&#xff1a; Ctrl Shift C – 无法执行 行内代码&#xff1a; Ctrl Shift K 插入图片&#xff1a; Ctrl Shift I 无序列表&#xff1a;Ctrl Shift L – 无法执行…