日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
K8S實(shí)踐:非常實(shí)用Kubectl的別名工具推薦,助您高效工作

大家好,我是蝸牛,今天介紹一款Kubernetes的別名工具,可以讓你高效管理k8s 集群,下面是相關(guān)介紹

介紹

我們?cè)诠芾?Kubernetes集群和執(zhí)行指定任務(wù)是比較復(fù)雜和費(fèi)時(shí)的。但是如果使用正確的kubectl別名集,可以大幅簡(jiǎn)化Kubernetes管理并提高我們的工作效率。在本文中,我們將分享一些有用的 kubectl 別名,它們可以幫助我們更快、更輕松地執(zhí)行常見(jiàn)任務(wù)。從查詢(xún)資源信息到對(duì) Pod 進(jìn)行故障排除和管理節(jié)點(diǎn),這些別名將成為 Kubernetes 工具包中的寶貴工具。因此,讓我們深入研究并發(fā)現(xiàn)簡(jiǎn)化 Kubernetes 管理所需的 kubectl 別名!

前置依賴(lài)

在開(kāi)始使用這些實(shí)用的 kubectl 別名之前,需要確保我們的電腦滿(mǎn)足以下前置條件:

  • 安裝Kubectl
  • 安裝Krew plugins manager,它是命令行工具的插件管理器,目前 Krew 上分布著230 個(gè)kubectl 插件
  • 安裝Kubectl-neat Krew plugin插件,這個(gè)插件的作用是,消除 Kubernetes 清單中的混亂,使其更具可讀性,比如下圖,用紅色標(biāo)記的行被認(rèn)為是多余的,將被此插件從輸出中刪除

圖片

  • 在用戶(hù)目錄,創(chuàng)建 mkdir ~/.kube 文件夾

別名設(shè)置

把以下別名命令添加到環(huán)境變量中,并執(zhí)行source 命令進(jìn)行生效

# 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'

添加完以后執(zhí)行kgpo命令進(jìn)行驗(yàn)證,如下圖,通過(guò)此命令可以查詢(xún)到pod列表,是不是很方便

圖片

示例說(shuō)明

下面讓我們研究下這些別名的一些用例和解釋。

1. 更快地執(zhí)行基本命令

kubectl -aliases Github 存儲(chǔ)庫(kù)包含一個(gè)生成數(shù)百個(gè)基本別名的腳本,這些別名包含在上面的列表中。

下面是一些關(guān)鍵命令概覽

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'
...

為了表示每個(gè)命令的作用,每次執(zhí)行簡(jiǎn)寫(xiě)命令時(shí),都會(huì)顯示完整的命令

ksysgpo

圖片

2. 獲取排序和過(guò)濾的事件

對(duì) Kubernetes 集群中的事件進(jìn)行排序是比較麻煩。通用別名來(lái)按上次查看日期和創(chuàng)建時(shí)間戳對(duì)事件進(jìn)行排序就非常方便

kgel -A
kgec -A

圖片

另外,您可以使用別名過(guò)濾特定資源的事件kger

圖片

3. 查詢(xún)節(jié)點(diǎn)資源請(qǐng)求和限制

要查看集群中節(jié)點(diǎn)的資源請(qǐng)求和限制,可以使用別名kgnr。此別名提供了每個(gè)節(jié)點(diǎn)的 CPU 和內(nèi)存分配信息

kgnr

圖片

4.啟動(dòng)調(diào)試pod

由于pod的容器鏡像只安裝了必要的軟件,所以當(dāng)出現(xiàn)故障時(shí),必須在線(xiàn)安裝相關(guān)工具進(jìn)行問(wèn)故障排除,而pod 重啟又得重新安裝,而這里提供了kdebug命令,可以快速啟動(dòng)一個(gè)Swiss Army Knife Pod,這個(gè)pod預(yù)裝所有基本工具的來(lái)解決問(wèn)題。

圖片

下面是一些內(nèi)置的工具列表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 內(nèi)的容器列表,可以使用別名kgpc。當(dāng)需要訪(fǎng)問(wèn)Pod 中的特定容器時(shí),非常有用

圖片

6. Service可用性檢測(cè)

測(cè)試 Kubernetes Service的可用性是比較麻煩的。而kping別名使用HTTP Ping Docker 映像來(lái) ping 服務(wù)并檢查其可用性,就方便很多:

kgsvc

圖片

執(zhí)行kping dp-manager-backend:80進(jìn)行測(cè)試

圖片

7. 獲取pod的yaml 內(nèi)容

在使用kubectl get pod -o=yaml查看pod資源的 YAML 時(shí),某些字段是不必要的,并且可能會(huì)在重新部署 YAML 時(shí)導(dǎo)致問(wèn)題。別名kyaml通過(guò)提供排除不必要字段的可運(yùn)行清單來(lái)解決此問(wèn)題,注意此插件依賴(lài)前置條件的kubectl-neat插件

執(zhí)行kyaml pod pod 名稱(chēng)查詢(xún),結(jié)果如下圖,是不是很清爽。

圖片

8. 刪除失敗(和驅(qū)逐)的 Pod

失敗的 Pod 可能會(huì)使集群混亂并影響性能。該krmfailed別名允許您輕松刪除當(dāng)前命名空間中失敗的 Pod。

總結(jié)

這些 kubectl 別名提供了一種簡(jiǎn)化 Kubernetes命令的便捷方法。通過(guò)使用這些別名,我們可以在使用 kubectl 命令時(shí)節(jié)省大量時(shí)間。無(wú)論你是檢索特定信息、對(duì) Pod 進(jìn)行故障排除還是管理資源,這些別名都可以滿(mǎn)足需求。


文章名稱(chēng):K8S實(shí)踐:非常實(shí)用Kubectl的別名工具推薦,助您高效工作
鏈接地址:http://www.dlmjj.cn/article/dpcecho.html