Kubectl是连接我们和Kubernetes核心的命令行接口:API服务器。通过kubectl,我们可以创建、更新和删除集群中的资源,管理pod和服务,甚至可以排除问题。它是一个命令行伙伴,使我们能够接触到Kubernetes的魔力。
但是,即使是最有经验的Kubernetes管理员也会发现自己陷入了重复输入相同命令的乏味循环中。但是,如果你能从这种单调的工作中解脱出来,将你的kubectl游戏提升到一个全新的水平呢?这就是kubectl快捷键的威力所在,它允许我们简化工作流程,释放集群的全部潜力。 (到最后,找到一个正确的地方来存储Powershell中的别名函数)
1. 最常见和必须的别名,没有人愿意输入\'kubectl\'这个词。
Set-Alias -Name k -Value kubectl
2. 改变上下文是很难的,特别是如果你没有使用vscode Kubernetes扩展。下面的代码给你一个搜索和选择集群上下文的选项。将上下文名称的位数作为参数,并从输出中选择你的上下文。使用以下语法进行调用。 (注意:确保在代码中设置你喜欢的两个或三个字母的别名)
,,...
function ClusterChange([string[]]$argsarr){ $all = kubectl config get-contexts -o \'name\' #$all | Where { $_ -Match ($clustrName -Join \"and\")} foreach ($arg in $argsarr){ $all = $all | where { $_ -match $arg} } $matchclustr = $all $i = 0 foreach ($clustr in $matchclustr){ $i++ write-host $i,$clustr } if ($i -eq 1){ kubectl config use-context $clustr } elseif ($i -gt 1){ $opt = [int]$(Read-Host \"Choose\") - 1 kubectl config use-context $matchclustr[$opt] } else{ Write-Host \'NOT FOUND\' } $NS = k config view --minify -o jsonpath=\"{..namespace}\" if(!$NS){ $NS = \'default\' } Write-Host \"Current Namespace: $NS\"}Set-Alias -Name -Value ClusterChange
3. 为当前环境设置命名空间
function ([string]$NS=\'\'){ kubectl config set-context --current --namespace=$NS}
4. 用名称空间查看当前的集合背景
function (){ kubectl config current-context $NS = k config view --minify -o jsonpath=\"{..namespace}\" if(!$NS){ $NS = \'default\' } Write-Host \"Current Namespace: $NS\"}
5. 复制podName到剪贴板,对于那些讨厌用鼠标复制的人。 你可以为函数设置别名,或者使用函数名称作为别名。
#Get required pod name into clipboardfunction ([string]$kpodMatch=\'\'){ k get pods -oname | where{$_ -match $kpodMatch } | scb}#Get required pod name into clipboard from all namespacesfunction ([string]$kpodMatch=\'\'){ k get pods -oname -A | where{$_ -match \"$kpodMatch#34; } | Set-Clipboard}
(参考:scb或Set-Clipboard)
PowerShell配置文件是一个在PowerShell启动时运行的脚本,它是一个存储你的自定义函数和别名的好地方,包括kubectl别名函数。配置文件脚本可以在以下地方找到。 关于配置文件 - PowerShell | Microsoft Learn
我们也可以使用$PROFILE变量来查找路径。这个自动变量存储了当前会话中可用的PowerShell配置文件的路径。使用下面的命令打开配置文件脚本文件。
$profile | Invoke-Item
#网络#
本文来自于头条号作者:吉祥庄钢铁侠,本站旨在传播优质文章,无商业用途。