|
| 1 | +--- |
| 2 | +title: Listar todas as imagens de contêiner em execução no cluster |
| 3 | +content_type: task |
| 4 | +weight: 100 |
| 5 | +--- |
| 6 | + |
| 7 | +<!-- overview --> |
| 8 | + |
| 9 | +Esta página mostra como usar o kubectl para listar todas as imagens de |
| 10 | +contêineres dos Pods em execução no cluster. |
| 11 | + |
| 12 | +## {{% heading "prerequisites" %}} |
| 13 | + |
| 14 | +{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} |
| 15 | + |
| 16 | +<!-- steps --> |
| 17 | + |
| 18 | +Neste exercício, você usará o kubectl para buscar todos os Pods |
| 19 | +em execução no cluster e formatar a saída com uma lista dos contêineres |
| 20 | +por imagem. |
| 21 | + |
| 22 | +## Listar todas as imagens de contêiner de todos os namespaces |
| 23 | + |
| 24 | +- Busque todos os Pods em todos os namespaces usando `kubectl get pods --all-namespaces` |
| 25 | +- Formate a saída incluindo apenas a lista de nomes das imagens de contêiner |
| 26 | + usando `-o jsonpath={.items[*].spec['initContainers', 'containers'][*].image}`. |
| 27 | + Isso irá analisar recursivamente o campo `image` do JSON retornado. |
| 28 | + - Consulte a [referência de jsonpath](/docs/reference/kubectl/jsonpath/) |
| 29 | + para obter mais informações sobre como usar o jsonpath. |
| 30 | +- Formate a saída usando as ferramentas: `tr`, `sort`, `uniq` |
| 31 | + - Use `tr` para substituir espaços por quebras de linha |
| 32 | + - Use `sort` para ordenar os resultados |
| 33 | + - Use `uniq` para agregar a contagem de imagens |
| 34 | + |
| 35 | +```shell |
| 36 | +kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec['initContainers', 'containers'][*].image}" |\ |
| 37 | +tr -s '[[:space:]]' '\n' |\ |
| 38 | +sort |\ |
| 39 | +uniq -c |
| 40 | +``` |
| 41 | +O jsonpath é interpretado da seguinte forma: |
| 42 | + |
| 43 | +- `.items[*]`: para cada valor retornado |
| 44 | +- `.spec`: coleta a especificação do recurso informado |
| 45 | +- `['initContainers', 'containers'][*]`: para cada contêiner |
| 46 | +- `.image`: coleta o nome da imagem |
| 47 | + |
| 48 | +{{< note >}} |
| 49 | +Quando você busca um único Pod pelo nome, por exemplo `kubectl get pod nginx`, |
| 50 | +a parte `.items[*]` do caminho deve ser omitida porque um único Pod é retornado |
| 51 | +e não uma lista de itens. |
| 52 | +{{< /note >}} |
| 53 | + |
| 54 | +## Listar imagens de contêiner por Pod |
| 55 | + |
| 56 | +O formato de saída pode ser controlado ainda mais usando a operação `range` para |
| 57 | +iterar sobre os elementos individualmente. |
| 58 | + |
| 59 | +```shell |
| 60 | +kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\ |
| 61 | +sort |
| 62 | +``` |
| 63 | + |
| 64 | +## Listar imagens de contêiner filtrando pelo label do Pod |
| 65 | + |
| 66 | +Para selecionar apenas os Pods que correspondem a um label específico, use a flag -l. |
| 67 | +O comando a seguir seleciona apenas os Pods com o label `app=nginx`. |
| 68 | + |
| 69 | +```shell |
| 70 | +kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" -l app=nginx |
| 71 | +``` |
| 72 | + |
| 73 | +## Listar imagens de contêiner filtrando pelo namespace do Pod |
| 74 | + |
| 75 | +Para selecionar apenas os Pods de um namespace específico, use a flag namespace. |
| 76 | +O comando a seguir seleciona apenas os Pods no namespace `kube-system`. |
| 77 | + |
| 78 | +```shell |
| 79 | +kubectl get pods --namespace kube-system -o jsonpath="{.items[*].spec.containers[*].image}" |
| 80 | +``` |
| 81 | + |
| 82 | +## Listar imagens de contêiner usando go-template ao invés de jsonpath |
| 83 | + |
| 84 | +Como alternativa ao jsonpath, o kubectl suporta o uso de [go-templates](https://pkg.go.dev/text/template) |
| 85 | +para formatar a saída: |
| 86 | + |
| 87 | +```shell |
| 88 | +kubectl get pods --all-namespaces -o go-template --template="{{range .items}}{{range .spec.containers}}{{.image}} {{end}}{{end}}" |
| 89 | +``` |
| 90 | + |
| 91 | +## {{% heading "whatsnext" %}} |
| 92 | + |
| 93 | +### Referência |
| 94 | + |
| 95 | +* Guia de referência de [Jsonpath](/docs/reference/kubectl/jsonpath/) |
| 96 | +* Guia de referência de [Go template](https://pkg.go.dev/text/template) |
0 commit comments