3.4 KiB
title | content_type | weight |
---|---|---|
Atribuindo Recursos Estendidos a um Contêiner | task | 40 |
{{< feature-state state="stable" >}}
Esta página mostra como atribuir recursos estendidos a um Contêiner.
{{% heading "prerequisites" %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
Antes de fazer este exercício, faça o exercício em Anunciar recursos estendidos para um Nó. Isso configurará um de seus nós para anunciar um recurso de dongle.
Atribua um recurso estendido a um Pod
Para solicitar um recurso estendido, inclua o campo resources:requests
no seu
manifesto do contêiner. Recursos estendidos são totalmente qualificados
com qualquer domínio fora do *.kubernetes.io/
. Nomes de recursos estendidos válidos
tem a forma de example.com/foo
, onde example.com
é substituído pelo domínio
da sua organização e foo
é um nome descritivo de recurso.
Aqui está o arquivo de configuração para um pod que possui um contêiner:
{{% codenew file="pods/resource/extended-resource-pod.yaml" %}}
No arquivo de configuração, você pode ver que o contêiner solicita 3 dongles.
Crie um Pod:
kubectl apply -f https://k8s.io/examples/pods/resource/extended-resource-pod.yaml
Verifique se o pod está em execução:
kubectl get pod extended-resource-demo
Descreva o pod:
kubectl describe pod extended-resource-demo
A saída mostra as solicitações de dongle:
Limits:
example.com/dongle: 3
Requests:
example.com/dongle: 3
Tente criar um segundo Pod
Aqui está o arquivo de configuração para um pod que possui um contêiner. O contêiner solicita dois dongles.
{{% codenew file="pods/resource/extended-resource-pod-2.yaml" %}}
O Kubernetes não poderá satisfazer o pedido de dois dongles, porque o primeiro pod usou três dos quatro dongles disponíveis.
Tente criar um pod:
kubectl apply -f https://k8s.io/examples/pods/resource/extended-resource-pod-2.yaml
Descreva o pod:
kubectl describe pod extended-resource-demo-2
A saída mostra que o pod não pode ser agendado, porque não há nó que tenha 2 dongles disponíveis:
Conditions:
Type Status
PodScheduled False
...
Events:
...
... Warning FailedScheduling pod (extended-resource-demo-2) failed to fit in any node
fit failure summary on nodes : Insufficient example.com/dongle (1)
Veja o status do pod:
kubectl get pod extended-resource-demo-2
A saída mostra que o Pod foi criado, mas não está programado para ser executado em um nó. Tem um status de pendente:
NAME READY STATUS RESTARTS AGE
extended-resource-demo-2 0/1 Pending 0 6m
Limpeza
Exclua os Pods que você criou para este exercício:
kubectl delete pod extended-resource-demo
kubectl delete pod extended-resource-demo-2