k8s 小腳本 - 顯示所有 deploy 的鏡像地址

在實際的運維中,偶爾會出現(xiàn)想要查看測試環(huán)境和生產(chǎn)環(huán)境有那些微服務版本不同的問題,一個一個對比鏡像地址的話未免有些麻煩,所以就做了下面這個小腳本,這里分享一下:

# 要查看哪個命名空間的 deployment
namespace=kube-system

# 獲取所有的 deployment
deploys=`kubectl get deployments.extensions -n $namespace 2>/dev/null | awk -F ' ' '{ print $1 }'`

# 遍歷所有 deployment 獲取其鏡像地址
for deploy in $deploys; do
  image_url=$(kubectl get deployments.extensions -n $namespace $deploy -o yaml 2>/dev/null | grep image: | awk -F ': ' '{ print $2 }')
  if [ "$image_url" != "" ]; then
    printf "%-30s %-30s\n" $deploy $image_url
  fi
done

把 namespace 修改為自己環(huán)境的命名空間名稱既可以,以 kube-system 為例,輸出如下:

calico-kube-controllers        quay.io/calico/kube-controllers:v3.3.0
coredns                        registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.1.3
tiller-deploy                  registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.12.1

不過寫完之后發(fā)現(xiàn) kubectl 其實是可以快捷輸出鏡像版本的 ==,很尷尬,這里也貼出來:

kubectl get deployments -n kube-system -o jsonpath="{..image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c

輸出如下,前面的1是指有多少 deploys 在使用該鏡像:

1 quay.io/calico/kube-controllers:v3.3.0
1 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.1.3
1 registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.12.1

參考

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. 組件版本和配置策略 組件版本: Kubernetes 1.10.4 Docker 18.03.1-ce Et...
    Anson前行閱讀 5,944評論 0 11
  • 本文將介紹 k8s 中的一些最基本的命令,并輔以解釋一些基本概念來方便理解,也就是說,本文是一篇偏向實用性而非學術...
    HoPGoldy閱讀 33,460評論 0 33
  • 版權聲明:原創(chuàng)作品,謝絕轉載!否則將追究法律責任。 前言 最近中國和印度的局勢也是愈演愈烈。作為一個愛國青年我有些...
    李偉銘MIng閱讀 2,240評論 0 5
  • k8s容器編排 [TOC] 1:k8s集群的安裝 1.1 k8s的架構 除了核心組件,還有一些推薦的Add-ons...
    Zh_bd92閱讀 992評論 0 0
  • 子午臨申地,丑未戍上行,寅申許甲子,卯酉寅(虎)上路,辰戌龍位上,已亥午上存。 吉時兇時順序:青龍(吉)明堂(吉)...
    1ed281567922閱讀 18,527評論 1 0

友情鏈接更多精彩內容