전 세계적으로 가상화에 대한 컨테이너화의 승리는 서로 다른 컴퓨팅 환경에서 실행되는 애플리케이션 간에 성능과 안정성을 가져왔습니다. 컨테이너의 개념은 모든 인프라에서 균일성과 일관성을 보장하기 위해 소프트웨어 코드와 모든 종속성을 격리한다는 것입니다. Amazon은 다른 많은 클라우드 플랫폼과 마찬가지로 AWS 클라이언트의 증가하는 컴퓨팅 요구 사항을 충족하기 위해 Elastic Kubernetes Services를 빠르게 성숙시키고 있습니다.
Amazon Elastic Kubernetes Service 자체는 완전히 관리되고 안전하며 안정적인 Kubernetes 서비스이지만 클러스터를 관리하려면 여전히 많은 수동 구성이 필요합니다. 이러한 환경에서 애플리케이션의 성능을 보장하려면 다음을 사용해야 합니다. NCache. NCache EKS 클러스터의 대기 시간을 개선하여 애플리케이션의 성능을 높이고 확장성을 유도하는 인메모리 캐싱 솔루션입니다.
NCache 세부 정보 컨테이너 배포 NCache EKS 문서
NCache Elastic Kubernetes Service의 배포 아키텍처
방법의 기본 구조 NCache EKS 클러스터에 맞는 것은 매우 간단합니다. HTTP 요청을 EKS 클러스터 내에서 실행 중인 수신 컨트롤러로 라우팅하는 클래식 로드 밸런서가 AWS 클라우드에 있습니다. 이 클러스터 내에서 캐시 클러스터가 실행 중입니다. NCache 여러 포드 내부의 서버. 이러한 포드는 캐시 검색 서비스 캐시 서비스를 실행 중인 클러스터 포드에 대한 클라이언트 액세스를 허용합니다. 여러 포드에 여러 애플리케이션을 배포할 수 있으며 이 캐시 검색 서비스를 통해 모두 캐시 클러스터에 연결됩니다.
이 EKS 클러스터 내부에는 NCache 원격 모니터링 게이트웨이 서비스. 고정 세션이 활성화된 특정 포드로 트래픽을 낮추는 로드 밸런서 구성을 제공하는 NGINX 인그레스 컨트롤러입니다. 클러스터의 나머지 부분은 각각 고유한 배포 환경에 있는 다양한 클라이언트 응용 프로그램으로 구성됩니다.
요청 흐름 및 EKS 클러스터 구조 NCache 아래 다이어그램에 배치되어 있습니다.
NCache 세부 정보 컨테이너 배포 NCache EKS 문서
따라서 더 이상 지체하지 않고 배포 방법에 대한 단계별 가이드를 안내해 드리겠습니다. NCache AWS Elastic Kubernetes 클러스터 내부.
1 단계 : 생성 NCache 자료
모든 기능을 사용하려면 NCache Amazon Kubernetes 클러스터 내에서 제공하므로 지금 즉시 단계는 배포하는 것입니다. NCache EKS 내부 리소스. 배포 중 NCache 클러스터에서 모든 관리 작업을 수행할 수 있습니다.
배포할 수 있습니다. NCache 특정 YAML 파일의 도움으로. 이러한 각 파일에는 원활한 작업에 역할을 하는 특정 정보가 포함되어 있습니다. NCache EKS 내부. 이러한 파일은 다음과 같습니다.
- NCache 배포 파일: 이 파일에는 사용해야 하는 필수 포드 및 이미지의 실제 사양이 포함되어 있습니다. 이 정보에는 복제본 수, 이미지 리포지토리, 필요한 포트 등이 포함됩니다.
- NCache 서비스 파일: 이 파일은 배포 위에 서비스를 빌드합니다. 이 파일의 주요 목적은 서버에서 배포를 노출하는 것입니다.
- NCache 인그레스 파일: 이 파일에는 클라이언트 애플리케이션과 Kubernetes 클러스터 내에서 실행되는 Web Manager 간에 고정 세션을 생성하는 데 필요한 정보가 포함되어 있습니다.
배포해야 하는 기본 YAML 배포입니다. NCache EKS 클러스터 내부의 서비스. 이 모든 파일 중에서 가장 중요한 파일은 NCache 배포 YAML 파일. 이 파일은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
kind: Deployment apiVersion: apps/v1beta1 metadata: name: ncache-deployment labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: nodeSelector: "beta.kubernetes.io/os": linux containers: - name: ncache image: docker.io/alachisoft/ncache:enterprise-server-linux-5.0.2 ports: - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
AWS CLI에서 다음 명령을 실행하여 이 배포를 생성하면 Kubernetes는 아래에 언급된 정확한 수의 포드를 생성합니다. 대답 꼬리표. 이러한 각 포드에는 실행 중인 컨테이너가 있습니다. 이 컨테이너가 만들어지는 이미지는 영상 열쇠. 귀하의 경우, 이것이 NCache enterprise 배치된 서버 도커 허브. 그만큼 포트 태그는 노출되어야 하는 모든 포트를 보유합니다. NCache 클러스터에서 작동하는 서비스.
1 |
kubectl create -f [dir]/filename.yaml |
인용하다 NCache 문서 만들기 NCache 자료 EKS에서.
NCache 세부 정보 컨테이너 배포 NCache EKS 문서
2 단계 : 생성 NCache 디스커버리 서비스
이전 단계에서는 다음의 서버 측을 설정합니다. NCache. 이 작업이 성공적으로 실행된 후에는 NCache 클라이언트 응용 프로그램에 대한 리소스.
Kubernetes 클러스터 외부에서는 성공적인 클라이언트 통신을 위해 고정 IP 주소가 필요합니다. 아무리 편리하더라도 Kubernetes 클러스터 내에서 배포된 모든 포드에는 런타임에 클라이언트에 알려지지 않은 동적 IP 주소가 할당됩니다. 이 이상 현상은 클라이언트 응용 프로그램이 식별하지 못하는 클러스터 내부의 통신 문제를 일으킵니다. NCache 서버. 여기에서 EKS 클러스터 내부의 헤드리스 검색 서비스가 필요합니다. NCache 클라이언트가 발생합니다.
이 헤드리스 서비스는 서버의 IP 주소를 노출하여 이 문제를 해결합니다. NCache 클라이언트 응용 프로그램에 대한 서버. 이러한 클라이언트는 이러한 IP를 사용하여 필요한 캐시 핸들을 만들고 캐시 작업 수행을 시작합니다.
모든 클라이언트가 헤드리스 서비스에 쉽게 연결할 수 있도록 하려면 제공된 대로 캐시 검색 YAML 파일을 만들고 배포합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
kind: Service apiVersion: v1 # depends on underlying Kubernetes version metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None selector: app: ncache # same label as provided in the ncache deployment yaml ports: - name: management-tcp port: 8250 targetPort: 8250 - name: management-http port: 8251 targetPort: 8251 - name: client-port port: 9800 targetPort: 9800 |
이 서비스를 헤드리스 서비스로 만드는 것은 태그입니다. 클러스터IP "없음"으로 설정합니다. 이 동작은 이 서비스가 NCache EKS 클러스터 외부에서는 액세스할 수 없습니다. 꼬리표 선택자 로 설정 ncache 이 서비스가 레이블이 다음과 같은 모든 포드를 식별하도록 돕습니다. ncache 그들의 IP가 클라이언트에 노출될 수 있도록.
작동 방식에 대한 약간의 통찰력: 서버에 연결하는 클라이언트에 연결하는 하나의 서버가 해당 캐시 클러스터의 일부인 모든 서버의 IP 주소를 공유하므로 하나의 IP 주소만 있으면 충분합니다.
파일을 배포할 준비가 되면 AWS 명령줄 인터페이스에서 다음 명령을 실행합니다.
1 |
kubectl create -f [dir]/cachediscovery.yaml |
단계별 배포에 대한 자세한 내용은 다음 문서를 참조하십시오. 검색 서비스 만들기.
NCache 세부 정보 컨테이너 배포 NCache EKS 문서
3단계: 다음에 대한 액세스 생성 NCache
허용을 노출하려면 NCache 클러스터 외부에서 관리 액세스하려면 수신 컨트롤러를 설정해야 합니다. 이 컨트롤러는 컨테이너 배포에서 일반적으로 사용하는 기본 로드 밸런서 전략을 추상화합니다. 자주 사용되는 인그레스 컨트롤러는 배포 시 노출에 필요한 모든 서비스 생성을 담당하는 NGINX 컨트롤러입니다. NCache 클러스터 외부 서비스.
EKS 클러스터에 NGINX 인그레스 컨트롤러를 배포하려면 그 안에 여러 파일 배포를 생성해야 합니다. 이 파일에는 완벽하게 작동하는 NGINX 로드 밸런서를 설치하기 위해 Kubernetes 클러스터에 필요한 모든 필수 정보가 포함되어 있습니다.
아래 목록은 파일이 수행하는 작업과 필요한 이유에 대한 간략한 설명과 함께 필요한 파일입니다.
- NGINX 필수 파일: 이러한 파일은 NGINX 컨트롤러를 실행하는 데 필요한 기본 파일입니다. 귀하의 경우 EKS 클러스터 내부의 로드 밸런서가 됩니다. 이 파일은 다음에서 찾을 수 있습니다. GitHub의.
- NGINX 서비스 파일: 이 파일에는 NGINX 수신 컨트롤러를 Kubernetes 환경 외부에 노출하는 layer7 로드 밸런서에 대한 정보가 포함되어 있습니다.
- NGINX 구성 파일: 이 파일에는 Layer7 로드 밸런서를 구성하는 데 필요한 모든 매개변수가 포함되어 있습니다.
앞서 언급한 파일 중에서 NGINX 서비스 YAML은 로드밸런서를 생성하는데 필요한 포트 정보를 담고 있는 파일입니다. NCache 관리 액세스. 이 파일의 내용은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
kind: Service apiVersion: v1 metadata: name: ingress-nginx namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx annotations: ... spec: type: LoadBalancer selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx ports: - name: http port: 80 protocol: TCP targetPort: http - name: https port: 443 protocol: TCP targetPort: http |
이러한 모든 파일은 EKS 클러스터 내부에 매우 쉽게 배포되는 YAML 파일로 생성됩니다. AWS 구성 명령줄 도구에서 각 파일에 대해 다음 명령을 실행하기만 하면 됩니다.
1 |
kubectl create -f [dir]/<filename>.yaml |
실행 시 이 명령은 클러스터 내에서 고정성을 활성화하는 로드 밸런서를 생성합니다. 자세한 내용은 다음 설명서를 참조하십시오. 에 대한 액세스 생성 NCache .
NCache 세부 정보 컨테이너 배포 NCache EKS 문서
4단계: 캐시 클러스터 생성
집합적 배포 및 서비스가 준비되었으므로 이제 NCache 클라이언트가 캐시 서버에 연결할 수 있도록 클러스터합니다.
배포했을 때 NCache 비밀리에 배포한 서비스 NCache 웹 관리자도 완전히 통합되어 제공됩니다. NCache 관리 작업. 당신은 이것을 사용할 수 있습니다 NCache Web Manager를 사용하여 클러스터된 캐시를 생성하고 이를 가지고 놀 수 있습니다. 에 제공된 기본 단계를 따르기만 하면 됩니다. NCache 문서 클러스터형 캐시 생성 그리고 당신은 갈 수 있습니다! 다만 여기서 주의할 점은 추가해야 할 서버 노드의 IP가 쿠버네티스 클러스터에서 할당한 서버 포드의 IP와 동일해야 한다는 점이다. 다음을 실행하여 이러한 IP 목록과 세부 정보를 얻을 수 있습니다. 포드를 얻다 AWS 명령줄 도구의 명령.
5단계: 클라이언트 애플리케이션 배포 생성
NCache 다음과 같이 클라이언트 배포 NCache 리소스 배포는 실행 중인 클라이언트 이미지 컨테이너의 수, 애플리케이션이 배치되는 프라이빗 Dockerhub 리포지토리, 포트 등을 지정합니다. 이 정보는 완전한 기능의 클라이언트 컨테이너를 생성하는 데 도움이 됩니다.
프라이빗 리포지토리에서 클라이언트 애플리케이션을 가져오려면 매번 로그인 자격 증명을 언급해야 합니다. 이러한 번거로움에서 벗어나려면 다음을 만들 수 있습니다. 비밀.yaml 한 번 채워야 하고 모든 호출 클라이언트 리소스에 액세스할 수 있는 로그인 정보가 포함된 파일입니다. 인용하다 NCache 문서 클라이언트 배포 만들기 단계 및 YAML 파일에 대한 자세한 보기를 가져옵니다.
마찬가지로 실제 클라이언트 배포도 YAML 파일 형식으로 생성됩니다. 이 파일에는 클라이언트 애플리케이션(또는 애플리케이션, 호출)을 EKS 클러스터에 배포하는 데 필요한 모든 정보가 포함됩니다. 이 파일의 내용은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
kind: Deployment apiVersion: apps/v1beta1 # it depends on the underlying Kubernetes version metadata: name: client spec: replicas: 1 template: metadata: labels: app: client spec: nodeSelector: "beta.kubernetes.io/os": linux containers: - name: client image: # Your docker client image here ports: - name: app-port containerPort: 80 # In case of NCache client installation, add the following remaining ports - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
이미지에서 컨테이너를 배포할 때 다음 프로세스는 다음과 같이 진행됩니다.
1. 이미지는 저장소에서 액세스됩니다.
2. 클라이언트 암호 파일은 다음에서 읽습니다. NCache 인증을 위한 비밀 자원.
3. 이미지는 클라이언트 애플리케이션이 실행 중인 컨테이너에서 가져와서 배포됩니다.
여기서는 서비스가 아닌 배포가 있으므로 포드로 이동하여 AWS CLI에서 배치 명령을 실행하여 클라이언트 애플리케이션 실행을 시작해야 합니다.
1 |
kubectl exec --namespace=ncache client-podname -- /app/<clientapplication>/run.sh democlusteredcache cacheserver |
NCache 세부 정보 컨테이너 배포 NCache EKS 문서
6단계: 모니터링 NCache 클러스터
지금까지 최선을 다하는 데 필요한 모든 작업을 수행했습니다. NCache 완전한 기능을 갖춘 실행 중인 Amazon EKS 클러스터 내부. 고가용성, 확장성, 안정성 등을 단순히 배포를 통해 얻을 수 있습니다. NCache 클러스터에서. 하지만 그거 알아? 이게 다가 아니다 NCache 제공합니다.
내 말을 들어라. EKS 클러스터 내부에서 모든 작업, 저장 및 데이터 전송 중간에 NCache 당신은 할 수 있습니다 캐시 활동 모니터링 다양한 도구를 통해. 이러한 도구를 사용하면 클러스터의 상태, 성능, 네트워크 결함 등에 대해 더 잘 이해할 수 있습니다.
체크 아웃 NCache 웹 모니터 실시간 성능의 그래픽 묘사 및 NCache 통계 성능 통계를 위해.
7단계: 확장 NCache 클러스터
최고의 확장성을 제공하기 위해, NCache 런타임에 클러스터를 확장하거나 축소하여 애플리케이션의 전반적인 성능을 향상시킬 수 있습니다. 예를 들어, 노드가 증가하는 트랜잭션을 따라잡기에는 캐시 클러스터가 너무 자주 요청을 받고 있다고 생각되면, NCache 로드를 수용하기 위해 여러 서버를 추가할 수 있습니다. EKS 클러스터 내부에 있는 동안 런타임에 캐시 클러스터에서 서버 노드를 추가하거나 제거하는 방법을 보려면 다음 문서를 확인하십시오. EKS에서 캐시 서버 추가 과 EKS에서 캐시 서버 제거.
바람을 피우자
이 기사에서 단계별 연습을 경험하게 되었습니다. NCache Amazon EKS 클러스터에 배포. 여기서 눈에 띄는 질문은 왜 필요한지입니다. NCache 이미 완성된 컨테이너 환경 내부에 있습니까? 글쎄, 내가 당신을 위해 아주 빨리 요약하겠습니다.
- 인메모리 솔루션: NCache 배포된 애플리케이션의 성능을 눈에 띄게 향상시킵니다.
- 선형 확장성: NCache 캐시 클러스터의 로드가 증가할 때 유용합니다.
- 뛰어난 유연성: NCache 클라이언트 개입 없이 데이터를 동적으로 자동 재조정합니다.
AWS EKS에서 이미 제공한 기능 위에 이 모든 기능을 추가하고 애플리케이션을 실행할 수 있는 최고 수준의 환경을 확보했습니다. 그래서 무엇을 기다리고 계십니까? 배포 NCache 지금 바로 EKS 클러스터에서 직접 마법을 목격하십시오.