표준 프로세스를 사용하여 Astra Control Center를 설치합니다
Astra Control Center를 설치하려면 NetApp Support 사이트에서 설치 번들을 다운로드하고 다음 단계를 수행하십시오. 이 절차를 사용하여 인터넷에 연결되었거나 공기가 연결된 환경에 Astra Control Center를 설치할 수 있습니다.
다른 설치 절차를 보려면 를 확장합니다
-
RedHat OpenShift OperatorHub * 로 설치: 이 옵션을 사용합니다 "대체 절차" OperatorHub를 사용하여 OpenShift에 Astra Control Center를 설치합니다.
-
* Cloud Volumes ONTAP 백엔드를 사용하여 퍼블릭 클라우드에 설치 *: 사용 "수행할 수 있습니다" AWS(Amazon Web Services), GCP(Google Cloud Platform) 또는 Cloud Volumes ONTAP 스토리지 백엔드가 있는 Microsoft Azure에 Astra Control Center를 설치하려면 다음을 수행합니다.
Astra Control Center 설치 프로세스 데모는 를 참조하십시오 "이 비디오".
-
사용자 환경에서 POD 보안 정책을 구성했거나 구성하려는 경우 POD 보안 정책 및 해당 정책이 Astra Control Center 설치에 어떤 영향을 미치는지 숙지하십시오. 을 참조하십시오 "POD 보안 제한".
-
모든 API 서비스가 정상 상태이며 사용 가능한지 확인합니다.
kubectl get apiservices
-
사용하려는 Astra FQDN이 이 클러스터에 라우팅될 수 있는지 확인합니다. 즉, 내부 DNS 서버에 DNS 항목이 있거나 이미 등록된 코어 URL 경로를 사용하고 있는 것입니다.
-
인증서 관리자가 클러스터에 이미 있는 경우 일부를 수행해야 합니다 "필수 단계" 따라서 Astra Control Center는 자체 인증 관리자를 설치하려고 시도하지 않습니다. 기본적으로 Astra Control Center는 설치 중에 자체 인증서 관리자를 설치합니다.
Astra Control Center를 세 번째 고장 도메인 또는 보조 사이트에 배포합니다. 앱 복제 및 원활한 재해 복구에 권장됩니다. |
Astra Control Center를 설치하려면 다음 단계를 수행하십시오.
Astra Control Center 운영자를 삭제하지 마십시오(예: kubectl delete -f astra_control_center_operator_deploy.yaml ) 포드가 삭제되지 않도록 Astra Control Center 설치 또는 작동 중에 언제든지.
|
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
NetApp Astra kubtl 플러그인을 설치합니다
NetApp Astra kubtl 명령줄 플러그인을 사용하여 이미지를 로컬 Docker 저장소로 푸시할 수 있습니다.
NetApp은 다양한 CPU 아키텍처 및 운영 체제에 대한 플러그인 바이너리를 제공합니다. 이 작업을 수행하기 전에 사용 중인 CPU 및 운영 체제를 알아야 합니다.
이전 설치에서 이미 플러그인을 설치한 경우 "최신 버전이 있는지 확인하십시오" 다음 단계를 수행하기 전에
-
사용 가능한 NetApp Astra kubeck 플러그인 바이너리를 나열합니다.
kubbeck 플러그인 라이브러리는 tar 번들의 일부이며 폴더에 압축이 풀립니다 kubectl-astra
.ls kubectl-astra/
-
운영 체제 및 CPU 아키텍처에 필요한 파일을 현재 경로로 이동하고 이름을 로 변경합니다
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 호스트 클러스터의 kubecononfig 내보내기:
export KUBECONFIG=[file path]
설치를 완료하기 전에 Astra Control Center를 설치할 클러스터를 추천하십시오. -
인증이 필요한 레지스트리를 사용하는 경우 다음을 수행해야 합니다.
단계를 위해 확장합니다
-
를 생성합니다
netapp-acc-operator
네임스페이스:kubectl create ns netapp-acc-operator
-
에 대한 암호를 만듭니다
netapp-acc-operator
네임스페이스. Docker 정보를 추가하고 다음 명령을 실행합니다.자리 표시자입니다 your_registry_path
이전에 업로드한 이미지의 위치와 일치해야 합니다(예:[Registry_URL]/netapp/astra/astracc/23.07.0-25
)를 클릭합니다.kubectl create secret docker-registry astra-registry-cred -n netapp-acc-operator --docker-server=[your_registry_path] --docker-username=[username] --docker-password=[token]
암호를 생성한 후 네임스페이스를 삭제하면 네임스페이스를 다시 만든 다음 네임스페이스에 대한 암호를 다시 생성합니다. -
를 생성합니다
netapp-acc
(또는 사용자 지정 이름) 네임스페이스입니다.kubectl create ns [netapp-acc or custom namespace]
-
에 대한 암호를 만듭니다
netapp-acc
(또는 사용자 지정 이름) 네임스페이스입니다. Docker 정보를 추가하고 다음 명령을 실행합니다.kubectl create secret docker-registry astra-registry-cred -n [netapp-acc or custom namespace] --docker-server=[your_registry_path] --docker-username=[username] --docker-password=[token]
-
Astra Control Center 운영자를 설치합니다
-
디렉토리를 변경합니다.
cd manifests
-
Astra Control Center 운영자 배포 YAML을 편집합니다 (
astra_control_center_operator_deploy.yaml
)를 클릭하여 로컬 레지스트리 및 암호를 참조합니다.vim astra_control_center_operator_deploy.yaml
YAML 주석이 붙은 샘플은 다음 단계를 따릅니다. 샘플 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_INSTALLTIMEOUT value: 5m 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 created customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io created role.rbac.authorization.k8s.io/acc-operator-leader-election-role created clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role created clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader created clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role created rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding created clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding created clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding created configmap/acc-operator-manager-config created service/acc-operator-controller-manager-metrics-service created deployment.apps/acc-operator-controller-manager created
-
Pod가 실행 중인지 확인합니다.
kubectl get pods -n netapp-acc-operator
Astra Control Center를 구성합니다
-
Astra Control Center 사용자 정의 리소스(CR) 파일을 편집합니다 (
astra_control_center.yaml
) 계정, 지원, 레지스트리 및 기타 필요한 구성을 만들려면:vim astra_control_center.yaml
YAML 주석이 붙은 샘플은 다음 단계를 따릅니다. -
다음 설정을 수정하거나 확인합니다.
<code>accountName</code>
설정 지침 유형 예 accountName
를 변경합니다
accountName
Astra Control Center 계정과 연결할 이름에 대한 문자열입니다. 하나의 accountName만 있을 수 있습니다.문자열
Example
<code>astraVersion</code>
설정 지침 유형 예 astraVersion
배포할 Astra Control Center의 버전입니다. 값이 미리 채워질 수 있으므로 이 설정에 대한 작업은 필요하지 않습니다.
문자열
23.07.0-25
<code>astraAddress</code>
설정 지침 유형 예 astraAddress
를 변경합니다
astraAddress
브라우저에서 Astra Control Center에 액세스하기 위해 사용할 FQDN(권장) 또는 IP 주소에 대한 문자열입니다. 이 주소는 Astra Control Center가 데이터 센터에서 어떻게 검색되는지 정의하며, 이 주소를 완료하면 로드 밸런서에서 제공한 것과 동일한 FQDN 또는 IP 주소입니다 "Astra Control Center 요구 사항".
참고: 사용하지 마십시오http://
또는https://
를 입력합니다. 에서 사용하기 위해 이 FQDN을 복사합니다 나중에.문자열
astra.example.com
<code>autoSupport</code>
이 섹션에서 선택한 항목에 따라 NetApp의 사전 지원 응용 프로그램, 디지털 어드바이저 및 데이터 전송 위치가 결정됩니다. 인터넷 연결이 필요하며(포트 442) 모든 지원 데이터가 익명화됩니다.
설정 사용 지침 유형 예 autoSupport.enrolled
둘 다 가능합니다
enrolled
또는url
필드를 선택해야 합니다변경
enrolled
을 눌러 AutoSupport to로 이동합니다false
인터넷 연결이 없거나 보관되지 않은 사이트의 경우true
연결된 사이트의 경우. 의 설정true
지원을 위해 익명 데이터를 NetApp에 보낼 수 있습니다. 기본 선택 옵션은 입니다false
및 은 NetApp에 지원 데이터가 전송되지 않음을 나타냅니다.부울
false
(이 값은 기본값입니다.)autoSupport.url
둘 다 가능합니다
enrolled
또는url
필드를 선택해야 합니다이 URL은 익명 데이터를 보낼 위치를 결정합니다.
문자열
<code>email</code>
설정 지침 유형 예 email
를 변경합니다
email
문자열을 기본 초기 관리자 주소로 설정합니다. 에서 사용할 이 이메일 주소를 복사합니다 나중에. 이 이메일 주소는 UI에 로그인할 초기 계정의 사용자 이름으로 사용되며 Astra Control에서 이벤트를 알립니다.문자열
admin@example.com
<code>firstName</code>
설정 지침 유형 예 firstName
Astra 계정과 연결된 기본 초기 관리자의 이름입니다. 여기에 사용된 이름은 처음 로그인한 후 UI의 제목에 표시됩니다.
문자열
SRE
<code>LastName</code>
설정 지침 유형 예 lastName
Astra 계정과 연결된 기본 초기 관리자의 성. 여기에 사용된 이름은 처음 로그인한 후 UI의 제목에 표시됩니다.
문자열
Admin
<code>imageRegistry</code>
이 섹션에서 선택한 사항은 Astra 응용 프로그램 이미지, Astra Control Center Operator 및 Astra Control Center Helm 리포지토리를 호스팅하는 컨테이너 이미지 레지스트리를 정의합니다.
설정 사용 지침 유형 예 imageRegistry.name
필수 요소입니다
에서 이미지를 푸시한 이미지 레지스트리의 이름입니다 이전 단계. 사용하지 마십시오
http://
또는https://
레지스트리 이름.문자열
example.registry.com/astra
imageRegistry.secret
에 대해 입력한 문자열인 경우 필수입니다
imageRegistry.name' requires a secret.
줄 내부
IMPORTANT: If you are using a registry that does not require authorization, you must delete this `secretimageRegistry
그렇지 않으면 설치가 실패합니다.이미지 레지스트리를 인증하는 데 사용되는 Kubernetes 비밀의 이름입니다.
문자열
astra-registry-cred
<code>storageClass</code>
설정 지침 유형 예 storageClass
를 변경합니다
storageClass
값 시작ontap-gold
을 다른 Astra Trident storageClass 리소스로 이동합니다. 명령을 실행합니다kubectl get sc
구성된 기존 스토리지 클래스를 확인하려면 다음을 수행합니다. 매니페스트 파일에 Astra Trident 기반 스토리지 클래스 중 하나를 입력해야 합니다 (astra-control-center-<version>.manifest
) 및 는 Astra PVS에 사용됩니다. 이 옵션이 설정되어 있지 않으면 기본 스토리지 클래스가 사용됩니다.
참고: 기본 스토리지 클래스가 구성된 경우 기본 주석이 있는 유일한 스토리지 클래스인지 확인하십시오.문자열
ontap-gold
<code>volumeReclaimPolicy</code>
설정 지침 유형 옵션 volumeReclaimPolicy
그러면 Astra의 PVS에 대한 재확보 정책이 설정됩니다. 이 정책을 으로 설정합니다
Retain
Astra가 삭제된 후 영구 볼륨을 유지합니다. 이 정책을 으로 설정합니다Delete
Astra가 삭제된 후 영구 볼륨을 삭제합니다. 이 값을 설정하지 않으면 PVS가 유지됩니다.문자열
-
Retain
(기본값) -
Delete
<code>ingressType</code>
설정 지침 유형 옵션 ingressType
다음 수신 유형 중 하나를 사용하십시오.
Generic
(ingressType: "Generic"
) (기본값)
다른 수신 컨트롤러를 사용 중이거나 자체 수신 컨트롤러를 사용하려는 경우 이 옵션을 사용하십시오. Astra Control Center를 배포한 후 을 구성해야 합니다 "수신 컨트롤러" URL을 사용하여 Astra Control Center를 표시합니다.
AccTraefik
(ingressType: "AccTraefik"
)
수신 컨트롤러를 구성하지 않으려는 경우 이 옵션을 사용하십시오. 그러면 Astra Control Center가 구축됩니다traefik
Kubernetes 로드 밸런서 유형 서비스로서의 게이트웨이
Astra Control Center는 "loadbalancer" 유형의 서비스를 사용합니다. (svc/traefik
Astra Control Center 네임스페이스에서), 액세스 가능한 외부 IP 주소를 할당해야 합니다. 로드 밸런서가 사용자 환경에서 허용되고 아직 로드 밸런서가 구성되어 있지 않은 경우 MetalLB 또는 다른 외부 서비스 로드 밸런서를 사용하여 외부 IP 주소를 서비스에 할당할 수 있습니다. 내부 DNS 서버 구성에서 Astra Control Center에 대해 선택한 DNS 이름을 부하 분산 IP 주소로 지정해야 합니다.
참고: "로드 밸런서" 및 수신 서비스 유형에 대한 자세한 내용은 을 참조하십시오 "요구 사항".문자열
-
Generic
(기본값) -
AccTraefik
<code>scaleSize</code>
설정 지침 유형 옵션 scaleSize
기본적으로 Astra는 HA(High Availability)를 사용합니다.
scaleSize
의Medium`즉, HA에서 대부분의 서비스를 구축하고 이중화를 위해 여러 복제본을 배포합니다. 와 함께 `scaleSize
현재Small`Astra는 소비를 줄이기 위한 필수 서비스를 제외한 모든 서비스의 복제본 수를 줄일 것입니다.
약 100개의 Pod로 구축 가능(임시 워크로드 제외) 100 Pod는 3개의 마스터 노드 및 3개의 작업자 노드 구성을 기반으로 합니다.) 특히 재해 복구 시나리오를 고려할 때 사용자 환경에서 문제가 될 수 있는 Pod별 네트워크 제한 사항에 유의하십시오.
팁: `Medium문자열
-
Small
-
Medium
(기본값)
<code>astraResourcesScaler</code>
설정 지침 유형 옵션 astraResourcesScaler
AstraControlCenter 리소스 제한에 대한 확장 옵션 기본적으로 Astra Control Center는 Astra 내의 대부분의 구성 요소에 대해 설정된 리소스 요청과 함께 배포됩니다. 이 구성을 통해 Astra Control Center 소프트웨어 스택은 애플리케이션 로드 및 확장 수준이 높은 환경에서 더 나은 성능을 발휘할 수 있습니다.
그러나 더 작은 개발 또는 테스트 클러스터를 사용하는 시나리오에서는 CR 필드를 사용합니다astraResourcesScalar
로 설정할 수 있습니다Off
. 이렇게 하면 리소스 요청이 비활성화되고 소규모 클러스터에 구축할 수 있습니다.문자열
-
Default
(기본값) -
Off
<code>additionalValues</code>
다음 추가 값을 Astra Control Center CR에 추가하여 23.07 설치에서 알려진 문제를 방지합니다. additionalValues: polaris-keycloak: livenessProbe: initialDelaySeconds: 180 readinessProbe: initialDelaySeconds: 180
-
Astral Control Center 및 Cloud Insights 통신의 경우 TLS 인증서 확인은 기본적으로 비활성화되어 있습니다. 에 다음 섹션을 추가하여 Cloud Insights와 Astra Control Center 호스트 클러스터 및 관리 클러스터 간의 통신에 대한 TLS 인증 검증을 활성화할 수 있습니다
additionalValues
.
additionalValues: netapp-monitoring-operator: config: ciSkipTlsVerify: false cloud-insights-service: config: ciSkipTlsVerify: false telemetry-service: config: ciSkipTlsVerify: false
<code>crds</code>
이 섹션에서 선택한 사항은 Astra Control Center에서 CRD를 처리하는 방법을 결정합니다.
설정 지침 유형 예 crds.externalCertManager
외부 인증서 관리자를 사용하는 경우 를 변경합니다
externalCertManager
를 선택합니다true
. 기본값입니다false
설치 중에 Astra Control Center가 자체 인증서 관리자 CRD를 설치합니다.
CRD는 클러스터 전체 오브젝트이며 이를 설치하면 클러스터의 다른 부분에 영향을 줄 수 있습니다. 이 플래그를 사용하여 Astra Control Center에 이러한 CRD가 Astra Control Center 외부의 클러스터 관리자에 의해 설치 및 관리된다는 신호를 보낼 수 있습니다.부울
False
(이 값은 기본값입니다.)crds.externalTraefik
기본적으로 Astra Control Center는 필요한 Traefik CRD를 설치합니다. CRD는 클러스터 전체 오브젝트이며 이를 설치하면 클러스터의 다른 부분에 영향을 줄 수 있습니다. 이 플래그를 사용하여 Astra Control Center에 이러한 CRD가 Astra Control Center 외부의 클러스터 관리자에 의해 설치 및 관리된다는 신호를 보낼 수 있습니다.
부울
False
(이 값은 기본값입니다.) -
설치를 완료하기 전에 구성에 맞는 올바른 스토리지 클래스 및 수신 유형을 선택했는지 확인하십시오. |
샘플 Astra_control_center.YAML을 확장합니다
apiVersion: astra.netapp.io/v1 kind: AstraControlCenter metadata: name: astra spec: accountName: "Example" astraVersion: "ASTRA_VERSION" astraAddress: "astra.example.com" autoSupport: enrolled: true email: "[admin@example.com]" firstName: "SRE" lastName: "Admin" imageRegistry: name: "[your_registry_path]" secret: "astra-registry-cred" storageClass: "ontap-gold" volumeReclaimPolicy: "Retain" ingressType: "Generic" scaleSize: "Medium" astraResourcesScaler: "Default" additionalValues: polaris-keycloak: livenessProbe: initialDelaySeconds: 180 readinessProbe: initialDelaySeconds: 180 crds: externalTraefik: false externalCertManager: false
Astra 제어 센터 및 운전자 설치를 완료합니다
-
이전 단계에서 아직 작성하지 않은 경우 를 만듭니다
netapp-acc
(또는 사용자 지정) 네임스페이스:kubectl create ns [netapp-acc or custom namespace]
-
에 Astra Control Center를 설치합니다
netapp-acc
(또는 사용자 지정) 네임스페이스:kubectl apply -f astra_control_center.yaml -n [netapp-acc or custom namespace]
Astra Control Center 운영자는 환경 요구 사항에 대한 자동 검사를 실행합니다. 없습니다 "요구 사항" 설치가 실패하거나 Astra Control Center가 제대로 작동하지 않을 수 있습니다. 를 참조하십시오 다음 섹션을 참조하십시오 자동 시스템 점검과 관련된 경고 메시지를 확인합니다. |
시스템 상태를 확인합니다
kubeck 명령을 사용하여 시스템 상태를 확인할 수 있습니다. OpenShift를 사용하려는 경우 검증 단계에 유사한 OC 명령을 사용할 수 있습니다.
-
설치 프로세스에서 유효성 검사와 관련된 경고 메시지가 생성되지 않았는지 확인합니다.
kubectl get acc [astra or custom Astra Control Center CR name] -n [netapp-acc or custom namespace] -o yaml
Astra Control Center 운영자 로그에도 추가 경고 메시지가 표시됩니다. -
자동화된 요구 사항 확인을 통해 보고된 환경 관련 문제를 모두 해결하십시오.
사용자 환경이 을(를) 충족하는지 확인하여 문제를 해결할 수 있습니다 "요구 사항" Astra Control Center의 경우 -
모든 시스템 구성 요소가 성공적으로 설치되었는지 확인합니다.
kubectl get pods -n [netapp-acc or custom namespace]
각 POD의 상태는 입니다
Running
. 시스템 포드를 구축하는 데 몇 분 정도 걸릴 수 있습니다.샘플 응답을 위해 확장합니다
NAME READY STATUS RESTARTS AGE acc-helm-repo-6cc7696d8f-pmhm8 1/1 Running 0 9h activity-597fb656dc-5rd4l 1/1 Running 0 9h activity-597fb656dc-mqmcw 1/1 Running 0 9h api-token-authentication-62f84 1/1 Running 0 9h api-token-authentication-68nlf 1/1 Running 0 9h api-token-authentication-ztgrm 1/1 Running 0 9h asup-669d4ddbc4-fnmwp 1/1 Running 1 (9h ago) 9h authentication-78789d7549-lk686 1/1 Running 0 9h bucketservice-65c7d95496-24x7l 1/1 Running 3 (9h ago) 9h cert-manager-c9f9fbf9f-k8zq2 1/1 Running 0 9h cert-manager-c9f9fbf9f-qjlzm 1/1 Running 0 9h cert-manager-cainjector-dbbbd8447-b5qll 1/1 Running 0 9h cert-manager-cainjector-dbbbd8447-p5whs 1/1 Running 0 9h cert-manager-webhook-6f97bb7d84-4722b 1/1 Running 0 9h cert-manager-webhook-6f97bb7d84-86kv5 1/1 Running 0 9h certificates-59d9f6f4bd-2j899 1/1 Running 0 9h certificates-59d9f6f4bd-9d9k6 1/1 Running 0 9h certificates-expiry-check-28011180--1-8lkxz 0/1 Completed 0 9h cloud-extension-5c9c9958f8-jdhrp 1/1 Running 0 9h cloud-insights-service-5cdd5f7f-pp8r5 1/1 Running 0 9h composite-compute-66585789f4-hxn5w 1/1 Running 0 9h composite-volume-68649f68fd-tb7p4 1/1 Running 0 9h credentials-dfc844c57-jsx92 1/1 Running 0 9h credentials-dfc844c57-xw26s 1/1 Running 0 9h entitlement-7b47769b87-4jb6c 1/1 Running 0 9h features-854d8444cc-c24b7 1/1 Running 0 9h features-854d8444cc-dv6sm 1/1 Running 0 9h fluent-bit-ds-9tlv4 1/1 Running 0 9h fluent-bit-ds-bpkcb 1/1 Running 0 9h fluent-bit-ds-cxmwx 1/1 Running 0 9h fluent-bit-ds-jgnhc 1/1 Running 0 9h fluent-bit-ds-vtr6k 1/1 Running 0 9h fluent-bit-ds-vxqd5 1/1 Running 0 9h graphql-server-7d4b9d44d5-zdbf5 1/1 Running 0 9h identity-6655c48769-4pwk8 1/1 Running 0 9h influxdb2-0 1/1 Running 0 9h keycloak-operator-55479d6fc6-slvmt 1/1 Running 0 9h krakend-f487cb465-78679 1/1 Running 0 9h krakend-f487cb465-rjsxx 1/1 Running 0 9h license-64cbc7cd9c-qxsr8 1/1 Running 0 9h login-ui-5db89b5589-ndb96 1/1 Running 0 9h loki-0 1/1 Running 0 9h metrics-facade-8446f64c94-x8h7b 1/1 Running 0 9h monitoring-operator-6b44586965-pvcl4 2/2 Running 0 9h nats-0 1/1 Running 0 9h nats-1 1/1 Running 0 9h nats-2 1/1 Running 0 9h nautilus-85754d87d7-756qb 1/1 Running 0 9h nautilus-85754d87d7-q8j7d 1/1 Running 0 9h openapi-5f9cc76544-7fnjm 1/1 Running 0 9h openapi-5f9cc76544-vzr7b 1/1 Running 0 9h packages-5db49f8b5-lrzhd 1/1 Running 0 9h polaris-consul-consul-server-0 1/1 Running 0 9h polaris-consul-consul-server-1 1/1 Running 0 9h polaris-consul-consul-server-2 1/1 Running 0 9h polaris-keycloak-0 1/1 Running 2 (9h ago) 9h polaris-keycloak-1 1/1 Running 0 9h polaris-keycloak-2 1/1 Running 0 9h polaris-keycloak-db-0 1/1 Running 0 9h polaris-keycloak-db-1 1/1 Running 0 9h polaris-keycloak-db-2 1/1 Running 0 9h polaris-mongodb-0 1/1 Running 0 9h polaris-mongodb-1 1/1 Running 0 9h polaris-mongodb-2 1/1 Running 0 9h polaris-ui-66fb99479-qp9gq 1/1 Running 0 9h polaris-vault-0 1/1 Running 0 9h polaris-vault-1 1/1 Running 0 9h polaris-vault-2 1/1 Running 0 9h public-metrics-76fbf9594d-zmxzw 1/1 Running 0 9h storage-backend-metrics-7d7fbc9cb9-lmd25 1/1 Running 0 9h storage-provider-5bdd456c4b-2fftc 1/1 Running 0 9h task-service-87575df85-dnn2q 1/1 Running 3 (9h ago) 9h task-service-task-purge-28011720--1-q6w4r 0/1 Completed 0 28m task-service-task-purge-28011735--1-vk6pd 1/1 Running 0 13m telegraf-ds-2r2kw 1/1 Running 0 9h telegraf-ds-6s9d5 1/1 Running 0 9h telegraf-ds-96jl7 1/1 Running 0 9h telegraf-ds-hbp84 1/1 Running 0 9h telegraf-ds-plwzv 1/1 Running 0 9h telegraf-ds-sr22c 1/1 Running 0 9h telegraf-rs-4sbg8 1/1 Running 0 9h telemetry-service-fb9559f7b-mk9l7 1/1 Running 3 (9h ago) 9h tenancy-559bbc6b48-5msgg 1/1 Running 0 9h traefik-d997b8877-7xpf4 1/1 Running 0 9h traefik-d997b8877-9xv96 1/1 Running 0 9h trident-svc-585c97548c-d25z5 1/1 Running 0 9h vault-controller-88484b454-2d6sr 1/1 Running 0 9h vault-controller-88484b454-fc5cz 1/1 Running 0 9h vault-controller-88484b454-jktld 1/1 Running 0 9h
-
(선택 사항) 을(를) 확인합니다
acc-operator
진행 상황을 모니터링하기 위한 로그:kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
accHost
클러스터 등록은 마지막 작업 중 하나이며, 클러스터 등록에 실패하면 배포에 실패하지 않습니다. 로그에 클러스터 등록 실패가 표시되는 경우 를 통해 등록을 다시 시도할 수 있습니다 "UI에서 클러스터 워크플로우를 추가합니다" API를 사용합니다. -
모든 Pod가 실행되면 설치가 성공적으로 완료되었는지 확인합니다 (
READY
있습니다True
)를 입력하고 Astra Control Center에 로그인할 때 사용할 초기 설치 암호를 받습니다.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
UUID 값을 복사합니다. 암호는 입니다 ACC-
UUID 값 뒤에 옵니다 (ACC-[UUID]
또는, 이 예에서는ACC-9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f
)를 클릭합니다.
부하 분산을 위한 수신 설정
서비스에 대한 외부 액세스를 관리하는 Kubernetes 수신 컨트롤러를 설정할 수 있습니다. 이 절차에서는 기본값을 사용한 경우 수신 컨트롤러에 대한 설정 예제를 제공합니다 ingressType: "Generic"
Astra Control Center 사용자 지정 리소스 (astra_control_center.yaml
)를 클릭합니다. 지정한 경우 이 절차를 사용할 필요가 없습니다 ingressType: "AccTraefik"
Astra Control Center 사용자 지정 리소스 (astra_control_center.yaml
)를 클릭합니다.
Astra Control Center를 배포한 후 URL을 사용하여 Astra Control Center를 노출하도록 수신 컨트롤러를 구성해야 합니다.
설치 단계는 사용하는 수신 컨트롤러의 유형에 따라 다릅니다. Astra Control Center는 다양한 수신 컨트롤러 유형을 지원합니다. 이러한 설정 절차는 일반적인 수신 컨트롤러 유형의 예를 제공합니다.
Istio 침투에 대한 단계
-
Istio Ingress를 구성합니다.
이 절차에서는 "기본" 구성 프로파일을 사용하여 Istio를 구축한다고 가정합니다. -
수신 게이트웨이에 대해 원하는 인증서 및 개인 키 파일을 수집하거나 생성합니다.
CA 서명 또는 자체 서명 인증서를 사용할 수 있습니다. 공통 이름은 Astra 주소(FQDN)여야 합니다.
명령 예:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt
-
암호를 만듭니다
tls secret name
유형kubernetes.io/tls
에서 TLS 개인 키 및 인증서의 경우istio-system namespace
TLS 비밀에 설명되어 있습니다.명령 예:
kubectl create secret tls [tls secret name] --key="tls.key" --cert="tls.crt" -n istio-system
비밀의 이름은 과 일치해야 합니다 spec.tls.secretName
에 제공됩니다istio-ingress.yaml
파일. -
에 수신 리소스를 배포합니다
netapp-acc
(또는 사용자 지정 이름) 스키마에 대해 v1 리소스 형식을 사용하는 네임스페이스입니다 (istio-Ingress.yaml
이 예에서 사용됨):apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: istio spec: controller: istio.io/ingress-controller --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress namespace: [netapp-acc or custom namespace] spec: ingressClassName: istio tls: - hosts: - <ACC address> secretName: [tls secret name] rules: - host: [ACC address] http: paths: - path: / pathType: Prefix backend: service: name: traefik port: number: 80
-
변경 사항 적용:
kubectl apply -f istio-Ingress.yaml
-
수신 상태를 점검하십시오.
kubectl get ingress -n [netapp-acc or custom namespace]
응답:
NAME CLASS HOSTS ADDRESS PORTS AGE ingress istio astra.example.com 172.16.103.248 80, 443 1h
Nginx 수신 컨트롤러 단계
-
형식의 암호를 만듭니다
kubernetes.io/tls
에서 TLS 개인 키 및 인증서의 경우netapp-acc
에 설명된 대로 (또는 사용자 지정 이름) 네임스페이스를 사용합니다 "TLS 비밀". -
수신 리소스를 에 배포합니다
netapp-acc
(또는 사용자 지정 이름) 스키마에 대해 v1 리소스 형식을 사용하는 네임스페이스입니다 (nginx-Ingress.yaml
이 예에서 사용됨):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
-
변경 사항 적용:
kubectl apply -f nginx-Ingress.yaml
Nginx 컨트롤러를 이 아닌 배포로 설치하는 것이 좋습니다 daemonSet .
|
OpenShift Ingress 컨트롤러를 위한 단계
-
인증서를 구입하고 OpenShift 라우트에서 사용할 수 있도록 준비된 키, 인증서 및 CA 파일을 가져옵니다.
-
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
Astra Control Center UI에 로그인합니다
Astra Control Center를 설치한 후 기본 관리자의 암호를 변경하고 Astra Control Center UI 대시보드에 로그인합니다.
-
브라우저에서 FQDN(을 포함)을 입력합니다
https://
접두사)를 입력합니다astraAddress
에 있습니다astra_control_center.yaml
CR Astra Control Center를 설치했습니다. -
메시지가 표시되면 자체 서명된 인증서를 수락합니다.
로그인 후 사용자 지정 인증서를 만들 수 있습니다. -
Astra Control Center 로그인 페이지에서 에 사용한 값을 입력합니다
email
인치astra_control_center.yaml
CR Astra Control Center를 설치했습니다를 누른 다음 초기 설치 암호를 입력합니다 (ACC-[UUID]
)를 클릭합니다.잘못된 암호를 세 번 입력하면 15분 동안 관리자 계정이 잠깁니다. -
Login * 을 선택합니다.
-
메시지가 나타나면 암호를 변경합니다.
첫 번째 로그인인 경우 암호를 잊어버리고 다른 관리 사용자 계정이 아직 생성되지 않은 경우 에 문의하십시오 "NetApp 지원" 비밀번호 복구 지원을 위해. -
(선택 사항) 기존의 자체 서명된 TLS 인증서를 제거하고 로 바꿉니다 "인증 기관(CA)에서 서명한 사용자 지정 TLS 인증서".
설치 문제를 해결합니다
에 서비스가 있는 경우 Error
상태, 로그를 검사할 수 있습니다. 400 ~ 500 범위의 API 응답 코드를 찾습니다. 이는 고장이 발생한 장소를 나타냅니다.
-
Astra Control Center 운영자 로그를 검사하려면 다음을 입력하십시오.
kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
-
Astra Control Center CR의 출력을 확인하려면:
kubectl get acc -n [netapp-acc or custom namespace] -o yaml