K8S实践:非常实用Kubectl的别名工具推荐,助您高效工作

大家好,我是蜗牛,今天介绍一款Kubernetes的别名工具,可以让你高效管理k8s 集群,下面是相关介绍

介绍

我们在管理 Kubernetes集群和执行指定任务是比较复杂和费时的。但是如果使用正确的kubectl别名集,可以大幅简化Kubernetes管理并提高我们的工作效率。在本文中,我们将分享一些有用的 kubectl 别名,它们可以帮助我们更快、更轻松地执行常见任务。从查询资源信息到对 Pod 进行故障排除和管理节点,这些别名将成为 Kubernetes 工具包中的宝贵工具。因此,让我们深入研究并发现简化 Kubernetes 管理所需的 kubectl 别名!

前置依赖

在开始使用这些实用的 kubectl 别名之前,需要确保我们的电脑满足以下前置条件:

  • 安装Kubectl
  • 安装Krew plugins manager,它是命令行工具的插件管理器,目前 Krew 上分布着230 个kubectl 插件
  • 安装Kubectl-neat Krew plugin插件,这个插件的作用是,消除 Kubernetes 清单中的混乱,使其更具可读性,比如下图,用红色标记的行被认为是多余的,将被此插件从输出中删除

图片

  • 在用户目录,创建 mkdir ~/.kube 文件夹

别名设置

把以下别名命令添加到环境变量中,并执行source 命令进行生效

# autocomplete kubectl & helm
source <(kubectl completion zsh)
source <(helm completion zsh)

alias k=kubectl

# when using below aliases, print kubectl command and then execute it
function kctl() { echo "+ kubectl $@" && command kubectl $@ }

# add aliases collection like 'kgpo' for 'kubectl get pods` from https://github.com/ahmetb/kubectl-aliases
[ ! -f ~/.kube/aliases.sh ] && curl -fsSL "https://raw.githubusercontent.com/ahmetb/kubectl-aliases/master/.kubectl_aliases" > ~/.kube/aliases.sh && sed -i -e 's/kubectl/kctl/g' ~/.kube/aliases.sh
source ~/.kube/aliases.sh

# set default namespace
alias kn='kctl config set-context --current --namespace'
# get events sorted by last timestamp
alias kgel='kctl get events --sort-by=.lastTimestamp'
# get events sorted by creation timestamp
alias kgec='kctl get events --sort-by=.metadata.creationTimestamp'
# get pod's descending events
function kger() { kctl get events --sort-by=.lastTimestamp --field-selector involvedObject.name="$@" }
# get 'real' all
alias kgworld='kctl get $(kubectl api-resources --verbs=list --namespaced -o name | paste -sd ",")'
# display all nodes resources request and limits
alias kgnr="k get nodes --no-headers | awk '{print \$1}' | xargs -I {} sh -c 'echo {} ; kubectl describe node {} | grep Allocated -A 5 | grep -ve Event -ve Allocated -ve percent -ve -- ; echo '"
# start a debug pod (including lots of troubleshooting tools)
alias kdebug="kctl -n default run debug-pod --rm -it --tty --image leodotcloud/swiss-army-knife:v0.12 --image-pull-policy=IfNotPresent -- bash"
# get pod's containers list
function kgpc() { kctl get pod -o jsnotallow="{.spec.containers[*].name}" "$@" && echo "" }
# ping a service, ex: 'kping whoami:8080'
alias kping='kctl run httping -it --image bretfisher/httping --image-pull-policy=IfNotPresent --rm=true --'
# get existing pod's yaml without forbidden fields, ex: 'kyaml pod whoami'
function kyaml() { kubectl get "$@" -o yaml | kubectl-neat }
# display and delete failed pods in current namespace
alias krmfailed='kctl delete pods --field-selector=status.phase=Failed'

添加完以后执行kgpo命令进行验证,如下图,通过此命令可以查询到pod列表,是不是很方便

图片

示例说明

下面让我们研究下这些别名的一些用例和解释。

1. 更快地执行基本命令

kubectl -aliases Github 存储库包含一个生成数百个基本别名的脚本,这些别名包含在上面的列表中。

下面是一些关键命令概览

alias k='kubectl'
alias kg='kubectl get'
alias kgpo='kubectl get pod'

alias ksysgpo='kubectl --namespace=kube-system get pod'

alias krm='kubectl delete'
alias krmf='kubectl delete -f'
alias krming='kubectl delete ingress'
alias krmingl='kubectl delete ingress -l'
alias krmingall='kubectl delete ingress --all-namespaces'

alias kgsvcoyaml='kubectl get service -o=yaml'
alias kgsvcwn='kubectl get service --watch --namespace'
alias kgsvcslwn='kubectl get service --show-labels --watch --namespace'

alias kgwf='kubectl get --watch -f'
...

为了表示每个命令的作用,每次执行简写命令时,都会显示完整的命令

ksysgpo

图片

2. 获取排序和过滤的事件

对 Kubernetes 集群中的事件进行排序是比较麻烦。通用别名来按上次查看日期和创建时间戳对事件进行排序就非常方便

kgel -A
kgec -A

图片

另外,您可以使用别名过滤特定资源的事件kger

图片

3. 查询节点资源请求和限制

要查看集群中节点的资源请求和限制,可以使用别名kgnr。此别名提供了每个节点的 CPU 和内存分配信息

kgnr

图片

4.启动调试pod

由于pod的容器镜像只安装了必要的软件,所以当出现故障时,必须在线安装相关工具进行问故障排除,而pod 重启又得重新安装,而这里提供了kdebug命令,可以快速启动一个Swiss Army Knife Pod,这个pod预装所有基本工具的来解决问题。

图片

下面是一些内置的工具列表arping, arptables, bridge-utils, ca-certificates, conntrack, curl, docker, dnsutils, ethtool, iperf, iperf3, iproute2, ipsec-tools, ipset, iptables, iputils-ping, jq, kmod, kubectl, ldap-utils, less, libpcap-dev, man, manpages-posix, mtr, net-tools, netcat, netcat-openbsd, openssl, openssh-client, psmisc, socat, tcpdump, telnet, tmux, traceroute, tcptraceroute, tree, ngrep, vim, wget, yq

5. 获取pod的容器列表

要检索 pod 内的容器列表,可以使用别名kgpc。当需要访问Pod 中的特定容器时,非常有用

图片

6. Service可用性检测

测试 Kubernetes Service的可用性是比较麻烦的。而kping别名使用HTTP Ping Docker 映像来 ping 服务并检查其可用性,就方便很多:

kgsvc

图片

执行kping dp-manager-backend:80进行测试

图片

7. 获取pod的yaml 内容

在使用kubectl get pod -o=yaml查看pod资源的 YAML 时,某些字段是不必要的,并且可能会在重新部署 YAML 时导致问题。别名kyaml通过提供排除不必要字段的可运行清单来解决此问题,注意此插件依赖前置条件的kubectl-neat插件

执行kyaml pod pod 名称查询,结果如下图,是不是很清爽。

图片

8. 删除失败(和驱逐)的 Pod

失败的 Pod 可能会使集群混乱并影响性能。该krmfailed别名允许您轻松删除当前命名空间中失败的 Pod。

总结

这些 kubectl 别名提供了一种简化 Kubernetes命令的便捷方法。通过使用这些别名,我们可以在使用 kubectl 命令时节省大量时间。无论你是检索特定信息、对 Pod 进行故障排除还是管理资源,这些别名都可以满足需求。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/298555.html<

(0)
管理的头像管理
上一篇2025-05-23 00:05
下一篇 2025-05-23 00:06

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注