|
| 1 | +--- |
| 2 | +title: Deletar um StatefulSet |
| 3 | +content_type: task |
| 4 | +weight: 60 |
| 5 | +--- |
| 6 | + |
| 7 | +<!-- overview --> |
| 8 | + |
| 9 | +Esta tarefa mostra como deletar um {{< glossary_tooltip term_id="StatefulSet" >}}. |
| 10 | + |
| 11 | +## {{% heading "prerequisites" %}} |
| 12 | + |
| 13 | +- Esta tarefa assume que você tem uma aplicação em execução no seu cluster representada por um StatefulSet. |
| 14 | + |
| 15 | +<!-- steps --> |
| 16 | + |
| 17 | +## Deletando um StatefulSet |
| 18 | + |
| 19 | +Você pode deletar um StatefulSet da mesma forma que deleta outros recursos no Kubernetes: |
| 20 | +use o comando `kubectl delete` e especifique o StatefulSet pelo arquivo ou pelo nome. |
| 21 | + |
| 22 | +```shell |
| 23 | +kubectl delete -f <file.yaml> |
| 24 | +``` |
| 25 | + |
| 26 | +```shell |
| 27 | +kubectl delete statefulsets <statefulset-name> |
| 28 | +``` |
| 29 | + |
| 30 | +Pode ser necessário deletar o serviço headless associado separadamente após o próprio StatefulSet ser deletado. |
| 31 | + |
| 32 | +```shell |
| 33 | +kubectl delete service <service-name> |
| 34 | +``` |
| 35 | + |
| 36 | +Ao deletar um StatefulSet usando o `kubectl`, o StatefulSet é escalonado para 0. |
| 37 | +Todos os Pods que fazem parte dessa carga de trabalho também são deletados. |
| 38 | +Se você quiser deletar apenas o StatefulSet e não os Pods, use `--cascade=orphan`. Por exemplo: |
| 39 | + |
| 40 | +```shell |
| 41 | +kubectl delete -f <file.yaml> --cascade=orphan |
| 42 | +``` |
| 43 | + |
| 44 | +Ao passar `--cascade=orphan` para o `kubectl delete`, os Pods gerenciados pelo StatefulSet permanecem mesmo após o objeto StatefulSet ser deletado. |
| 45 | +Se os Pods tiverem o rótulo `app.kubernetes.io/name=MyApp`, você pode deletá-los da seguinte forma: |
| 46 | + |
| 47 | +```shell |
| 48 | +kubectl delete pods -l app.kubernetes.io/name=MyApp |
| 49 | +``` |
| 50 | + |
| 51 | +### Volumes Persistentes |
| 52 | + |
| 53 | +Deletar os Pods em um StatefulSet não deleta os volumes associados. |
| 54 | +Isso garante que você tenha a chance de copiar os dados do volume antes de deletá-lo. |
| 55 | +Deletar o PVC após os pods terem sido finalizados pode acionar a exclusão dos Volumes Persistentes de suporte, dependendo da classe de |
| 56 | +armazenamento e da política de retenção. |
| 57 | +Você nunca deve assumir que será possível acessar um volume após a exclusão da requisição (claim). |
| 58 | + |
| 59 | +{{< note >}} |
| 60 | +Tenha cautela ao deletar um PVC, pois isso pode levar à perda de dados. |
| 61 | +{{< /note >}} |
| 62 | + |
| 63 | +### Exclusão completa de um StatefulSet |
| 64 | + |
| 65 | +Para deletar tudo em um StatefulSet, incluindo os pods associados, |
| 66 | +você pode executar uma série de comandos semelhantes aos seguintes: |
| 67 | + |
| 68 | +```shell |
| 69 | +grace=$(kubectl get pods <stateful-set-pod> --template '{{.spec.terminationGracePeriodSeconds}}') |
| 70 | +kubectl delete statefulset -l app.kubernetes.io/name=MyApp |
| 71 | +sleep $grace |
| 72 | +kubectl delete pvc -l app.kubernetes.io/name=MyApp |
| 73 | + |
| 74 | +``` |
| 75 | + |
| 76 | +No exemplo acima, os Pods possuem o rótulo `app.kubernetes.io/name=MyApp`; |
| 77 | +substitua pelo seu próprio rótulo, conforme apropriado. |
| 78 | + |
| 79 | +### Forçar a exclusão de pods de um StatefulSet |
| 80 | + |
| 81 | +Se você perceber que alguns pods no seu StatefulSet estão presos nos estados 'Terminating' ou 'Unknown' por um longo período de tempo, pode ser |
| 82 | +necessário intervir manualmente para forçar a exclusão dos pods do servidor de API. |
| 83 | +Esta é uma tarefa potencialmente perigosa. Consulte [Forçar a exclusão de pods de um StatefulSet](/docs/tasks/run-application/force-delete-stateful-set-pod/) para mais detalhes. |
| 84 | + |
| 85 | +## {{% heading "whatsnext" %}} |
| 86 | + |
| 87 | +Saiba mais sobre [como forçar a exclusão de pods de um StatefulSet](/docs/tasks/run-application/force-delete-stateful-set-pod/). |
0 commit comments