사용 NCache AWS Elastic Kubernetes Service(EKS)에서

Docker 컨테이너가 있는 Elastic Kubernetes 클러스터

AWS Elastic Kubernetes Service(EKS)는 Amazon Web Services(AWS) 관리형 Kubernetes 서비스로, 이를 지원하는 기본 인프라에 대한 모든 최신 패치 및 업그레이드와 함께 Kubernetes 클러스터를 설정할 수 있습니다.

.NET/으로 작업하는 경우.NET Core 또는 EKS에서 실행 중인 Java 응용 프로그램을 사용하려는 경우 NCache 최대 트랜잭션 로드 동안 성능과 확장성을 개선한 다음 NCache 이 환경을 완벽하게 지원합니다.

이 비디오를 시청하여 배포가 얼마나 쉬운지 확인하십시오. NCache Amazon Elastic Kubernetes 클러스터로

NCache EKS에 배포

AWS 클라우드에는 Kubernetes 클러스터 내에서 실행되는 Ingress Controller 앞에 클래식 로드 밸런서가 있습니다. 이 인그레스 컨트롤러에 의해 구현되는 Kubernetes 인그레스 리소스는 로드 밸런서에서 오는 HTTP 요청을 클러스터 내에서 실행되는 다른 서비스로 라우팅합니다. 이제 이러한 모든 분산 응용 프로그램 환경에서 빠른 읽기 작업을 수행할 때 확장성, 안정성 및 고가용성을 제공하는 분산 캐싱 솔루션도 필요합니다. NCache 들어 온다.

ncache-deployment_eks

NCache 다음과 같이 EKS 클러스터에 배포할 수 있습니다. NCache Linux 컨테이너에서 실행되는 서버와 이러한 컨테이너는 Kubernetes Pod 내에서 호스트됩니다. 이들의 IP 주소 NCache 서버는 캐시 검색 서비스, 이는 Kubernetes 헤드리스 서비스이고 거기의 IP 주소는 클라이언트 애플리케이션에서 연결하여 사용할 수 있는 캐시 핸들을 만드는 데 사용됩니다 NCache 클러스터링하고 관리 및 CRUD 작업 수행을 시작합니다.

다음은 오늘 수행할 데모의 중요한 매개변수입니다. 그만큼 NCache EKS 클러스터에 배포될 서버는 다음 Docker 이미지를 사용합니다. 'alachisoft/ncache' 의 태그와 함께 '엔터프라이즈-서버-리눅스-5.0.2'.

데모 환경 세부 정보

모든 이미지를 얻으려면 NCache 제공합니다 Alachisoft 웹사이트. 선택 '다운로드' 탭을 클릭한 다음 'NCache'. 이렇게 하면 NCache 다운로드 센터. 'Docker Hub' 섹션까지 아래로 스크롤하여 위에서 두 번째 항목을 클릭하기만 하면 됩니다. 그러면 도커 허브 ~의 페이지 Alachisoft NCache. 여기에서 모든 이미지를 볼 수 있습니다. NCache 제공합니다. 매개변수로 돌아가서 사용할 이미지는 NCache Enterprise 5.0 SP2 에디션 .NET Core 설치. 생성할 클러스터형 캐시는 복제본 토폴로지의 파티션을 사용합니다. 사용할 두 가지 테스트 응용 프로그램은 다음과 같습니다. 우리는 하나가 있습니다 .NET Core 애플리케이션과 하나의 Java 애플리케이션, 두 경우 모두 앱 데이터 캐싱 측면을 보여줍니다. NCache. 2부터 시작하겠습니다 NCache 그 수를 3으로 늘립니다. 이를 증명하기 위해 서버에서 동적으로 변경할 수 있습니다. NCache 클라이언트 성능에 영향을 주지 않고 클러스터 상태를 유지합니다.

EKS 클러스터 생성

