Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Section
Painel
titleProblemas durante a Atualização

Caso seja preciso, é possível parar a atualização dos jobs, deletando-os diretamente no cluster (# kubectl -n c2a7dv cNamespace delete job <<nome do job>> ). Porém, ao executar este processo deverá ser avaliado o que o mesmo executará. Um exemplo é o caso do “migration” (upddistr), ao deletar este job deveremos realizar a geração dos flags de controle de execução dos pods (# touch /volume/flags/<<filename>>). Além disto, temos que garantir que os demais processos foram executados.

Caso durante o processo de atualização, quebre o UPDDISTR. Devemos entrar no volume do ambiente e verificar o erro gerado dentro do UPDDISTR.LOG que fica na pasta /volume/logs.

Neste momento temos algumas ações:

  • Se o problema for de usuário e senha. Basta reiniciar o pod do upddistr para reiniciar o processo. Isto ocorre devido a falta de conectividade com o HLCLOUD. Caso seja preciso, acionar o time de FRAMEWORK para avaliar o HLCLOUD.
  • Se o problema for na criação de campos/índices disponibilizados recentemente. Recomendo abortar o processo e identificar o módulo responsável pelo campo para ajustar no ATUSX. INFORMAR o time de GCAD sobre o erro.
  • Se o problema for em campos/índices já existentes, direcionar a ocorrência para o time de banco de dados da engenharia avaliar. Neste caso, recomendo abortar a atualização até o ajuste do banco pelo time.
  • Se for processos de infraestrutura, devemos atuar pontualmente e reiniciar o processo.
  • Se o problema for em algum RUP, temos duas opções. 
    • Alterar o deployment do cronjob de migrator e adicionar o sleeper no command (# kubectl -n c2a7dv edit cj protheus-updater)
    • Copiar o novo RPO para dentro do pod do cronjob (# kubectl -n c2a7dv cp tttm120.rpo c2a7dv/protheus-updater-xxxxx:protheus/apo/tttm120.rpo)
    • Executar o init-upddistr diretamente dentro do pod(# init-upddistr)
    • Retirar o rup do RPO e executar o processo na mão 
    • Abortar o processo e fazer o rollback no banco de dados.

Para todos os casos citados acima, recomendo realizar todo o troubleshoot antes de acionar os times responsáveis por cada artefato.

Para todos os casos que envolvem rollback de dados, : coletar os logs de erro, realizar o processo citado no item Restore de dados e enviar os logs para o time de gestão de dados.

Caso o problema identificado seja na atualização do HELM:

Falta de imagem, falta de recurso ou quaisquer problemas de infra, realizar a análise do motivo do erro estar ocorrendo. Nesta situação temos a possibilidade de executar o helm upgrade na mão. Basta alterar o ns, informando a versão desejada (UpdateDesiredVersion) e criar o job de atualização na mão.

Expandir
titleRealizando o rollback via HELM

0. Somente se o job travou e não deu backofflime: kubectl -n cNAMESPACE delete job --all --force --grace-period=0
1. helm history cNAMESPACE -n cNAMESPACE 
2. Anotar a ultima versão que esta com o status de deployed (n###)
3. Executar o rollback no ambiente: helm rollback cNAMESPACE (n###)
4. Deletar todos os pods do namespace para não dar conflito de rede.

Expandir
titleRealizando o rollback manualmente (Via secrets)

1. Executar o comando: kubectl -n cNAMESPACE get secrets
2. Localizar a ultima secret criada com o nome de helm e o namespace (sh.helm.release.v1.cNAMESPACE)
3. Excluir o ultimo secret gerado
4. Reexecutar o helm upgrade no ambiente. Neste caso, com o processo de atualização do chart, as rotinas de atualização irão atualizar as labels de status e baseVersion no namespace.

Aviso
titleIMPORTANTE: Arrumar as labels do ambiente após manutenção

1. Editar o namespace e deixar o desiredVersion igual ao baseVersion
    kubectl edit ns cNAMESPACE 
2. Atualizar o status do ambiente com o seguinte comando:
    kubectl -n cNAMESPACE patch configmap protheus-updater-config -p '{"data":{"UPDATER_STATUS":"OK" }}'
3. Liberar o uso do ambiente


Painel
titleBackup de dados

Processo de backup do ambiente ocorrerá todos os dias, a partir das 21 horas. 

Os dados ficarão salvos dentro do volume do cluster e copiado as 06 horas da manhã para o rubrick e/ou GCP.

Painel
titleRestore de Dados

Para realizar o restore, basta entrar de forma exclusiva no pod do dbaccess e dropar o database produção/homologação.

Ao término do drop database, basta reiniciar o pod do dbaccess que o próprio componente irá se certificar de restaurar os dados com o último backup. Caso precise fazer o processo manual, basta seguir o roteiro descrito no link: Ferramentas - Tools#07

Painel
titleResponsabilidades
  • Disponibilização dos artefatos para a geração das imagens:
    • RPO e Dicionários: GCAD
    • Binários (appserver, dbaccess, lockserver): Tecnologia
    • LicenseServer: Framework
  • Manutenção dos robôs: SmartSRE, Devops Protheus
  • Geração das imagens: SmartSRE, Devops Cloud
  • Geração do chart: SmartSRE, Devops Cloud
  • Atualização do ambiente: SmartSRE, Devops Cloud
  • Manutenção do banco de dados: DBAs Engenharia/Cloud e SmartSRE
  • Manutenção dos dados via configurador: Cliente
  • Coleta de logs do ambiente: Cliente e SmartSRE
  • Manutenção nos inis do ambiente: Cliente, Devops Cloud