Atualize com o operador
Você pode atualizar facilmente uma instalação existente do Astra Trident usando o operador.
Para atualizar usando o operador, as seguintes condições devem ser atendidas:
-
Você deve ter uma instalação do Astra Trident baseada em CSI. Para verificar se você está executando o CSI Trident, examine os pods no namespace do Trident. Se eles seguirem o
trident-csi-*
padrão de nomenclatura, você está executando o CSI Trident. -
Você deve ter uma instalação Trident baseada em CRD. Isso representa todas as versões do 19,07 e posteriores. Se você tiver uma instalação baseada em CSI, provavelmente terá uma instalação baseada em CRD.
-
Se tiver desinstalado o CSI Trident e os metadados da instalação persistirem, pode atualizar utilizando o operador.
-
Somente uma instalação do Astra Trident deve existir em todos os namespaces em um determinado cluster do Kubernetes.
-
Você deve estar usando um cluster do Kubernetes que executa "Uma versão compatível do Kubernetes"o .
-
Se CRDs de snapshot alfa estiverem presentes, você deve removê-los com
tridentctl obliviate alpha-snapshot-crd
. Isso exclui as CRDs para a especificação do instantâneo alfa. Para obter instantâneos existentes que devem ser excluídos/migrados, "este blog"consulte .
Ao atualizar o Trident usando o operador na Plataforma de contêiner OpenShift, você deve atualizar para o Trident 21.01.1 ou posterior. O operador Trident lançado com 21.01.0 contém um problema conhecido que foi corrigido no 21.01.1. Para obter mais detalhes, consulte "Detalhes do problema no GitHub" . |
Atualizar uma instalação de operador com escopo de cluster
Siga estes passos para atualizar a partir de Trident 21,01 e posterior.
-
Exclua o operador Trident que foi usado para instalar a instância atual do Astra Trident. Por exemplo, se você estiver atualizando do 21,01, execute o seguinte comando:
kubectl delete -f 22.01/trident-installer/deploy/BUNDLE.YAML -n trident
-
Opcionalmente, você pode editar o
TridentOrchestrator
objeto que você criou ao instalar o Trident para modificar os parâmetros de instalação. Isso pode incluir alterações, como modificar a imagem Trident personalizada, Registro de imagem privado para extrair imagens de contentor, ativar logs de depuração ou especificar segredos de recebimento de imagem. -
Instale o Astra Trident usando o arquivo YAML do pacote correto para seu ambiente e a versão do Astra Trident
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAML
de ondevXX.XX
está o número da versão (porv22.10
exemplo ) eBUNDLE.YAML
é o nome do arquivo YAML do pacote.-
Para clusters com Kubernetes 1,24 ou inferior, use "bundle_pre_1_25.yaml"o .
-
Para clusters com Kubernetes 1,25 ou superior, use "bundle_post_1_25.yaml"o .
Por exemplo, se você estiver instalando o Astra Trident 22,10 para Kubernetes 1,25, execute o seguinte comando:
kubectl create -f 22.10.0/trident-installer/deploy/bundle_post_1_25.yaml -n trident
Como parte desta etapa, o operador Trident identificará uma instalação existente do Astra Trident e atualizá-la para a mesma versão do operador.
-
Atualize uma instalação de operador com escopo de namespace
Para atualizar de uma instância do Astra Trident instalada usando o operador com escopo de namespace (versões 20,07 a 20,10), aqui está o conjunto de etapas a serem seguidas:
-
Verifique o status da instalação existente do Trident. Para fazer isso, verifique o Status de
TridentProvisioner
. O estado deve serInstalled
.kubectl describe tprov trident -n trident | grep Message: -A 3 Message: Trident installed Status: Installed Version: v20.10.1
Se o status for exibido Updating
, certifique-se de resolvê-lo antes de prosseguir. Para obter uma lista de valores de estado possíveis, "aqui"consulte . -
Crie o
TridentOrchestrator
CRD usando o manifesto fornecido com o instalador do Trident.# Download the release required [22.10.0] mkdir 22.10.0 cd 22.10.0 wget https://github.com/NetApp/trident/releases/download/v22.10.0/trident-installer-22.10.0.tar.gz tar -xf trident-installer-22.10.0.tar.gz cd trident-installer kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
Exclua o operador com escopo de namespace usando seu manifesto. Para concluir esta etapa, você precisa do arquivo YAML do pacote usado para implantar o operador com escopo de namespace
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAML
de ondevXX.XX
está o número da versão (por exemplov22.10
) eBUNDLE.YAML
é o nome do arquivo YAML do pacote.Você deve fazer as alterações necessárias nos parâmetros de instalação do Trident (por exemplo, alterando os valores para tridentImage
autosupportImage
, , repositório de imagens privado e fornecendoimagePullSecrets
) depois de excluir o operador com escopo de namespace e antes de instalar o operador com escopo de cluster. Para obter uma lista completa de parâmetros que podem ser atualizados, consulte o "opções de configuração".#Ensure you are in the right directory pwd /root/20.10.1/trident-installer #Delete the namespace-scoped operator kubectl delete -f deploy/<BUNDLE.YAML> serviceaccount "trident-operator" deleted clusterrole.rbac.authorization.k8s.io "trident-operator" deleted clusterrolebinding.rbac.authorization.k8s.io "trident-operator" deleted deployment.apps "trident-operator" deleted podsecuritypolicy.policy "tridentoperatorpods" deleted #Confirm the Trident operator was removed kubectl get all -n trident NAME READY STATUS RESTARTS AGE pod/trident-csi-68d979fb85-dsrmn 6/6 Running 12 99d pod/trident-csi-8jfhf 2/2 Running 6 105d pod/trident-csi-jtnjz 2/2 Running 6 105d pod/trident-csi-lcxvh 2/2 Running 8 105d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/trident-csi ClusterIP 10.108.174.125 <none> 34571/TCP,9220/TCP 105d NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/trident-csi 3 3 3 3 3 kubernetes.io/arch=amd64,kubernetes.io/os=linux 105d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/trident-csi 1/1 1 1 105d NAME DESIRED CURRENT READY AGE replicaset.apps/trident-csi-68d979fb85 1 1 1 105d
Nesta fase, o
trident-operator-xxxxxxxxxx-xxxxx
pod é excluído. -
(Opcional) se os parâmetros de instalação precisarem ser modificados, atualize a
TridentProvisioner
especificação. Essas alterações podem ser alterações, como modificar o Registro de imagens privadas para extrair imagens de contentor, ativar logs de depuração ou especificar segredos de recebimento de imagens.kubectl patch tprov <trident-provisioner-name> -n <trident-namespace> --type=merge -p '{"spec":{"debug":true}}'
-
Instale o operador com escopo de cluster.
A instalação do operador com escopo de cluster inicia a migração TridentProvisioner
de objetos paraTridentOrchestrator
objetos, excluiTridentProvisioner
objetos etridentprovisioner
CRD e atualiza o Astra Trident para a versão do operador com escopo de cluster que está sendo usado. No exemplo a seguir, o Trident é atualizado para 22.10.0.A atualização do Astra Trident usando o operador com escopo de cluster resulta na migração de tridentProvisioner
para umtridentOrchestrator
objeto com o mesmo nome. Este procedimento é automaticamente gerido pelo operador. A atualização também terá o Astra Trident instalado no mesmo namespace que antes.#Ensure you are in the correct directory pwd /root/22.10.0/trident-installer #Install the cluster-scoped operator in the **same namespace** kubectl create -f deploy/<BUNDLE.YAML> serviceaccount/trident-operator created clusterrole.rbac.authorization.k8s.io/trident-operator created clusterrolebinding.rbac.authorization.k8s.io/trident-operator created deployment.apps/trident-operator created podsecuritypolicy.policy/tridentoperatorpods created #All tridentProvisioners will be removed, including the CRD itself kubectl get tprov -n trident Error from server (NotFound): Unable to list "trident.netapp.io/v1, Resource=tridentprovisioners": the server could not find the requested resource (get tridentprovisioners.trident.netapp.io) #tridentProvisioners are replaced by tridentOrchestrator kubectl get torc NAME AGE trident 13s #Examine Trident pods in the namespace kubectl get pods -n trident NAME READY STATUS RESTARTS AGE trident-csi-79df798bdc-m79dc 6/6 Running 0 1m41s trident-csi-xrst8 2/2 Running 0 1m41s trident-operator-5574dbbc68-nthjv 1/1 Running 0 1m52s #Confirm Trident has been updated to the desired version kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v22.10.0
Atualize uma instalação de operador baseada em Helm
Execute as etapas a seguir para atualizar uma instalação do operador baseada em Helm.
-
Baixe o mais recente lançamento do Astra Trident.
-
Use o
helm upgrade
comando. Veja o exemplo a seguir:helm upgrade <name> trident-operator-22.10.0.tgz
onde
trident-operator-22.10.0.tgz
reflete a versão para a qual você deseja atualizar. -
Execute
helm list
para verificar se o gráfico e a versão do aplicativo foram atualizados.
Para passar dados de configuração durante a atualização, use `--set`o . |
Por exemplo, para alterar o valor padrão tridentDebug
do , execute o seguinte comando:
helm upgrade <name> trident-operator-22.10.0-custom.tgz --set tridentDebug=true
Se você executar `tridentctl logs`o , você poderá ver as mensagens de depuração.
Se você definir qualquer opção não padrão durante a instalação inicial, certifique-se de que as opções estão incluídas no comando upgrade, ou então, os valores serão redefinidos para seus padrões. |
Atualize a partir de uma instalação que não seja do operador
Se você tiver uma instância do CSI Trident que atenda aos pré-requisitos listados acima, poderá atualizar para a versão mais recente do operador Trident.
-
Baixe o mais recente lançamento do Astra Trident.
# Download the release required [22.10.0] mkdir 22.10.0 cd 22.10.0 wget https://github.com/NetApp/trident/releases/download/v22.10.0/trident-installer-22.10.0.tar.gz tar -xf trident-installer-22.10.0.tar.gz cd trident-installer
-
Crie o
tridentorchestrator
CRD a partir do manifesto.kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
Implante o operador.
#Install the cluster-scoped operator in the **same namespace** kubectl create -f deploy/<BUNDLE.YAML> serviceaccount/trident-operator created clusterrole.rbac.authorization.k8s.io/trident-operator created clusterrolebinding.rbac.authorization.k8s.io/trident-operator created deployment.apps/trident-operator created podsecuritypolicy.policy/tridentoperatorpods created #Examine the pods in the Trident namespace NAME READY STATUS RESTARTS AGE trident-csi-79df798bdc-m79dc 6/6 Running 0 150d trident-csi-xrst8 2/2 Running 0 150d trident-operator-5574dbbc68-nthjv 1/1 Running 0 1m30s
-
Crie
TridentOrchestrator
um CR para a instalação do Astra Trident.#Create a tridentOrchestrator to initate a Trident install cat deploy/crds/tridentorchestrator_cr.yaml apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident kubectl create -f deploy/crds/tridentorchestrator_cr.yaml #Examine the pods in the Trident namespace NAME READY STATUS RESTARTS AGE trident-csi-79df798bdc-m79dc 6/6 Running 0 1m trident-csi-xrst8 2/2 Running 0 1m trident-operator-5574dbbc68-nthjv 1/1 Running 0 5m41s #Confirm Trident was upgraded to the desired version kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v22.10.0
Os backends e PVCs existentes estão disponíveis automaticamente.