이제 데모를 시작할 준비가 되었습니다. 물론 가장 먼저 해야 할 일은 우리가 배포할 EKS 인프라를 설정하는 것입니다. NCache 서버 및 클라이언트 리소스. 여기에서는 EKS 서비스에 대한 AWS 시작하기 페이지에 있습니다. 여기에서 첫 번째 EKS 클러스터를 시작하고 실행하는 데 필요한 모든 정보를 찾을 수 있습니다. 정보에는 필요한 IAM 역할 및 정책과 같은 사전 요구 사항이 포함됩니다.

create-eks-클러스터

또한 EKS 클러스터를 배포할 VPC 생성에 대한 세부 정보를 제공합니다.

생성-eks-cluster2

아래에서 Kubernetes 클러스터의 액세스 및 관리를 위한 AWS CLI 및 'kubectlc' 명령줄 유틸리티의 설치 및 사용에 대한 정보를 찾을 수 있습니다.

생성-eks-cluster3

또한 Kubernetes 리소스를 배포할 작업자 노드를 제공하는 Kubernetes 관리 노드 그룹에 대한 정보도 포함되어 있습니다. 여기에 제공된 정보를 사용하여 2개의 퍼블릭 서브넷과 2개의 프라이빗 서브넷이 있는 VPC에 EKS 클러스터를 생성하고 EKS 클러스터가 가동되어 실행되면 나머지 데모를 진행하겠습니다.

시작하기 페이지에 제공된 이러한 단계를 사용하여 EKS 클러스터에 대한 IAM 역할과 VPC 인프라를 이미 생성했습니다. 이제 EKS 인프라를 만드는 단계를 살펴보겠습니다.

AWS 관리 콘솔

이를 위해 저는 AWS 관리 콘솔에서 Elastic Kubernetes Service 링크를 클릭하겠습니다. 그러면 EKS 서비스의 기본 페이지로 이동합니다. 페이지 왼쪽 창의 'Amazon EKS' 제목 아래에서 '클러스터' 링크를 클릭하겠습니다.

AWS 관리 콘솔2

지금은 EKS 클러스터가 없습니다. 이를 위해 '클러스터 생성' 링크를 클릭하겠습니다.

생성-eks-cluster4

여기에서 구성 매개변수를 입력하겠습니다. 따라서 EKS 클러스터의 이름인 'eks-ncache'. 'Kubernetes 버전'으로 '1.14'를 선택하겠습니다. 'IAM 역할'과 'VPC'도 선택하겠습니다. 보안 그룹을 선택하고 나머지는 모두 기본값으로 유지하고 EKS 클러스터에 태그를 지정하고 이 모든 작업이 완료되면 '만들기' 버튼을 클릭하겠습니다.

이제 EKS 클러스터 시간이 걸리므로 동영상을 일시 중지하겠습니다. 내 EKS 클러스터 페이지에서 'eks-ncache' 활성'. 두 번째 단계는 노드 그룹 관리를 만드는 것입니다. 이를 위해 '노드 그룹' 섹션까지 아래로 스크롤하고 '노드 그룹 추가' 버튼을 클릭하겠습니다.

노드 그룹 생성

노드 그룹의 이름으로 시작하는 매개변수를 입력하고 'IAM 역할'을 선택하겠습니다.

iam-역할

'SSH 키 쌍'을 선택하고 '다음'을 클릭합니다.

SSH 키 쌍

여기서는 다음 'AMI 유형'을 사용하고 '인스턴스 유형'으로 't3.small'을 사용하겠습니다. 이 후 '다음'을 클릭하겠습니다.

아미형

2개의 작업자 노드를 선택하고 '다음'을 클릭합니다.

작업자 노드

여기에서 매개변수를 살펴본 후 '만들기'를 클릭하여 노드 그룹 생성을 시작하겠습니다. 여기에서 Node Group이 현재 생성 중 상태임을 확인하므로 동영상을 일시 중지하겠습니다. 이제 EKS 노드 그룹이 '활성'이고 EKS 인프라 생성이 완료되었음을 알 수 있습니다.

