K8s任務 列出集群中所有執行容器的映象

2022-09-07 12:15:11 字數 1336 閱讀 5924

使用 kubectl get pods --all-namespaces 獲取所有命名空間下的所有 pod

使用 -o jsonpath= 來格式化輸出,以僅包含容器映象名稱。 這將以遞迴方式從返回的 json 中解析出 image 字段。

參閱 jsonpath 說明 獲取更多關於如何使用 jsonpath 的資訊。

使用標準化工具來格式化輸出:tr, sort, uniq

使用 tr 以用換行符替換空格

使用 sort 來對結果進行排序

使用 uniq 來聚合映象計數

kubectl get pods --all-namespaces -o jsonpath="" |\

tr -s '[[:space:]]' '\n' |\

sort |\

uniq -c

上面的命令將遞迴獲取所有返回專案的名為 image 的字段。

作為替代方案,可以使用 pod 的映象欄位的絕對路徑。這確保即使欄位名稱重複的情況下也能檢索到正確的字段,例如,特定專案中的許多欄位都稱為 name:

kubectl get pods --all-namespaces -o jsonpath=""
jsonpath 解釋如下:

.items[*]: 對於每個返回的值

.spec: 獲取 spec

.containers[*]: 對於每個容器

.image: 獲取映象

說明: 按名字獲取單個 pod 時,例如 kubectl get pod nginx,路徑的 .items[*] 部分應該省略, 因為返回的是乙個 pod 而不是乙個專案列表。

可以使用 range 操作進一步控制格式化,以單獨操作每個元素。

kubectl get pods --all-namespaces -o=jsonpath='' |\

sort

要獲取匹配特定命名空間的 pod,請使用 namespace 引數。以下僅匹配 kube-system 命名空間下的 pod。

kubectl get pods --namespace kube-system -o jsonpath=""
作為 jsonpath 的替代,kubectl 支援使用 go-templates 來格式化輸出:

kubectl get pods --all-namespaces -o go-template --template="}}} }}"

k8s 集群概念

kubernetes是google開源的容器集群管理系統,提 用部署 維護 擴充套件機制等功能,利用kubernetes能方便管理跨集群執行容器化的應用,簡稱 k8s k與s之間有8個字母 二 基本概念 pod 若干相關容器的組合,pod包含的容器執行在同一host上,這些容器使用相同的網路命令空間...

K8S 集群安裝

1 作業系統 centos 7.4 2 主機資訊 k8smaster主機 kb master 001 192.168 0.11 kb master 002 192.168 0.12 kb master 003 192.168 0.13 k8snode主機 kb node 001 192.168 0....

K8S集群安裝

node設定 部署k8s的dashboard 本文記錄在centoos7上安裝k8s集群。環境配置 master 10.192.33.249 node1 10.192.33.248 兩台機器均已安裝docker18.06,沒有配置docker的registry,且都已經配置為自啟動 timedate...