Gerenciar o Armazenamento Efêmero no Kubernetes
Os pods do Kubernetes exigem armazenamento local efêmero (temporário).
Os pods do Kubernetes usam armazenamento efêmero para espaço livre, armazenamento em cache e logs. Esse armazenamento é temporário e específico do ciclo de vida do pod. O armazenamento efêmero não é compartilhado entre pods e desaparece quando o pod é excluído.
Para obter mais informações gerais sobre armazenamento efêmero do Kubernetes, consulte Armazenamento efêmero local na documentação do Kubernetes.
As etapas a seguir se aplicam ao Oracle Kubernetes Engine, mas os conceitos são semelhantes em outros ambientes Kubernetes.
Em um pool de nós, os nós usam seus volumes de inicialização para o armazenamento de pods. Como as imagens são armazenadas no diretório /var, a maior parte do armazenamento efêmero é ocupada por imagens na partição raiz. O espaço necessário no volume de inicialização aumenta toda vez que você instala uma instância do Oracle Blockchain Platform Enterprise Edition e cria chaincodes nesse nó.
kubectl get --raw "/api/v1/nodes/<node IP>/proxy/stats/summary"As seções rootfs e fs do resultado do JSON mostram a capacidade e os bytes disponíveis.
Você pode atualizar o volume de armazenamento efêmero redimensionando o volume de inicialização enquanto um nó está em execução. Para obter mais informações, consulte Atualizando um Pool de Nós do Oracle Kubernetes Engine.
- No cluster do Oracle Kubernetes Engine, em Recursos, selecione Pools de nós.
- Clique emEditar. Na página Editar pool de nós, selecione Especificar um tamanho de volume de inicialização personalizado e informe um valor de Tamanho do volume de inicialização em GB. Todos os nós criados usarão esse valor para armazenamento efêmero.
- Para cada nó de trabalho no pool de nós, execute as etapas a seguir para redimensionar o volume de inicialização.
- Clique na seta para baixo ao lado do nó para ver informações detalhadas sobre o nó.
- Navegue até o Volume de inicialização do nó e clique em Editar.
- Na página Editar volume em Tamanho e desempenho do volume, especifique um valor de Tamanho do volume em GB e clique em Salvar alterações.
- Execute as etapas a seguir para configurar uma sessão do Bastion e depois usá-la para estabelecer conexão com os nós de trabalho privados.
- Na página detalhes da instância, clique na guia Oracle Cloud Agent e ative o plug-in Bastion.
- Procure o bastion na barra de pesquisa e clique em Bastion Identity & Security em Services nos resultados.
- Clique em Criar bastion.
- Na página Criar bastion, para a Rede virtual na nuvem de destino (VCN), especifique a VCN do Oracle Kubernetes Engine seguida pelo nome do cluster. Para Sub-rede de destino, especifique o ponto final da API do Kubernetes. Para a lista de permissões do bloco CIDR, digite 0.0.0.0/0 e clique em Criar bastion.
- Clique no bastion para abri-lo e, em seguida, clique em Create session.
- Informe opc para o valor Nome do Usuário e selecione seu nó na lista Instância do serviço Compute.
- Cole sua chave SSH em Adicionar Chave SSH.
- Clique em Mostrar opções avançadas e selecione o endereço IP do nó ou da instância na lista Endereço IP da instância de computação de destino. Este é o endereço IPv4 privado do nó ou da instância, que está disponível na seção de informações da instância.
- Clique em Criar sessão.
- No menu de contexto da sessão, clique em Copiar comando SSH.
- Agora você pode fazer log-in no nó via SSH fornecendo à sua chave privada o parâmetro -i no comando SSH.
- Repita as etapas anteriores para cada nó de trabalho no cluster.
- Para cada nó, faça log-in no nó via SSH e, em seguida, execute os comandos a seguir, que verificam novos dispositivos de armazenamento em blocos adicionados a instâncias ou nós e, em seguida, expandem o sistema de arquivos quando o armazenamento estiver disponível.
sudo dd iflag=direct if=/dev/oracleoci/oraclevda of=/dev/null count=1 echo "1" | sudo tee /sys/class/block/`readlink /dev/oracleoci/oraclevda | cut -d'/' -f 2`/device/rescan sudo /usr/libexec/oci-growfs -y
Determinando o Uso do Armazenamento Efêmero
Você pode executar o script a seguir para ver o uso do armazenamento efêmero de uma instância em execução no Oracle Kubernetes Engine. O script usa a API do Kubernetes para recuperar o uso de armazenamento efêmero para cada pod que está sendo executado em cada nó do cluster.
#!/usr/bin/env bash
kubectl proxy --append-server-path &
set -eo pipefail
{
echo "NODE NAMESPACE POD EPHEMRAL_USED"
for node in $(kubectl get nodes -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do
curl -fsSL "http://127.0.0.1:8001/api/v1/nodes/$node/proxy/stats/summary" |
yq '.pods[] | [.podRef.namespace, .podRef.name, .ephemeral-storage.usedBytes] | join(" ")' |
while read -r namespace name usedBytes; do
# A pod might have no running containers and consequently no ephemeral-storage usage.
echo "$node" "$namespace" "$name" "$(numfmt --to iec "${usedBytes:-0}")"
done
done | sort -k4,4rh
} | column -t