생성 노드 그룹2

내 클라이언트 시스템의 PowerShell 터미널에서 AWS CLI를 사용하여 'kubeconfig' 파일을 생성하고 EKS 클러스터에 액세스할 수 있으며 'kubeconfig' 파일이 생성되었습니다. 이제 EKS 클러스터에 대한 연결을 확인하겠습니다. 그러면 EKS 관리형 노드 그룹에 포함된 두 개의 작업자 노드가 표시됩니다.

cmd를

인그레스 컨트롤러 배포

가장 먼저 할 일은 Ingress Controller에 필요한 Kubernetes 리소스를 배포하는 것입니다. 아키텍처 다이어그램으로 넘어가면 여기에 표시된 Ingress 컨트롤러는 나중에 배포할 Ingress 리소스를 구현하는 데 사용됩니다.

ncache-deployment_eks

우리의 데모에서는 NGINX Ingress 컨트롤러의 인기 때문에 사용하고 있습니다. 우선 모든 Kubernetes 환경에서 NGINX 인그레스 컨트롤러를 실행하는 데 필요한 필수 리소스를 배포한 다음 NGINX 인그레스 앞에서 클래식 로드 밸런서를 가동할 AWS 특정 리소스를 배포할 것입니다. NGINX Ingress Controller가 이 클래식 로드 밸런서를 통해 Kubernetes 클러스터 외부에서 HTTP 요청을 수신하도록 허용합니다.

이제 NGINX 수신 컨트롤러에 필요한 필수 리소스를 배포하겠습니다. 해당 리소스의 정의는 강조 표시된 섹션에 제공된 URL을 따라 찾을 수 있습니다. 따라서 더 이상 시작하지 않고 필수 리소스가 배포되었습니다. 여기에 NGINX Ingress 컨트롤러와 관련된 두 개의 리소스를 배포하는 데 사용할 YAML 파일이 열려 있습니다.

얌

첫 번째 리소스는 NGINX 인그레스 컨트롤러 앞에서 클래식 로드 밸런서를 가동하는 데 사용할 로드 밸런서 서비스입니다. 주석 섹션에서 볼 수 있듯이 로드 밸런서는 NGINX 수신 컨트롤러로 HTTP 요청을 라우팅하는 계층 7에서 작동합니다. 배포할 다른 리소스는 NGINX Ingress Controller가 Kubernetes 클러스터 내에서 작동하는 방식에 대한 구성 매개변수가 포함된 'ConfigMap' 리소스입니다.

이제 다음을 사용하여 해당 리소스를 배포하겠습니다. 'kubectl 적용' 명령 및 리소스가 배포되었습니다. EC2 대시보드로 이동하여 로드 밸런서가 회전되었는지 확인하겠습니다. 이 페이지를 새로 고치면 새로운 로드 밸런서가 도입된 것을 볼 수 있습니다. '로드 밸런서' 링크를 클릭하겠습니다. 여기 NGINX 인그레스 컨트롤러 앞의 로드 밸런서가 있습니다.

ec2-대시보드

배포 NCache 서버

이제 배포할 것입니다. NCache EKS 클러스터에 대한 서버. 아키텍처 다이어그램으로 다시 이동하면 이러한 NCache 서버는 EKS 클러스터 내에서 클러스터형 캐시를 생성하는 데 사용됩니다. 다음은 배포를 위한 YAML 파일입니다. NCache Kubernetes 클러스터에 서버. 보시다시피, 이것은 NCache EKS 클러스터 내의 서버. 다음은 연결되는 포트입니다. NCache 서버가 수신합니다. 값이 8250인 'management-tcp' 포트가 있습니다. NCache 서버는 클라이언트 연결 요청을 수신합니다. 값이 8251인 'management-http' 포트가 있습니다. NCache 웹 관리자 수신 대기하면 값이 9800인 'client-port'가 있습니다. NCache 서버는 클라이언트 CRUD 작업 요청을 수신합니다.

yaml2

