歡迎光臨
每天分享高質量文章

如何為Kubernetes配置多功能終端?

Kubernetes內置了非常不錯的CLI包。對於基礎操作足夠用了,但是對於一些高階用戶,就顯得不夠用了。Kubernetes社區開發了kube ops view[1]、Grafana[2]等基於Web的監控工具,但是如果有一個基於終端的工具會大幅度提高錯誤定位效率,就跟瑞士軍刀一樣實用。
以下列出了我的蘋果終端中安裝的開源工具,用起來得心應手。這些小工具我基本上每天都會用到。
準備工作
建議配置這些工具之前先安裝ZSH[3],對蘋果系統來說非常棒的開源shell,功能非常豐富而且很炫酷。
k9s
k9s是Kubernetes集權管理最棒的CLI工具,可以通過key直接SSH進入Pod,查閱日誌,刪除資源等。k9s提供大量日常操作,是Kubernetes必備工具。
kubectx
k9s不支持Kubernetes集群config背景關係之間切換,對於經常管理多個Kubernetes集群用戶來說不太方便。kubectx可以提供如下操作命令進行背景關係切換:
  1. kubectl config use-context my-context
當然有些前提條件:
  • 需要知道集群名

  • 有類似於 set-context的命令列

kubectx是替換命令,如果單獨運行,會列出.kube/config中的所有背景關係,需要從中選擇一個繼續運行:
  1. kubectx my-context
不需要記住這些背景關係,也不需要手工選擇背景關係,避免出現錯誤命令,簡單又有效。跟k9s配合,提供強大的功能組合。
kubens
搞定背景關係後,可以深入到特定的命名空間,因為集群內部有很多命名空間。ahmetb先生(kubectx的貢獻者)再次提供了kubens,用於命名空間的操作。
  1. kubens kube-system
隨後的命令預設都是基於選擇的命名空間進行的。單獨運行kubens會列出所有命名空間名字。
kube-ps1
如何確認在哪個背景關係和命名空間操作呢?需要用如下命令:
  1. kubens kubectx kubectl
為了簡化,ps1是zsh中自動顯示背景關係和命名空間的插件: 
有了它就可以不用命令看出目前運行的背景關係和命名空間。這個插件也是高度可配置的,可以同時看背景關係和命名空間,或者只看一個,或者完全關閉。
popeye
popeye是自動掃描repo中資源並將問題高亮出來的工具,這是一個很新但很有用的功能。如果需要清理集群內問題,最好安裝這個工具。 
stern
如果有需求用kubectl一次看多個Pod的日誌,可以用stern這個工具將日誌從多個Pod中拉出來,非常方便實用。
相關鏈接:
  1. https://github.com/hjacobs/kube-ops-view

  2. https://medium.com/htc-research-engineering-blog/monitoring-kubernetes-clusters-with-grafana-e2a413febefd

  3. https://ohmyz.sh/

原文鏈接:https://www.freecodecamp.org/news/how-to-set-up-a-serious-kubernetes-terminal-dd07cab51cd4/
赞(0)

分享創造快樂