콘텐츠로 이동

Alibaba Cloud 배포 매뉴얼


1 서문

1.1 문서 개요

본 문서는 Alibaba Cloud에 배포하는 과정을 기준으로, 리소스 계획 및 구성부터 시작하여 Guance 배포 및 실행에 이르는 전체 단계를 소개합니다.

설명:

  • 본 문서는 dataflux.cn 을 메인 도메인 예시로 사용하며, 실제 배포 시에는 해당 도메인으로 교체하십시오.

1.2 주요 용어

용어 설명
Launcher Guance 설치를 배포하는 WEB 애플리케이션으로, Launcher 서비스의 안내 단계에 따라 Guance 설치 및 업그레이드를 완료합니다.
운영 작업자 kubectl이 설치되어 있으며, 대상 Kubernetes 클러스터와 동일한 네트워크에 있는 운영 머신입니다.
설치 작업자 브라우저에서 launcher 서비스에 접속하여 Guance 설치를 안내받는 머신입니다.
kubectl Kubernetes의 커맨드 라인 클라이언트 도구로, 운영 작업자에 설치됩니다.

1.3 배포 단계 아키텍처

2 리소스 준비

Alibaba Cloud 리소스 목록

3 인프라 배포

3.1 배포 설명

RDS, NAS 스토리지는 구성 요구사항에 따라 생성하며, 동일한 리전의 동일한 VPC 네트워크에 생성합니다. ECS, SLB, NAT 게이트웨이는 ACK가 자동으로 생성하므로 별도로 생성할 필요가 없습니다. 즉, 배포 단계도의 1, 2, 3 단계는 별도로 생성할 필요가 없습니다.

3.2 단계 1, 2, 3 ACK 서비스 생성

3.2.1 클러스터 구성

컨테이너 서비스 Kubernetes 버전으로 이동하여 Kubernetes 클러스터를 생성하고 표준 관리형 클러스터 버전을 선택합니다. 클러스터 구성 시 주의사항은 다음과 같습니다.

  • 이전에 생성한 RDS, ECS 등 리소스와 동일한 리전이어야 합니다.
  • "SNAT 구성" 옵션을 선택합니다(ACK가 NAT 게이트웨이를 자동 생성 및 구성하여 클러스터가 외부 네트워크에 접속할 수 있도록 함).
  • "공개 네트워크 액세스" 옵션을 선택합니다(공개 네트워크에서 클러스터 API에 접근할 수 있음, 내부 네트워크에서 이 클러스터를 운영하는 경우 이 옵션을 선택하지 않아도 됨).
  • ACK 서비스 개통 시 스토리지 드라이브는 일단 flexvolume을 선택하며, CSI 드라이버는 본 문서에서 아직 지원하지 않습니다.

3.2.2 Worker 구성

주로 ECS 사양 및 수량을 선택합니다. 사양은 구성 목록 요구사항에 따라 생성하거나 실제 상황에 따라 평가할 수 있지만, 최소 구성 요구사항보다 낮을 수 없습니다. 수량은 최소 3대 또는 그 이상입니다.

3.2.3 구성 요소 구성

구성 요소 구성 시 "Ingress 구성 요소 설치" 옵션을 반드시 선택하고, "공개 네트워크" 유형을 선택해야 합니다. ACK가 자동으로 공개 네트워크 유형의 SLB를 생성하며, 설치 완료 후 도메인을 이 SLB의 공개 IP에 연결합니다.

3.3 단계 4, 5 동적 스토리지 구성

nas 파일 시스템을 미리 생성하고 nas_server_url을 획득해야 합니다.

3.3.1 동적 스토리지 설치

Alibaba Cloud Container Service for Kubernetes(ACK)의 컨테이너 스토리지 기능은 Kubernetes 컨테이너 스토리지 인터페이스(CSI)를 기반으로 하며, Alibaba Cloud 스토리지 서비스인 클라우드 디스크 EBS, 파일 스토리지 NAS, CPFS, 객체 스토리지 OSS, 로컬 디스크 등을 깊이 통합하고 Kubernetes 네이티브 스토리지 서비스(예: EmptyDir, HostPath, Secret, ConfigMap 등)와 완전히 호환됩니다. 이 문서는 ACK 스토리지 CSI의 개요, 지원 기능, 사용 권한, 사용 제한 등을 설명합니다. 콘솔은 기본적으로 CSI-Plugin 및 CSI-Provisioner 구성 요소를 설치합니다.

  • 플러그인 확인
  • 다음 명령을 실행하여 CSI-Plugin 구성 요소가 성공적으로 배포되었는지 확인합니다.
    kubectl get pod -n kube-system | grep csi-plugin
    
  • 다음 명령을 실행하여 CSI-Provisioner 구성 요소가 성공적으로 배포되었는지 확인합니다.
    kubectl get pod -n kube-system | grep csi-provisioner
    
  • StorageClass 생성

다음 내용을 생성하여 alicloud-nas-subpath.yaml 파일에 복사합니다.

alicloud-nas-subpath.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-nas
mountOptions:
- nolock,tcp,noresvport
- vers=3
parameters:
  volumeAs: subpath
  server: "{{ nas_server_url }}:/k8s/"