사용법 - 'kubectl 적용' 명령, 이제 NCache 내 EKS 클러스터에 서버 포드를 설치하고 이제 포드의 상태를 확인하겠습니다. Pod가 실행 중입니다. 우리는 2 NCache 여기에 표시된 IP 주소를 가진 서버입니다.

cmd2

NCache 디스커버리 서비스

이제 배포할 것입니다. NCache 디스커버리 서비스. 캐시 검색 서비스는 상위에서 실행되는 헤드리스 서비스입니다. NCache 서버 포드. 그 기능은 클라이언트 응용 프로그램이 클러스터된 캐시와 연결하려고 할 때 사용할 IP 주소를 확인하는 것입니다.

ncache-deployment_eks3

다음은 Kubernetes 헤드리스 서비스에 대한 YAML 파일입니다. 우리가 볼 수 있듯이 서비스의 이름은 '캐시 서버'가 될 것입니다. 'selector' 및 'ports' 섹션을 보면 이 서비스가 NCache 서버 포드.

yaml3

이제 다음을 사용하여 EKS 클러스터에 캐시 검색 서비스 리소스를 생성하겠습니다. 'kubectl 적용' 명령. 이제 서비스가 생성되었으므로 서비스에 대한 설명을 살펴보겠습니다. 서비스가 확인하는 'Endpoints'는 IP 주소를 포함하도록 NCache 강조 표시된 섹션에 표시된 IP 주소는 여기에 표시된 IP 주소와 동일합니다.

cmd3

NCache 매니저 서비스

우리는 사용할 것입니다 NCache 웹 관리자, 클러스터형 캐시를 만들고 여기에 노드를 추가합니다. 노출시키다 NCache Web Manager에서 다른 Kubernetes 서비스 리소스를 배포할 것입니다. 다음은 Kubernetes 서비스에 대한 YAML 파일입니다. NCache 웹 관리자

yaml4

우리가 볼 수 있듯이 서비스의 '이름'은 'ncache' 및 'ports' 섹션에서 포트 80이 대상 포트 8251에 매핑됨을 알 수 있습니다. NCache 웹 관리자가 수신합니다. 'selector' 섹션을 보면 서비스가 상위에서 실행될 것임을 알 수 있습니다. NCache 서버 포드. 이 서비스는 나중에 배포할 Ingress 리소스의 백엔드에 등록되며 여기에서 브라우저에서 웹 관리자에 액세스할 수 있습니다.

이제 생성하겠습니다. NCache 다음을 사용하여 EKS 클러스터의 서비스 리소스 'kubectl 적용' 명령. 이제 서비스가 생성되었으므로 설명을 다시 살펴보고 여기서 'Endpoints'가 NCache 서비스는 다음으로 확인됩니다. NCache 서버.

cmd4

NCache 입구

이제 공개할 Kubernetes Ingress 리소스를 배포합니다. NCache 브라우저에서 웹 관리자. Ingress 리소스는 NGINX Ingress 컨트롤러에 의해 구현됩니다. 그만큼 NCache Ingress의 백엔드에 등록될 서비스는 로드 밸런서를 통해 들어오는 HTTP 요청이 NCache 웹 관리자 NCache 관리 목적. 다음은 EKS 클러스터에 배포할 Ingress 리소스에 대한 YAML 파일입니다.

yaml5

인그레스의 '이름'은 'ncache' 및 주석에서 알 수 있듯이 NGINX Ingress 컨트롤러로 구현됩니다. 또한 이러한 주석은 다음과 함께 고정 세션을 사용할 것임을 보여줍니다. NCache 웹 관리자. 따라서 다른 웹 관리자 인스턴스에서 실행되는 다른 웹 관리자 인스턴스에서 튀지 않도록 NCache 우리는 쉽게 클러스터링된 캐시를 생성하고 동일한 세션 내에서 여기에 노드를 추가할 수 있습니다. 규칙 섹션에서 URL의 루트 경로가 NCache 노출시키는 서비스 NCache 웹 관리자.

