Astra Control Center를 업그레이드합니다
Astra Control Center를 업그레이드하려면 NetApp Support 사이트에서 설치 번들을 다운로드하고 다음 지침을 완료하십시오. 이 절차를 사용하여 인터넷에 연결되거나 공기가 연결된 환경에서 Astra Control Center를 업그레이드할 수 있습니다.
업그레이드하기 전에 환경이 에 맞는지 확인하십시오 "Astra Control Center 구축을 위한 최소 요구 사항". 환경에 다음이 있어야 합니다.
-
지원되는 Astra Trident 버전
Details
실행 중인 Trident 버전 확인:
kubectl get tridentversion -n trident
을 참조하십시오 "Astra Trident 문서" 이전 버전에서 업그레이드하는 경우.
Kubernetes 1.25로 업그레이드하기 전에 * Astra Trident 22.10 * 으로 업그레이드해야 합니다. -
지원되는 Kubernetes 배포
Details
실행 중인 Kubernetes 버전 확인:
kubectl get nodes -o wide
-
충분한 클러스터 리소스
Details
사용 가능한 클러스터 리소스 결정:
kubectl describe node <node name>
-
Astra Control Center 이미지를 푸시 및 업로드하는 데 사용할 수 있는 레지스트리입니다
-
기본 스토리지 클래스입니다
Details
기본 스토리지 클래스 확인:
kubectl get storageclass
-
사용 가능한 정상 API 서비스
Details
모든 API 서비스가 정상 상태이며 사용 가능한지 확인합니다.
kubectl get apiservices
-
(OpenShift에만 해당) 사용 가능한 정상 클러스터 운영자
Details
모든 클러스터 운영자가 양호한 상태이며 사용 가능한지 확인합니다.
kubectl get clusteroperators
이 절차의 일부로 해야 합니다 Astra Control Center를 업그레이드하는 경우 이 업데이트된 연산자를 사용하여 이전 버전의 Astra Control Center로 업그레이드할 수 없습니다. |
Astra Control Center 업그레이드 프로세스는 다음과 같은 고급 단계를 안내합니다.
업그레이드를 시작하기 전에 Astra Control Center UI에서 로그아웃하십시오. |
Astra Control Center 운영자를 삭제하지 마십시오(예: kubectl delete -f astra_control_center_operator_deploy.yaml ) 포드가 삭제되지 않도록 Astra Control Center 업그레이드 또는 작업 중 언제든지.
|
스케줄, 백업 및 스냅샷이 실행되고 있지 않은 경우 유지보수 창에서 업그레이드를 수행합니다. |
Astra Control Center를 다운로드하고 압축을 풉니다
-
로 이동합니다 "Astra Control Center 제품 다운로드 페이지" 를 방문하십시오. 드롭다운 메뉴에서 최신 버전 또는 원하는 다른 버전을 선택할 수 있습니다.
-
(권장되지만 선택 사항) Astra Control Center용 인증서 및 서명 번들을 다운로드합니다 (
astra-control-center-certs-[version].tar.gz
)를 클릭하여 번들 서명을 확인합니다.자세한 내용을 보려면 를 확장합니다
tar -vxzf astra-control-center-certs-[version].tar.gz
openssl dgst -sha256 -verify certs/AstraControlCenter-public.pub -signature certs/astra-control-center-[version].tar.gz.sig astra-control-center-[version].tar.gz
출력이 표시됩니다
Verified OK
확인 성공 후. -
Astra Control Center 번들에서 이미지를 추출합니다.
tar -vxzf astra-control-center-[version].tar.gz
NetApp Astra kubtl 플러그인을 제거하고 다시 설치합니다
NetApp Astra kubtl 명령줄 플러그인을 사용하여 이미지를 로컬 Docker 저장소로 푸시할 수 있습니다.
-
플러그인이 설치되어 있는지 확인합니다.
kubectl astra
-
다음 작업 중 하나를 수행합니다.
-
플러그인이 설치되어 있는 경우 kubeck 플러그인 도움말을 반환해야 하며 kubbctl-Astra의 기존 버전을 제거할 수 있습니다.
delete /usr/local/bin/kubectl-astra
. -
명령이 오류를 반환하면 플러그인이 설치되지 않은 것이므로 다음 단계를 수행하여 설치할 수 있습니다.
-
-
플러그인 설치:
-
사용 가능한 NetApp Astra kubectl 플러그인 바이너리를 나열하고 운영 체제 및 CPU 아키텍처에 필요한 파일 이름을 적어 주십시오.
kubbeck 플러그인 라이브러리는 tar 번들의 일부이며 폴더에 압축이 풀립니다 kubectl-astra
.
ls kubectl-astra/
-
올바른 바이너리를 현재 경로로 이동하고 이름을 로 변경합니다
kubectl-astra
:cp kubectl-astra/<binary-name> /usr/local/bin/kubectl-astra
-
이미지를 로컬 레지스트리에 추가합니다
-
용기 엔진에 적합한 단계 시퀀스를 완료합니다.
-
타볼의 루트 디렉토리로 변경합니다. 가 표시됩니다
acc.manifest.bundle.yaml
파일 및 다음 디렉토리:acc/
kubectl-astra/
acc.manifest.bundle.yaml
-
Astra Control Center 이미지 디렉토리의 패키지 이미지를 로컬 레지스트리에 밀어 넣습니다. 를 실행하기 전에 다음 대체 작업을 수행합니다
push-images
명령:-
<BUNDLE_FILE>를 Astra Control 번들 파일의 이름으로 바꿉니다 (
acc.manifest.bundle.yaml
)를 클릭합니다. -
<MY_FULL_REGISTRY_PATH>를 Docker 저장소의 URL로 바꿉니다. 예를 들어, "https://<docker-registry>".
-
<MY_REGISTRY_USER>를 사용자 이름으로 바꿉니다.
-
<MY_REGISTRY_TOKEN>를 레지스트리에 대한 인증된 토큰으로 바꿉니다.
kubectl astra packages push-images -m <BUNDLE_FILE> -r <MY_FULL_REGISTRY_PATH> -u <MY_REGISTRY_USER> -p <MY_REGISTRY_TOKEN>
-
-
타볼의 루트 디렉토리로 변경합니다. 이 파일과 디렉토리가 표시됩니다.
acc.manifest.bundle.yaml
acc/
-
레지스트리에 로그인합니다.
podman login <YOUR_REGISTRY>
-
사용하는 Podman 버전에 맞게 사용자 지정된 다음 스크립트 중 하나를 준비하고 실행합니다. <MY_FULL_REGISTRY_PATH>를 모든 하위 디렉토리가 포함된 리포지토리의 URL로 대체합니다.
Podman 4
export REGISTRY=<MY_FULL_REGISTRY_PATH> export PACKAGENAME=acc export PACKAGEVERSION=23.07.0-25 export DIRECTORYNAME=acc for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //') astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::') podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} done
Podman 3
export REGISTRY=<MY_FULL_REGISTRY_PATH> export PACKAGENAME=acc export PACKAGEVERSION=23.07.0-25 export DIRECTORYNAME=acc for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //') astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::') podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} done
레지스트리 구성에 따라 스크립트가 만드는 이미지 경로는 다음과 같아야 합니다. https://netappdownloads.jfrog.io/docker-astra-control-prod/netapp/astra/acc/23.07.0-25/image:version
업데이트된 Astra Control Center 운영자를 설치합니다
-
디렉토리를 변경합니다.
cd manifests
-
Astra Control Center 운영자 배포 YAML을 편집합니다 (
astra_control_center_operator_deploy.yaml
)를 클릭하여 로컬 레지스트리 및 암호를 참조합니다.vim astra_control_center_operator_deploy.yaml
-
인증이 필요한 레지스트리를 사용하는 경우 의 기본 줄을 바꾸거나 편집합니다
imagePullSecrets: []
다음 포함:imagePullSecrets: [{name: astra-registry-cred}]
-
변경
ASTRA_IMAGE_REGISTRY
의 경우kube-rbac-proxy
이미지를 에서 푸시한 레지스트리 경로로 이미지 이전 단계. -
변경
ASTRA_IMAGE_REGISTRY
의 경우acc-operator
이미지를 에서 푸시한 레지스트리 경로로 이미지 이전 단계. -
에 다음 값을 추가합니다
env
섹션:- name: ACCOP_HELM_UPGRADETIMEOUT value: 300m
샘플 Astra_control_center_operator_deploy.YAML:
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 strategy: type: Recreate 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: ASTRA_IMAGE_REGISTRY/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 env: - name: ACCOP_LOG_LEVEL value: "2" - name: ACCOP_HELM_UPGRADETIMEOUT value: 300m image: ASTRA_IMAGE_REGISTRY/acc-operator:23.07.25 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: manager readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 300m memory: 750Mi requests: cpu: 100m memory: 75Mi securityContext: allowPrivilegeEscalation: false imagePullSecrets: [] securityContext: runAsUser: 65532 terminationGracePeriodSeconds: 10
-
-
업데이트된 Astra Control Center 운영자를 설치합니다.
kubectl apply -f astra_control_center_operator_deploy.yaml
샘플 반응:
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
-
Pod가 실행 중인지 확인합니다.
kubectl get pods -n netapp-acc-operator
Astra Control Center를 업그레이드합니다
-
Astra Control Center 사용자 지정 리소스(CR) 편집:
kubectl edit AstraControlCenter -n [netapp-acc or custom namespace]
-
Astra 버전 번호를 변경합니다 (
astraVersion
의 내부spec
)를 업그레이드할 버전:spec: accountName: "Example" astraVersion: "[Version number]"
-
이미지 레지스트리 경로가 에서 이미지를 푸시한 레지스트리 경로와 일치하는지 확인합니다 이전 단계. 업데이트
imageRegistry
의 내부spec
마지막 설치 이후 레지스트리가 변경된 경우imageRegistry: name: "[your_registry_path]"
-
에 다음을 추가합니다
crds
의 내부 구성spec
:crds: shouldUpgrade: true
-
에 다음 행을 추가합니다
additionalValues
의 내부spec
Astra Control Center CR에서 다음을 수행합니다.additionalValues: nautilus: startupProbe: periodSeconds: 30 failureThreshold: 600 polaris-keycloak: livenessProbe: initialDelaySeconds: 180 readinessProbe: initialDelaySeconds: 180
-
파일 편집기를 저장하고 종료합니다. 변경 사항이 적용되고 업그레이드가 시작됩니다.
-
(선택 사항) Pod가 종료되어 다시 사용할 수 있는지 확인합니다.
watch kubectl get pods -n [netapp-acc or custom namespace]
-
Astra Control 상태 조건이 업그레이드가 완료되어 준비되었음을 나타낼 때까지 기다립니다 (
True
):kubectl get AstraControlCenter -n [netapp-acc or custom namespace]
응답:
NAME UUID VERSION ADDRESS READY astra 9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f 23.07.0-25 10.111.111.111 True
작업 중에 업그레이드 상태를 모니터링하려면 다음 명령을 실행합니다. kubectl get AstraControlCenter -o yaml -n [netapp-acc or custom namespace]
Astra Control Center 운영자 로그를 검사하려면 다음 명령을 실행하십시오.
kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
시스템 상태를 확인합니다
-
Astra Control Center에 로그인합니다.
-
버전이 업그레이드되었는지 확인합니다. UI의 * 지원 * 페이지를 참조하십시오.
-
모든 관리되는 클러스터와 앱이 여전히 존재하고 보호되고 있는지 확인합니다.