Compartilhar via


Criar um StatefulSet

Aplica-se ao: AKS no Azure Local 22H2, AKS no Windows Server

Este artigo descreve como criar, atualizar e excluir StatefulSets, que são usados para manter o estado de um aplicativo além do ciclo de vida de um pod em uma implantação do AKS no AKS habilitado pelo Azure Arc.

Visão geral de StatefulSets

StatefulSets mantém o estado de aplicativos além do ciclo de vida um pod individual, como o armazenamento. Assim como as implantações, um StatefulSet cria e gerencia pelo menos um pod idêntico com identidades exclusivas e persistentes e nomes de host estáveis. As réplicas em um StatefulSet seguem uma abordagem sequencial para implantação, dimensionamento e atualização.

Um StatefulSet é útil para aplicativos que exigem identificadores estáveis e exclusivos, armazenamento persistente, uma implantação ordenada e dimensionamento. Exemplos desses aplicativos incluem MySQL, MongoDB, Kafka e Cassandra. Aplicativos sem estado, como Apache e Tomcat, não estão preocupados com a rede que estão usando e não exigem armazenamento persistente.

Os principais componentes de StatefulSets são o provisionador de volume persistente e o serviço sem periféricos. Para mais informações, confira StatefulSets.

Como criar um StatefulSet

Você pode criar um StatefulSet usando o kubectl create comando ou .kubectl apply Por exemplo:

kubectl create –f statefulset.yaml

No mesmo arquivo YAML de manifesto, você também pode criar o serviço headless que o StatefulSet usa.

Para exibir os componentes que você criou para seu StatefulSet, execute o seguinte comando:

kubectl get statefulset

Se você quiser exibir volumes persistentes, execute kubectl get pv. Para exibir uma declaração de volume persistente, execute kubectl get pvc.

Atualizar StatefulSets

Para atualizar um StatefulSet, edite o arquivo de manifesto e execute o mesmo comando usado ao criar o StatefulSet: kubectl apply –f statefulset.yaml.

Você pode usar uma atualização OnDelete ou uma atualização contínua como estratégia de atualização:

  • Com uma atualização OnDelete, os pods não são substituídos quando você aplica o manifesto, mas você deve excluir manualmente os pods StatefulSet existentes antes que a nova versão seja criada.
  • Em uma atualização sem interrupção, os pods StatefulSet são removidos e substituídos na ordem ordinal inversa quando você aplica o manifesto.

Excluir um StatefulSet

Use o kubectl delete comando para excluir um StatefulSet e excluir o serviço headless separadamente. Para excluir o StatefulSet, execute o seguinte comando:

kubectl delete statefulset <statefulset_NAME>

Em seguida, para excluir o serviço headless, execute o seguinte comando:

kubectl delete service <svc_NAME>

Para excluir o volume persistente e a declaração de volume persistente, use os kubectl delete pv comandos e kubectl delete pvc , respectivamente. Para evitar a perda de dados, o volume persistente e a declaração de volume persistente não são excluídos quando um StatefulSet é excluído.

Próximas etapas