이제 EKS 클러스터에 Ingress 리소스를 생성하겠습니다. Ingress가 생성되었으므로 이제 상태를 확인하겠습니다. 이제 Ingress가 실행 중임을 알 수 있습니다. Ingress의 URL을 확인합시다. URL은 '주소' 섹션에 제공됩니다. 내 브라우저에서 이 URL을 복사하면 내 웹 관리자에 액세스할 수 있습니다. 따라서 내 브라우저로 이동하여 여기를 클릭하고 URL을 붙여넣으면 이제 성공적으로 액세스했습니다. NCache Kubernetes 클러스터 내에서 웹 관리자.

캐시 클러스터 생성

이제 클러스터 캐시를 만들 것입니다. 이제 다음을 사용하여 클러스터형 캐시를 만드는 단계를 진행하겠습니다. NCache 웹 관리자. 따라서 시작하려면 여기에 표시된 '새로 만들기' 버튼을 클릭하세요.

캐시 클러스터 생성

이제 클러스터된 캐시에 'democache'라는 이름을 지정하고 '다음'을 클릭합니다.

캐시 이름

우리는 '비동기' 모드에서 복제본 토폴로지의 파티션을 사용할 것입니다.

비동기 모드

그리고 이제 추가하겠습니다. NCache 클러스터된 캐시에 서버. 따라서 '+' 버튼을 클릭하고 다른 서버도 추가합니다. 두 서버를 모두 추가했으면 '다음'을 클릭합니다.

ncache-서버

모든 것을 기본값으로 유지하고 마지막에서 '마침'을 클릭합니다. 이제 메인 창에서 'democache'가 성공적으로 생성되었음을 알 수 있습니다.

데모 캐시 생성

시작하려면 캐시 이름 옆의 확인란을 선택하고 '시작'을 누릅니다.

데모 캐시 생성2

캐시가 성공적으로 시작되었습니다. 이제 '모니터' 탭을 클릭하여 NCache 모니터링 도구.

ncache-모니터링 도구

먼저 'Cluster Health' 섹션에서 클러스터링된 캐시가 완전히 연결되었음을 알 수 있습니다.

클러스터 상태

여기에서 다양한 서버 측 성능 카운터를 볼 수 있습니다. '카운트' 섹션에서 클라이언트 애플리케이션을 시작하지 않았기 때문에 계정이 0임을 알 수 있습니다. '클라이언트 대시보드'로 이동하여 여기에서 모니터링할 수 있습니다. NCache 클라이언트 측 성능 카운터.

클라이언트 대시보드

'보고서 대시보드'에서 서버 측 카운터와 클라이언트 측 카운터 모두를 전체적으로 볼 수 있습니다.

보고서 대시보드

클라이언트 애플리케이션 배포 및 실행

클러스터링된 캐시가 생성되면 이제 클라이언트 애플리케이션을 실행합니다. 다음은 클라이언트 애플리케이션을 EKS 클러스터에 배포하는 데 사용되는 YAML 파일입니다.

yaml6

클라이언트 이름이 있는 배포 리소스에서 볼 수 있듯이 클라이언트 애플리케이션이 실행될 하나의 포드가 있습니다. 사용된 '이미지'가 여기에 표시되며 여기에는 .NET Core 및 Java 애플리케이션뿐만 아니라 NCache 클라이언트 측을 수집할 수 있도록 클라이언트 설치 NCache 성능 카운터. 이제 클라이언트 리소스를 EKS 클러스터에 배포하겠습니다. 이제 리소스가 생성되었습니다. Client Pod의 상태를 확인해보자. 우리가 할 첫 번째 일은 시작하는 것입니다 .NET Core 애플리케이션. 클라이언트 포드 내에서 다음 셸 명령을 실행하겠습니다. "/app/testerdotmet/run.sh 데모 캐시 캐시 서버" 그것은 두 개의 매개변수, 즉 'democache'인 캐시 이름과 'cacheserver'인 헤드리스 서비스 이름을 취합니다.

