Passar por milhares desses recursos para encontrar informações exatas seria uma tarefa assustadora. Como resultado, Kubectl inclui a opção JSONPATH, o que torna a filtragem de dados nos conjuntos de big data uma brisa.
O comando kubectl interage com a API Kubernetes toda vez que você o executa. O Kube-apiserver envia uma resposta formatada por JSON. Kubectl o traduz em um formato legível pelo homem e o exibe na tela. Para tornar uma produção compreensível, muitas informações da resposta estão enterradas durante este procedimento, deixando apenas os campos relevantes visíveis. Podemos usar a opção -o ampla para obter mais, mas isso não é tudo. Existem muitos mais detalhes que não são apresentados.
Você precisará instalar o Ubuntu 20.04 No seu sistema operacional Linux para executar as instruções em Kubernetes. Além disso, você deve instalar o cluster Minikube em sua máquina para executar o Kubernetes no Linux. O Minikube oferece uma experiência extraordinariamente perfeita, permitindo que você teste comandos e aplicações de maneira metódica. Como resultado, fornece o melhor ambiente de aprendizado para os novatos de Kubernetes.
O primeiro passo é começar o cluster do Minikube. Em seguida, navegue até o terminal da linha de comando no Ubuntu 20.04, que você instalou. Você pode fazer isso pressionando a tecla Ctrl+Alt+T de atalho ou digitando “Terminal” no Ubuntu 20.04 Caixa de pesquisa do sistema. Qualquer uma das técnicas acima mencionadas lançará todo o terminal. O minikube será iniciado depois. Digite o comando "Minikube Start" no terminal para iniciar o minikube. O cluster Kubernetes será iniciado e uma máquina virtual capaz de executar um único cluster de nós será criado. Também funcionará na instalação de Kubectl. Isso também vai interagir com o cluster.
$ minikube Iniciar
Como dividir a saída de Kubectl JsonPath em linhas separadas?
Todos os programadores devem pesquisar no Google como fazer com que Kubectl produza os resultados do caminho JSON em linhas distintas o tempo todo. O comando a seguir, por exemplo, recupera o podip para cada vagem em execução em todos os namespaces. Dá -lhe algo assim como resultado. Esse é inquestionavelmente o resultado mais fácil de usar.
Você pode iterar sobre a lista com a função JSONPATH RANGE, adicionando uma nova linha após cada membro com N. Incrível! Agora podemos usar todas as ferramentas UNIX normais que atuam em novas linhas para trabalhar com a saída (e.g. classificar, xargs, uniq, etc.).
Outros caracteres de espaço em branco também podem ser usados. Suponha que queríamos imprimir os nomes/nomes de pods, bem como seus endereços IP, separados por vírgula. Às vezes é útil para produzir no jsonpath.
Exemplo de expressões Kubectl e JsonPath
JSONPATH Modelo é suportado por Kubectl. As expressões JSONPATH estão envoltas em aparelhos encaracolados no modelo JSONPATH. Kubectl emprega expressões JSONPATH para formatar o resultado com sucesso. Além disso, filtra as opções precisas no objeto JSON. A sintaxe (mencionada abaixo) é válida, além da sintaxe do JSONPATH Inventive. Você também pode considerar o exemplo abaixo mencionado para entender todos os elementos.
Como a expressão sempre começa a partir do objeto raiz por padrão, o operador $ não é necessário. A função String () é usada para imprimir o objeto de resultado.
A entrada JSON completa é mostrada nas seguintes capturas de tela.
No código a seguir, as expressões Kubectl e JsonPath são usadas para exibir a saída.
Qualquer modelo JSONPATH que use espaços deve ser fechado com duas citadas no Windows. Não deve ser escrito em uma única citação, como mostrado acima, para Bash. Como resultado, todos os literais no modelo devem estar cercados por uma única citação ou uma citação dupla escapada. Considere a seguinte parte do código.
Observação: Para a saída do JSONPATH, Kubectl não aceita expressões regulares. Você pode usar um programa como JQ se desejar combinar usando expressões regulares.
O código a seguir imprime o nome e o horário de início.
Conclusão
Este guia foi sobre Kubernetes JSON e por que eles são usados. Também passamos por exemplos detalhados de como as expressões Kubectl e JsonPath funcionam para exibir a saída específica.