provisioner: nasplugin.csi.alibabacloud.com
reclaimPolicy: Retain

{{ nas_server_url }} 을 이전에 생성한 NAS 스토리지의 Server URL로 바꾼 후, 운영 작업자에서 다음 명령을 실행합니다.

kubectl apply -f ./alicloud-nas-subpath.yaml

Alibaba Cloud Kubernetes 1.16 이전 버전의 클러스터를 생성할 때, 스토리지 플러그인으로 Flexvolume을 선택하면 콘솔이 기본적으로 Flexvolume 및 Disk-Controller 구성 요소를 설치하지만, alicloud-nas-controller 구성 요소는 기본적으로 설치하지 않습니다.

  • alicloud-nas-controller 구성 요소 설치

nas_controller.yaml 다운로드 운영 작업자에서 다음 명령을 실행합니다.

kubectl apply -f nas_controller.yaml

  • 플러그인 확인

다음 명령을 실행하여 Disk-Controller 구성 요소가 성공적으로 배포되었는지 확인합니다.

kubectl get pod -nkube-system | grep alicloud-nas-controller

  • StorageClass 생성

다음 내용을 생성하여 storage_class.yaml 파일에 복사합니다.

storage_class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-nas
  annotations:
    storageclass.beta.kubernetes.io/is-default-class: "true"
    storageclass.kubernetes.io/is-default-class: "true"
mountOptions:
- nolock,tcp,noresvport
- vers=3
parameters:
  server:  "{{ nas_server_url }}:/k8s/"
  driver: flexvolume
provisioner: alicloud/nas
reclaimPolicy: Delete

{{ nas_server_url }} 을 이전에 생성한 NAS 스토리지의 Server URL로 바꾼 후, 운영 작업자에서 다음 명령을 실행합니다.

kubectl apply -f ./storage_class.yaml

3.3.2 배포 확인

3.3.2.1 PVC 생성, 상태 확인

명령을 실행하여 PVC를 생성합니다.

$ cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: cfs-pvc001
spec:
 accessModes:
   - ReadWriteOnce
 resources:
   requests:
     storage: 1Gi
 storageClassName: alicloud-nas
EOF
3.3.2.2 PVC 확인
$ kubectl get pvc | grep cfs-pvc001

cfs-pvc001       Bound    pvc-a17a0e50-04d2-4ee0-908d-bacd8d53aaa4   1Gi        RWO            alicloud-nas           3d7h

Bound는 배포 성공의 기준입니다.

3.4 단계 6 캐시 서비스

  • 기본 내장 캐시 서비스를 사용할 수 있습니다.
  • 기본 내장 캐시 서비스를 사용하지 않는 경우, 다음 요구사항에 따라 Redis를 구성하십시오.
  • Redis 버전: 6.0, 단일 모드, 프록시 모드 및 마스터-슬레이브 모드의 Redis 클러스터를 지원합니다.
  • Redis 비밀번호를 구성합니다.
  • 자동 생성된 ECS 내부 IP를 Redis 화이트리스트에 추가합니다.

3.5 단계 7 GuanceDB for Metrics

설치 문서

3.6 단계 8 OpenSearch

  • 관리자 계정 생성
  • 중국어 형태소 분석 플러그인 설치
  • ACK가 자동 생성한 ECS 내부 IP를 OpenSearch 화이트리스트에 추가

3.7 단계 9 RDS

  • 관리자 계정 생성 (반드시 관리자 계정이어야 하며, 이후 설치 초기화 시 이 계정을 사용하여 각 애플리케이션 DB를 생성하고 초기화합니다.)
  • 콘솔에서 파라미터 구성을 수정하여 innodb_large_prefixON으로 설정합니다 (MySQL 8+에서는 변경 불필요).
  • ACK가 자동 생성한 ECS 내부 IP를 RDS 화이트리스트에 추가

4 kubectl 설치 및 구성

4.1 kubectl 설치

kubectl은 Kubernetes의 커맨드 라인 클라이언트 도구로, 이 명령줄 도구를 통해 애플리케이션을 배포하고, 클러스터 리소스를 확인 및 관리할 수 있습니다. Launcher는 이 명령줄 도구를 기반으로 애플리케이션을 배포합니다. 구체적인 설치 방법은 공식 문서를 참조하십시오.

https://kubernetes.io/docs/tasks/tools/install-kubectl/

4.2 kubeconfig 구성

kubectl이 클러스터를 관리할 수 있으려면 클러스터의 kubeconfig 내용을 $HOME/.kube/config 파일에 넣어야 합니다. kubeconfig 내용은 클러스터 기본 정보에서 확인할 수 있습니다.

공개 네트워크 액세스용 kubeconfig와 내부 네트워크 액세스용 kubeconfig 중 선택하는 것은 운영 작업자가 클러스터 내부 네트워크와 연결되어 있는지 여부에 따라 결정됩니다.

5 설치 시작

작업이 완료되면 매뉴얼 설치 시작을 참조하십시오.

문서 평가

이 페이지가 도움이 되었나요?