명령

그리고 우리는 이제 .NET Core 응용 프로그램이 실행 중입니다. 에 다가와 NCache 모니터링하십시오. '클러스터 상태' 섹션에서 1개의 클라이언트가 있고 카운터 활동이 활용되는 것을 볼 수 있습니다. 횟수가 증가하고 있기 때문에 .NET Core 애플리케이션이 캐시에 데이터를 덤프하고 있으며 여기 '클라이언트 프로세스' 섹션에 있는 Pod의 IP가 있습니다. .NET Core 응용 프로그램이 실행 중이며 응용 프로그램의 프로세스 ID입니다. '클라이언트 대시보드'로 이동하면 클라이언트 포드에서 오는 클라이언트 측 카운터가 있는 것을 볼 수 있습니다.

클라이언트-대시보드2

'보고서 대시보드'에서는 이러한 서버 및 클라이언트 쪽 성능 카운터에 대한 전체 보기를 볼 수 있습니다.

보고서-대시보드2

이제 .NET Core 응용 프로그램이 실행 중이면 이제 Java 응용 프로그램을 시작하겠습니다. 와 마찬가지로 .NET Core 클라이언트 포드 내에서 애플리케이션과 동일한 매개변수를 사용하는 다음 셸 명령을 실행할 것입니다. .NET Core 응용 프로그램, 즉 캐시 이름과 헤드리스 서비스 이름입니다.

cmd5

여기에서 Java 애플리케이션이 실행되고 있음을 알 수 있습니다. 로 돌아오다 NCache 모니터에 2개의 클라이언트가 있고 '클라이언트 프로세스' 섹션으로 이동하면 Java 애플리케이션과 관련된 클라이언트 프로세스에 대한 또 다른 항목이 표시됩니다. 따라서 이를 통해 응용 프로그램이 NCache 동일한 Kubernetes 클러스터에서 실행되는 서버.

스케일 아웃 NCache 클러스터

이제 확장할 예정입니다. NCache 무리. 내가 할 첫 번째 일은 규모를 확장하는 것입니다. NCache 캐시 클러스터에 추가할 다른 서버가 있도록 3으로 배포합니다. 이제 배포가 확장되었으므로 서버 Pod IP 주소를 살펴보겠습니다. NCache Kubernetes 클러스터에 추가된 서버.

cmd6

그리고 새 캐시 서버를 추가하기 위해 캐시 이름 앞에 있는 '세부 정보 보기' 링크를 클릭하겠습니다.

새 캐시 서버

'서버 노드' 섹션으로 이동하여 '추가' 버튼을 클릭하고 세 번째 서버의 IP 주소를 입력하겠습니다.

추가 IP 주소

이제 서버가 추가되었으므로 서버를 시작하고 IP 주소 옆에 있는 확인란을 선택하고 '시작'을 클릭합니다.

스타트

이제 캐시 서버가 시작되었으므로 기본 창으로 돌아가서 여기 'democache'에 대한 3개의 서버가 있습니다.

3서버

모니터 창과 '개수' 섹션으로 이동하면 유효한 로드 밸런싱 전략으로 인해 노드당 수가 감소했습니다.

서버 대시보드

기본 창으로 돌아가서 캐시 이름 옆에 있는 줄임표 버튼을 클릭한 다음 '통계 표시'를 선택하여 캐시 클러스터의 다른 보기를 표시하겠습니다. 여기에서 동일한 캐시 클러스터 내에서 하나의 서버 노드에 있는 데이터를 다른 서버 노드에 의해 백업함으로써 안정성을 제공하는 활성 및 복제 파티션을 볼 수 있습니다.

통계

이것으로 이 프레젠테이션을 마칩니다. 오늘 수행한 데모에 대해 질문이 있거나 다른 기능에 대해 더 알고 싶다면 NCache 제공합니다. 주저하지 마시고 support@alachisoft.com. 감사합니다.

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.