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.