Atualizar o Astra Control Center
Para atualizar o Astra Control Center, faça o download do pacote de instalação no site de suporte da NetApp e siga estas instruções para atualizar os componentes do Astra Control Center em seu ambiente. Você pode usar este procedimento para atualizar o Astra Control Center em ambientes conetados à Internet ou com conexão via rede.
-
Certifique-se de que todos os operadores de cluster estão em um estado saudável e disponíveis.
kubectl get clusteroperators
-
Certifique-se de que todos os serviços de API estejam em um estado saudável e disponíveis.
kubectl get apiservices
-
Saia do seu Astra Control Center.
O processo de atualização do Astra Control Center orienta você pelas seguintes etapas de alto nível:
Não execute o seguinte comando durante todo o processo de atualização para evitar a exclusão de todos os pods do Astra Control Center: kubectl delete -f astra_control_center_operator_deploy.yaml
|
Faça atualizações em uma janela de manutenção quando programações, backups e snapshots não estiverem sendo executados. |
Os comandos do Podman podem ser usados no lugar dos comandos do Docker se você estiver usando o Podman do Red Hat em vez do Docker Engine. |
Faça o download do pacote Astra Control Center
-
Faça o download do pacote de atualização do Astra Control Center (
astra-control-center-[version].tar.gz
) a partir do https:mysupport.NetApp.com/site/products/all/details/astra-control-center/downloads-tab[NetApp Support Site]. -
(Opcional) Use o seguinte comando para verificar a assinatura do pacote:
openssl dgst -sha256 -verify AstraControlCenter-public.pub -signature astra-control-center-[version].tar.gz.sig astra-control-center-[version].tar.gz
Desembale o pacote e mude o diretório
-
Extraia as imagens:
tar -vxzf astra-control-center-[version].tar.gz
Adicione as imagens ao seu registo local
-
Complete a sequência de passos adequada para o seu motor de contentores:
-
Mude para o diretório Astra:
cd acc
-
empurre as imagens do pacote no diretório de imagens do Astra Control Center para o seu Registro local. Faça as seguintes substituições antes de executar o comando:
-
Substitua BUNDLE_FILE pelo nome do arquivo de pacote Astra Control (por exemplo,
acc.manifest.yaml
). -
Substitua my_REGISTRY pela URL do repositório Docker.
-
Substitua my_REGISTRY_USER pelo nome de usuário.
-
Substitua my_REGISTRY_TOKEN por um token autorizado para o Registro.
kubectl astra packages push-images -m BUNDLE_FILE -r MY_REGISTRY -u MY_REGISTRY_USER -p MY_REGISTRY_TOKEN
-
-
Inicie sessão no seu registo:
podman login [your_registry_path]
-
Execute o script a seguir, fazendo a substituição do <YOUR_REGISTRY> conforme observado nos comentários:
# You need to be at the root of the tarball. # You should see these files to confirm correct location: # acc.manifest.yaml # acc/ # Replace <YOUR_REGISTRY> with your own registry (e.g registry.customer.com or registry.customer.com/testing, etc..) export REGISTRY=<YOUR_REGISTRY> export PACKAGENAME=acc export PACKAGEVERSION=22.08.1-26 export DIRECTORYNAME=acc for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do # Load to local cache astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image(s): //') # Remove path and keep imageName. astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::') # Tag with local image repo. podman tag ${astraImage} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} # Push to the local repo. podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} done
Instale o operador Astra Control Center atualizado
-
Altere o diretório:
cd manifests
-
Edite a implantação do operador Astra Control Center yaml ) (`astra_control_center_operator_deploy.yaml`para consultar o Registro local e o segredo.
vim astra_control_center_operator_deploy.yaml
-
Se você usar um Registro que requer autenticação, substitua a linha padrão de
imagePullSecrets: []
pelo seguinte:imagePullSecrets: - name: <name_of_secret_with_creds_to_local_registry>
-
Altere
[your_registry_path]
para akube-rbac-proxy
imagem para o caminho do registo onde as imagens foram empurradas para um passo anterior. -
Altere
[your_registry_path]
para aacc-operator-controller-manager
imagem para o caminho do registo onde as imagens foram empurradas para um passo anterior. -
Adicione os seguintes valores à
env
seção:- name: ACCOP_HELM_UPGRADETIMEOUT value: 300m
apiVersion: apps/v1 kind: Deployment metadata: labels: control-plane: controller-manager name: acc-operator-controller-manager namespace: netapp-acc-operator spec: replicas: 1 selector: matchLabels: control-plane: controller-manager template: metadata: labels: control-plane: controller-manager spec: containers: - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=10 image: [your_registry_path]/kube-rbac-proxy:v4.8.0 name: kube-rbac-proxy ports: - containerPort: 8443 name: https - args: - --health-probe-bind-address=:8081 - --metrics-bind-address=127.0.0.1:8080 - --leader-elect command: - /manager env: - name: ACCOP_LOG_LEVEL value: "2" - name: ACCOP_HELM_UPGRADETIMEOUT value: 300m image: [your_registry_path]/acc-operator:[version x.y.z] imagePullPolicy: IfNotPresent imagePullSecrets: []
-
-
Instale o operador Astra Control Center atualizado:
kubectl apply -f astra_control_center_operator_deploy.yaml
Resposta da amostra:
namespace/netapp-acc-operator unchanged customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io configured role.rbac.authorization.k8s.io/acc-operator-leader-election-role unchanged clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role configured clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader unchanged clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role unchanged rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding unchanged clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding configured clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding unchanged configmap/acc-operator-manager-config unchanged service/acc-operator-controller-manager-metrics-service unchanged deployment.apps/acc-operator-controller-manager configured
-
Verifique se os pods estão em execução:
kubectl get pods -n netapp-acc-operator
Atualizar o Astra Control Center
-
Edite o recurso personalizado do Astra Control Center (CR(
astra_control_center_min.yaml
) ) e altere a versão do Astra (astraVersion`dentro `Spec
do número do ) para o mais recente:kubectl edit acc -n [netapp-acc or custom namespace]
Seu caminho do Registro deve corresponder ao caminho do Registro onde você enviou as imagens em um passo anterior. -
Adicione as seguintes linhas dentro
additionalValues
doSpec
no Astra Control Center CR:additionalValues: nautilus: startupProbe: periodSeconds: 30 failureThreshold: 600
-
Execute um dos seguintes procedimentos:
-
Se você não tiver seu próprio IngressController ou IngressController e estiver usando o Astra Control Center com seu gateway Traefik como um serviço do tipo LoadBalancer e gostaria de continuar com essa configuração, especifique outro campo
ingressType
(se ainda não estiver presente) e defina-o comoAccTraefik
.ingressType: AccTraefik
-
Se você quiser mudar para a implantação de entrada genérica padrão do Astra Control Center, forneça sua própria configuração de IngressController/IngressController (com terminação TLS, etc.), abra uma rota para o Astra Control Center e defina
ingressType
comoGeneric
.ingressType: Generic
Se você omitir o campo, o processo se tornará a implantação genérica. Se você não quiser a implantação genérica, certifique-se de adicionar o campo.
-
-
(Opcional) Verifique se os pods terminam e ficam disponíveis novamente:
watch kubectl get po -n [netapp-acc or custom namespace]
-
Aguarde que as condições de status Astra indiquem que o upgrade esteja concluído e pronto:
kubectl get -o yaml -n [netapp-acc or custom namespace] astracontrolcenters.astra.netapp.io astra
Resposta:
conditions: - lastTransitionTime: "2021-10-25T18:49:26Z" message: Astra is deployed reason: Complete status: "True" type: Ready - lastTransitionTime: "2021-10-25T18:49:26Z" message: Upgrading succeeded. reason: Complete status: "False" type: Upgrading
-
Faça login novamente e verifique se todos os clusters gerenciados e aplicativos ainda estão presentes e protegidos.
-
Se o operador não tiver atualizado o Cert-manager, atualize os serviços de terceiros, em seguida.
Atualizar serviços de terceiros (opcional)
Os serviços de terceiros Traefik e Cert-manager não são atualizados durante etapas anteriores de atualização. Você pode, opcionalmente, atualizá-los usando o procedimento descrito aqui ou manter versões de serviço existentes se o seu sistema exigir isso.
-
Traefik: Por padrão, o Astra Control Center gerencia o ciclo de vida da implantação do Traefik. Definir
externalTraefik
comofalse
(padrão) indica que não existe Traefik externo no sistema e o Traefik está sendo instalado e gerenciado pelo Astra Control Center. Neste caso,externalTraefik`está definido como `false
.Por outro lado, se você tiver sua própria implantação do Traefik, defina
externalTraefik
comotrue
. Nesse caso, você mantém a implantação e o Astra Control Center não atualizará as CRDs, a menosshouldUpgrade
que esteja definido comotrue
. -
Cert-manager: Por padrão, o Astra Control Center instala o cert-manager (e CRDs), a menos que você defina
externalCertManager
comotrue
. DefinashouldUpgrade
comotrue
para que o Astra Control Center atualize as CRDs.
O Traefik é atualizado se qualquer uma das seguintes condições for cumprida:
-
ExternalTraefik: Falso
-
ExternalTraefik: TRUE E shouldUpgrade: True.
-
Editar o
acc
CR:kubectl edit acc -n [netapp-acc or custom namespace]
-
Altere o
externalTraefik
campo e oshouldUpgrade
campo paratrue
oufalse
conforme necessário.crds: externalTraefik: false externalCertManager: false shouldUpgrade: false
Verifique o status do sistema
-
Faça login no Astra Control Center.
-
Verifique se todos os clusters e aplicativos gerenciados ainda estão presentes e protegidos.
Configure a entrada para o balanceamento de carga
Você pode configurar um objeto de entrada do Kubernetes que gerencia o acesso externo aos serviços, como balanceamento de carga em um cluster.
-
A atualização padrão usa a implantação genérica de entrada. Nesse caso, você também precisará configurar um controlador de entrada ou um recurso de entrada.
-
Se você não quiser um controlador de entrada e quiser manter o que já tem, defina
ingressType
comoAccTraefik
.
Para obter detalhes adicionais sobre o tipo de serviço "LoadBalancer" e Ingress, "Requisitos"consulte . |
Os passos diferem consoante o tipo de controlador de entrada que utiliza:
-
Controlador de entrada nginx
-
Controlador de entrada OpenShift
-
Na especificação CR,
-
Se
crd.externalTraefik
estiver presente, deve ser definido comofalse
OU -
Se
crd.externalTraefik
fortrue
,crd.shouldUpgrade
também deve sertrue
.
-
-
O necessário "controlador de entrada" já deve ser implantado.
-
O "classe de entrada" correspondente ao controlador de entrada já deve ser criado.
-
Você está usando versões do Kubernetes entre o v1,19 e o v1,21, inclusive.
-
Use o segredo existente
secure-testing-cert
ou crie um segredo do tipo[kubernetes.io/tls
] para uma chave privada TLS e um certificado nonetapp-acc
namespace (ou nome personalizado), conforme descrito em "Segredos TLS". -
Implante um recurso de entrada no
netapp-acc
namespace (ou nome personalizado) para um esquema obsoleto ou novo:-
Para um esquema obsoleto, siga esta amostra:
apiVersion: extensions/v1beta1 kind: IngressClass metadata: name: ingress-acc namespace: [netapp-acc or custom namespace] annotations: kubernetes.io/ingress.class: nginx spec: tls: - hosts: - <ACC address> secretName: [tls secret name] rules: - host: [ACC address] http: paths: - backend: serviceName: traefik servicePort: 80 pathType: ImplementationSpecific
-
Para um novo esquema, siga este exemplo:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: netapp-acc-ingress namespace: [netapp-acc or custom namespace] spec: ingressClassName: [class name for nginx controller] tls: - hosts: - <ACC address> secretName: [tls secret name] rules: - host: <ACC address> http: paths: - path: backend: service: name: traefik port: number: 80 pathType: ImplementationSpecific
-
-
Procure seu certificado e prepare os arquivos de chave, certificado e CA para uso pela rota OpenShift.
-
Crie a rota OpenShift:
oc create route edge --service=traefik --port=web -n [netapp-acc or custom namespace] --insecure-policy=Redirect --hostname=<ACC address> --cert=cert.pem --key=key.pem
Verifique a configuração da entrada
Pode verificar a configuração de entrada antes de continuar.
-
Certifique-se de que o Traefik foi alterado para
clusterIP
de Loadbalancer:kubectl get service traefik -n [netapp-acc or custom namespace]
-
Verifique as rotas em Traefik:
Kubectl get ingressroute ingressroutetls -n [netapp-acc or custom namespace] -o yaml | grep "Host("
O resultado deve estar vazio.