Astra Control Center를 업그레이드합니다
Astra Control Center를 업그레이드하려면 설치 이미지를 다운로드하고 다음 지침을 완료하십시오. 이 절차를 사용하여 인터넷에 연결되거나 공기가 연결된 환경에서 Astra Control Center를 업그레이드할 수 있습니다.
다음 지침에서는 Astra Control Center의 두 번째 최신 릴리즈에서 이 최신 릴리즈로 업그레이드하는 프로세스를 설명합니다. 현재 릴리스 뒤에 있는 두 개 이상의 릴리스에서는 직접 업그레이드할 수 없습니다. 설치된 Astra Control Center 버전이 최신 릴리즈의 지원 대상인 경우, 설치된 Astra Control Center가 최신 릴리즈에 이어 한 버전일 때까지 최신 버전으로 체인 업그레이드를 수행해야 할 수 있습니다. 릴리스 버전의 전체 목록은 를 참조하십시오 "릴리즈 노트를 참조하십시오".
업그레이드하기 전에 환경이 에 맞는지 확인하십시오 "Astra Control Center 구축을 위한 최소 요구 사항". 환경에 다음이 있어야 합니다.
-
* 활성화 "Astra Control Provisioner" Astra Trident가 실행되는 * 의 사용
-
실행 중인 Astra Trident 버전을 확인합니다.
kubectl get tridentversion -n trident
Astra Trident 23.01 이하를 실행 중인 경우 다음을 사용합니다 "지침" Astra Control Provisioner로 업그레이드하기 전에 Astra Trident의 최신 버전으로 업그레이드하십시오. Astra Trident가 버전 24.02의 4개 릴리즈 윈도우 내에 있는 경우 Astra Control Provisioner 24.02로 직접 업그레이드를 수행할 수 있습니다. 예를 들어, Astra Trident 23.04에서 Astra Control Provisioner 24.02로 직접 업그레이드할 수 있습니다. -
Astra Control Provisioner가 진행되었는지 확인합니다 "활성화됨". Astra Control Provisioner는 23.10 이전 Astra Control Center 릴리즈에서 작동하지 않습니다. 최신 기능에 액세스하기 위해 업그레이드하는 Astra Control Center와 동일한 버전을 사용하도록 Astra Control Provisioner를 업그레이드하십시오.
-
-
* 지원되는 Kubernetes 배포 *
실행 중인 Kubernetes 버전 확인:
kubectl get nodes -o wide
-
* 충분한 클러스터 리소스 *
사용 가능한 클러스터 리소스 결정:
kubectl describe node <node name>
-
* 기본 스토리지 클래스 *
기본 스토리지 클래스 확인:
kubectl get storageclass
-
* 정상 및 사용 가능한 API 서비스 *
모든 API 서비스가 정상 상태이며 사용 가능한지 확인합니다.
kubectl get apiservices
-
* (로컬 레지스트리만 해당) Astra Control Center 이미지를 푸시 및 업로드하는 데 사용할 수 있는 로컬 레지스트리 *
-
* (OpenShift만 해당) 정상 및 사용 가능한 클러스터 운영자 *
모든 클러스터 운영자가 양호한 상태이며 사용 가능한지 확인합니다.
kubectl get clusteroperators
다음 사항도 고려해야 합니다.
스케줄, 백업 및 스냅샷이 실행되고 있지 않은 경우 유지보수 창에서 업그레이드를 수행합니다. |
-
* NetApp Astra 컨트롤 이미지 레지스트리에 액세스 *:
NetApp 이미지 레지스트리에서 Astra Control Provisioner와 같은 Astra Control의 설치 이미지 및 기능 개선 사항을 가져올 수 있습니다.-
레지스트리에 로그인해야 하는 Astra Control 계정 ID를 기록합니다.
계정 ID는 Astra Control Service 웹 UI에서 확인할 수 있습니다. 페이지 오른쪽 상단의 그림 아이콘을 선택하고 * API 액세스 * 를 선택한 후 계정 ID를 기록합니다.
-
같은 페이지에서 * API 토큰 생성 * 을 선택하고 API 토큰 문자열을 클립보드에 복사하여 편집기에 저장합니다.
-
Astra Control 레지스트리에 로그인합니다.
docker login cr.astra.netapp.io -u <account-id> -p <api-token>
-
-
* Istio 서비스 메시 배포 *
Astra Control Center 설치 중에 Istio 서비스 메시를 설치한 경우 Astra Control Center의 이 업그레이드에는 Istio 서비스 메시가 포함됩니다. 아직 서비스 메시가 없는 경우, 가 진행되는 동안 하나만 설치할 수 있습니다 "초기 배포" 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 컨트롤 서비스 이미지 레지스트리 *: Astra 컨트롤 센터 이미지에 로컬 레지스트리를 사용하지 않거나 NetApp Support 사이트에서 번들 다운로드보다 이 방법을 선호하는 경우 이 옵션을 사용합니다.
-
* NetApp Support 사이트 *: Astra 컨트롤 센터 이미지와 함께 로컬 레지스트리를 사용하는 경우 이 옵션을 사용합니다.
-
Astra Control Service에 로그인합니다.
-
대시보드에서 * Astra Control의 자가 관리형 인스턴스 배포 * 를 선택합니다.
-
지침에 따라 Astra Control 이미지 레지스트리에 로그인하고 Astra Control Center 설치 이미지를 가져온 다음 이미지를 추출합니다.
-
Astra Control Center가 포함된 번들을 다운로드합니다 (
astra-control-center-[version].tar.gz
)를 선택합니다 "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
로컬 레지스트리를 사용하는 경우 추가 단계를 완료합니다
Astra Control Center 번들을 로컬 레지스트리에 푸시하려는 경우 NetApp Astra kubectl 명령줄 플러그인을 사용해야 합니다.
NetApp Astra kubtl 플러그인을 제거하고 다시 설치합니다
이미지를 로컬 Docker 저장소로 푸시하려면 최신 버전의 NetApp Astra kubectl 명령줄 플러그인을 사용해야 합니다.
-
플러그인이 설치되어 있는지 확인합니다.
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
-
레지스트리에 이미지를 추가합니다
-
Astra Control Center 번들을 로컬 레지스트리로 푸시하려는 경우 컨테이너 엔진에 적합한 단계 시퀀스를 완료합니다.
Docker 를 참조하십시오-
타볼의 루트 디렉토리로 변경합니다. 가 표시됩니다
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/
kubectl-astra/
acc.manifest.bundle.yaml
-
레지스트리에 로그인합니다.
podman login <YOUR_REGISTRY>
-
사용하는 Podman 버전에 맞게 사용자 지정된 다음 스크립트 중 하나를 준비하고 실행합니다. <MY_FULL_REGISTRY_PATH>를 모든 하위 디렉토리가 포함된 리포지토리의 URL로 대체합니다.
Podman 4
export REGISTRY=<MY_FULL_REGISTRY_PATH> export PACKAGENAME=acc export PACKAGEVERSION=24.02.0-69 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=24.02.0-69 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://downloads.example.io/docker-astra-control-prod/netapp/astra/acc/24.02.0-69/image:version
-
-
디렉토리를 변경합니다.
cd manifests
업데이트된 Astra Control Center 운영자를 설치합니다
-
(로컬 레지스트리만 해당) 로컬 레지스트리를 사용하는 경우 다음 단계를 수행하십시오.
-
Astra Control Center 운영자 배포 YAML을 엽니다.
vim astra_control_center_operator_deploy.yaml
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
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:24.02.68 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]
YAML 주석이 붙은 샘플은 다음 단계를 따릅니다. -
Astra 버전 번호를 변경합니다 (
astraVersion
의 내부spec
)에서 시작합니다23.10.0
를 선택합니다24.02.0
:현재 릴리스 뒤에 있는 두 개 이상의 릴리스에서는 직접 업그레이드할 수 없습니다. 릴리스 버전의 전체 목록은 를 참조하십시오 "릴리즈 노트를 참조하십시오". spec: accountName: "Example" astraVersion: "[Version number]"
-
이미지 레지스트리를 변경합니다.
-
(로컬 레지스트리만 해당) 로컬 레지스트리를 사용하는 경우 이미지 레지스트리 경로가 에서 이미지를 푸시한 레지스트리 경로와 일치하는지 확인합니다 이전 단계. 업데이트
imageRegistry
의 내부spec
마지막 설치 이후 로컬 레지스트리가 변경된 경우 -
(Astra Control 이미지 레지스트리) Astra Control 이미지 레지스트리를 사용합니다 (
cr.astra.netapp.io
) 업데이트된 Astra Control 번들을 다운로드하는 데 사용했습니다.imageRegistry: name: "[cr.astra.netapp.io or your_registry_path]"
-
-
에 다음을 추가합니다
crds
의 내부 구성spec
:crds: shouldUpgrade: true
-
에 다음 행을 추가합니다
additionalValues
의 내부spec
Astra Control Center CR에서 다음을 수행합니다.additionalValues: nautilus: startupProbe: periodSeconds: 30 failureThreshold: 600 keycloak-operator: 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 24.02.0-69 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의 * 지원 * 페이지를 참조하십시오.
-
모든 관리되는 클러스터와 앱이 여전히 존재하고 보호되고 있는지 확인합니다.