|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Solução de problemas de upgrade
Para uma visão geral do ciclo de vida do upgrade e dos componentes, consulte o documento relacionado.
Lado do Rancher
Neste exemplo, atualizamos os nós do cluster com a seguinte definição de ManagedOSImage:
apiVersion: elemental.cattle.io/v1beta1
kind: ManagedOSImage
metadata:
name: my-upgrade
namespace: fleet-default
spec:
# Set to the new {elemental-product-name} version you would like to upgrade to or track the latest tag
osImage: "registry.suse.com/rancher/sle-micro/5.5:latest"
clusterTargets:
- clusterName: my-cluster
Uma vez que o ManagedOSImage é aplicado, o elemental-operator irá verificá-lo e gerar um Bundle relacionado.
O nome do Bundle será prefixado com mos e, em seguida, o nome do ManagedOSImage. Neste caso mos-my-upgrade.
Na definição do Bundle, você encontrará os detalhes sobre o plano de upgrade e o alvo desejado.
Por exemplo:
kubectl -n fleet-default get bundle mos-my-upgrade -o yaml
Clique aqui para ver os detalhes
apiVersion: fleet.cattle.io/v1alpha1
kind: Bundle
metadata:
creationTimestamp: "2023-06-16T09:01:47Z"
generation: 1
name: mos-my-upgrade
namespace: fleet-default
ownerReferences:
- apiVersion: elemental.cattle.io/v1beta1
controller: true
kind: ManagedOSImage
name: my-upgrade
uid: e468ed21-23bb-487a-a022-dbc7ef753720
resourceVersion: "1038645"
uid: 35e83fc4-28c8-4b10-8059-cae6cdff2cda
spec:
resources:
- content: '{"kind":"ClusterRole","apiVersion":"rbac.authorization.k8s.io/v1","metadata":{"name":"os-upgrader-my-upgrade","creationTimestamp":null},"rules":[{"verbs":["update","get","list","watch","patch"],"apiGroups":[""],"resources":["nodes"]},{"verbs":["list"],"apiGroups":[""],"resources":["pods"]}]}'
name: ClusterRole--os-upgrader-my-upgrade-296a3abf3451.yaml
- content: '{"kind":"ClusterRoleBinding","apiVersion":"rbac.authorization.k8s.io/v1","metadata":{"name":"os-upgrader-my-upgrade","creationTimestamp":null},"subjects":[{"kind":"ServiceAccount","name":"os-upgrader-my-upgrade","namespace":"cattle-system"}],"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"os-upgrader-my-upgrade"}}'
name: ClusterRoleBinding--os-upgrader-my-upgrade-f63eaecde935.yaml
- content: '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"os-upgrader-my-upgrade","namespace":"cattle-system","creationTimestamp":null}}'
name: ServiceAccount-cattle-system-os-upgrader-my-upgrade-ce93d-01096.yaml
- content: '{"kind":"Secret","apiVersion":"v1","metadata":{"name":"os-upgrader-my-upgrade","namespace":"cattle-system","creationTimestamp":null},"data":{"cloud-config":""}}'
name: Secret-cattle-system-os-upgrader-my-upgrade-a997ee6a67ef.yaml
- content: '{"kind":"Plan","apiVersion":"upgrade.cattle.io/v1","metadata":{"name":"os-upgrader-my-upgrade","namespace":"cattle-system","creationTimestamp":null},"spec":{"concurrency":1,"nodeSelector":{},"serviceAccountName":"os-upgrader-my-upgrade","version":"latest","secrets":[{"name":"os-upgrader-my-upgrade","path":"/run/data"}],"tolerations":[{"operator":"Exists"}],"cordon":true,"upgrade":{"image":"registry.suse.com/suse/sle-micro/5.5","command":["/usr/sbin/suc-upgrade"]}},"status":{}}'
name: Plan-cattle-system-os-upgrader-my-upgrade-273c2c09afca.yaml
targets:
- clusterName: my-cluster
.
.
.
SUSE® Rancher Prime: OS Manager Lado do Cluster
Qualquer nó SUSE® Rancher Prime: OS Manager corretamente registrado e parte do cluster alvo irá buscar o pacote e começar a aplicá-lo.
Esta operação é realizada pelo system-upgrade-controller do Rancher que está rodando no SUSE® Rancher Prime: OS Manager Cluster.
Para monitorar o funcionamento correto deste controlador, você pode ler seus logs:
kubectl -n cattle-system logs deployment/system-upgrade-controller
Se tudo estiver correto, o system-upgrade-controller irá criar um Plano de upgrade no cluster:
kubectl -n cattle-system get plans
Para cada plano, o controlador irá orquestrar os trabalhos que o aplicarão em cada nó alvo.
Os nomes dos trabalhos usarão o nome do plano (os-upgrader-my-upgrade) e o nome do host da máquina alvo (my-host) para fácil descoberta.
Por exemplo: apply-os-upgrader-my-upgrade-on-my-host-7a25e
Você pode monitorar esses trabalhos com:
kubectl -n cattle-system get jobs
Cada trabalho usará um contêiner privileged: true com a imagem SLE Micro especificada na definição ManagedOSImage. Este contêiner tentará fazer upgrade no sistema e realizar uma reinicialização.
Se o trabalho falhar, você pode verificar seu status examinando os logs:
kubectl -n cattle-system logs job.batch/apply-os-upgrader-my-upgrade-on-my-host-7a25e
|
Processo de trabalho em duas etapas
Observe que o processo de upgrade é realizado em duas etapas.
|
Recuperação de falhas
É possível que o processo de upgrade do ManagedOSImage falhe, deixando um ou mais nós em estado de falha. Por exemplo, se a imagem a ser atualizada não for encontrada no registro ou estiver de outra forma corrompida, o trabalho de upgrade em execução nos clusters downstream não terá sucesso.
Quando esse for o caso, os nós que executam o trabalho de upgrade com falha permanecerão cordonados. Você pode atualizar o ManagedOSImage com um osImage funcional, ou alternativamente excluí-lo para parar qualquer nova tentativa de upgrade. Em qualquer caso, para restaurá-los e também poder agendar atualizações futuras, os nós afetados precisam ser descordonados manualmente.