컨테이너 기술의 부상은 애플리케이션 개발에 혁명을 일으켰으며, Kubernetes는 여러 머신에서 컨테이너 오케스트레이션을 선도하고 있습니다. Kubernetes는 여러 머신에서 컨테이너의 오케스트레이션을 처리하는 오픈 소스 플랫폼입니다. 이러한 Kubernetes 플랫폼 중 하나인 Red Hat OpenShift는 사용자에게 클라우드 애플리케이션을 자동으로 확장할 수 있는 기능을 제공합니다. 도커 그리고 Kubernetes를 사용하여 오케스트레이션 및 관리 서비스를 제공합니다. Kubernetes 오케스트레이션 서비스를 사용하여 컨테이너를 관리하기 위한 통합 배포 아키텍처를 제공합니다. 따라서 OpenShift는 이 간단한 컨테이너 아키텍처로 인해 인기를 얻고 있습니다.
OpenShift와 완벽하게 통합되는 한 가지 제품은 다음과 같습니다. NCache. 메모리 내 분산 캐싱 솔루션으로서, NCache 데이터가 애플리케이션에 더 가까운 캐시에 상주하므로 네트워크 트립과 데이터베이스 부하를 줄여 성능과 확장성을 향상시킵니다. 이 문서에서는 배포에 필요한 단계에 초점을 맞춥니다. NCache Red Hat OpenShift를 통해 애플리케이션의 최적의 성능과 확장성을 보장합니다.
주요 요점
운영자 주도 자동화: NCache Kubernetes 네이티브 Operator를 활용하여 배포 및 관리 작업을 자동화함으로써 OpenShift 내 분산 캐시 클러스터의 수명 주기를 간소화합니다.
역동적인 고객 발굴: 헤드리스 디스커버리 서비스를 활용하여, NCache .NET 및 Java 애플리케이션이 고정 IP 구성 없이 클러스터 변경 사항을 자동으로 감지할 수 있도록 합니다.
선형 확장성: 이 아키텍처는 더 많은 것을 추가할 수 있도록 보장합니다. NCache Pod를 OpenShift 클러스터에 추가하면 트랜잭션 처리량이 비례적으로 증가하여 데이터베이스 병목 현상이 효과적으로 제거됩니다.
크로스 플랫폼 컨테이너 지원: NCache Linux 및 Windows용 인증된 Docker 이미지를 제공하여 다양한 OpenShift 워커 노드 환경에서 고성능 캐싱을 보장합니다.
어때 NCache 레드햇 오픈시프트에 아키텍처를 배포하시겠습니까?
사용 NCache, 관리하기 쉬운 컨테이너 설정에서 고급 기능으로 OpenShift 클라우드 오케스트레이션을 최적화할 수 있습니다. 단일 Kubernetes 클러스터로 시작하여 다양한 애플리케이션을 배포하고, 가장 중요한 것은 NCache 클러스터.
현재 환경에서 실행되는 Docker 기반 컨테이너 애플리케이션은 다음과 같습니다.
- 자바 웹 애플리케이션
- 자바 웹 서비스 애플리케이션
- ASP.NET Core 애플리케이션
이러한 응용 프로그램에는 NCache 설치됨; 특히 Java 애플리케이션은 다음을 사용합니다. NCache Java 클라이언트는 별도의 배포를 위해 ASP.NET 코어 애플리케이션은 다음에서 Docker 이미지를 사용합니다. Linux 또한 .NET Core 클라이언트를 사용합니다. NCache 의사소통. 서버측 배포의 경우 다음을 사용합니다. Linux 기반 Docker 에 대한 이미지 NCache 사용 가능한 도커 허브.
애플리케이션은 Kubernetes 내의 Cache Discovery Service라는 헤드리스 서비스에 연결됩니다. 이 서비스는 Kubernetes 내에서 라우팅 및 리소스 할당을 관리합니다. NCache 클러스터. 마찬가지로 원격 모니터링 게이트웨이도 이 서비스에 연결되어 Kubernetes 외부에서 캐시 관리와 같은 작업을 위해 캐시 클러스터를 모니터링할 수 있습니다.
쿠버네티스에서 작업하는 동안 우리는 포드를 사용합니다. 기본적으로 쿠버네티스에서 IP는 포드에 할당됩니다. 포드는 컨테이너 위의 가상 계층 역할을 하면서 기본 컨테이너 인스턴스를 캡슐화하는 쿠버네티스 객체입니다. 단일 포드는 여러 컨테이너를 가질 수 있지만 단일 포드는 단일 컨테이너만 포함하는 것이 좋습니다. 간단히 말해, 쿠버네티스 클러스터의 모든 리소스 할당은 컨테이너가 아닌 포드에서 발생합니다.
다음 다이어그램은 아키텍처 흐름의 전반적인 묘사를 제공합니다. NCache 전개:

그림 1 : NCache 자동 검색 기능을 갖춘 Red Hat OpenShift 아키텍처.
기술 요구 사항 NCache OpenShift에서
| 기술 요구 사항 | 배포 사양 | 건축적 정당성 |
|---|---|---|
| 오픈시프트 버전 | 4.X 이상 | Kubernetes Operator Lifecycle Manager(OLM)와의 호환성을 보장합니다. |
| NCache 버전 | 5.0 SP1 이상 | Linux 기반 .NET/Java 컨테이너 이미지의 완벽한 지원을 위해 필요합니다. |
| 특허 | 활성 또는 평가 | 캐시 노드를 활성화하고 클러스터 관리 기능을 잠금 해제하는 데 필요합니다. |
| RBAC | cluster-admin |
사용자 정의 리소스 정의(CRD)를 등록하고 클러스터 전체 역할을 관리하려면 이 권한이 필요합니다. |
1 단계 : 배포 NCache 서버
배포 NCache Red Hat OpenShift의 서버에서는 다음을 사용하여 YAML 파일을 생성해야 합니다. NCache 구성. 이러한 YAML 배포에는 모든 애플리케이션 구성 요소가 포함되어 있으며 배포하기 쉽습니다. 요구 사항에 따라 이러한 구성 요소를 조정해야 합니다. 아래는 구성이 포함된 샘플 YAML 파일입니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: ncache labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: containers: - name: ncache image: docker.io/alachisoft/ncache:latest ports: - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
쿠버네티스는 빠르게 진화하고 있으며 새로운 기능을 계속 도입하고 있으며, 이는 빠르게 핵심 API의 일부가 됩니다. 그러나 여러 기능은 실험적 특성으로 인해 이 경로를 따르지 않습니다. 따라서 이러한 경우 "apiVersion"을 적절히 설정하세요. 여기서 사용된 버전은 기본 쿠버네티스 버전에 따라 달라지는 "v1beta1"입니다. 따라서 오래된 버전을 사용하지 않도록 하세요.
배포 파일에 언급된 포트는 다음과 같습니다.
- 포트 8250: TCP 관리용.
- 포트 8251: HTTP 관리 및 모니터링용.
- 포트 9800: 접속하는 클라이언트 애플리케이션 간의 통신을 위해 NCache.
먼저, "kind" 태그를 배포로 설정합니다. 다음은 복제본 수(이 경우 2개)이며, 논리에 따라 늘릴 수 있습니다. 포드 복제본에 대한 자세한 내용은 다음을 참조하세요. 여기에서 확인하세요컨테이너의 경우 Docker Linux 서버 이미지 경로를 제공하여 Docker 이미지를 지정해야 합니다. NCache Enterprise에서 사용 가능합니다. 도커 허브. 이 Docker 이미지를 가져오는 일반 명령은 다음과 같습니다.
|
1 |
docker pull alachisoft/ncache:latest |
필요한 모든 구성으로 YAML 파일을 생성한 후에는 OpenShift 웹 콘솔을 사용하여 파일을 가져와야 합니다. 원하는 이름으로 새 프로젝트를 만들고 YAML 파일을 다음이 포함된 프로젝트로 가져옵니다. NCache 배포. 당신은 또한 사용할 수 있습니다 OpenShift CLI 도구, 배포 상태를 보여줍니다.
2단계: 캐시 검색 서비스 생성
이전에 설정한 것처럼 캐시 검색 서비스는 모든 NCache 기본 포드와의 통신. 중앙 통신 게이트웨이 역할을 하는 이 헤드리스 서비스는 클라이언트 애플리케이션 요청을 다음 주소로 라우팅합니다. NCache 캐시 클러스터. 기본 IP 주소를 검색합니다. NCache 쿠버네티스 클러스터의 서버 포드를 통해 클라이언트 애플리케이션과 캐시 서버 간의 원활한 상호작용이 보장됩니다.
이러한 서비스를 만들려면 아래와 같이 다른 YAML을 빌드해야 합니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: Service metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None sessionAffinity: ClientIP selector: app: ncache ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
그것은 이름이 붙었다 캐시 서버 여기에서는 특정 구성에 따라 이름을 바꿀 수 있습니다. 이 경우 "종류"는 다음과 같습니다. 서비스. 또한, Discovery Service와 통신하는 데 필요한 이름과 포트 번호가 있는 포트가 포함되어 있습니다. "sessionAffinity"는 ClientIP로 설정되어 Kubernetes 클러스터 외부의 관리 및 모니터링 작업이 지정된 시간에 포드 중 하나로 일관되게 전달되도록 합니다. YAML 파일을 만든 후 마법사를 통해 이 파일을 가져오면 아래 이미지에 표시된 것처럼 Cache Discovery Service가 자동으로 빌드됩니다.

그림 2: 구성 NCache OpenShift의 캐시 검색 서비스.
3단계: 관리 게이트웨이 생성
이 단계는 Kubernetes 클러스터 외부에서 관리 및 모니터링 작업을 정리합니다. 발생하는 모든 관리 작업은 이 게이트웨이를 통해 이 Cache Discovery Service로 라우팅되며, 이를 통해 모든 기본 포드를 관리하고 모니터링하는 데 도움이 됩니다.
관리 게이트웨이를 생성하려면:
- OpenShift 포털의 "네트워킹" 섹션으로 이동합니다.
- 드롭다운 메뉴에서 "경로"를 선택합니다.
- 캐시 검색 서비스라고도 하는 헤드리스 서비스에 대한 경로를 만듭니다.
- 경로 이름을 제공하고 이전 단계에서 만든 서비스 "cacheserver"를 선택합니다. 또한 Kubernetes 클러스터 외부의 관리 및 모니터링을 위해 대상 포트 8251을 제공합니다.

그림 3: 외부 관리 경로 NCache OpenShift에서.
5. 생성 후 리디렉션되는 위치 경로를 선택하세요. NCache 관리 센터 "위치"에 대한 캐시 서버 포드 중 하나에서.
4단계: 캐시 클러스터 생성
이제 성공적으로 배포되었습니다. NCache Red Hat OpenShift에서는 다음을 사용하여 캐시 클러스터를 생성할 수 있습니다. NCache 관리 센터.
의 단계에 따라 캐시 클러스터를 생성합니다. 선적 서류 비치 그리고 사용된 IP가 캐시 포드의 IP와 동일한지 확인하십시오. 캐시 포드의 IP를 얻으려면 OpenShift 웹 콘솔이나 명령줄 도구에서 "포드" 섹션으로 이동하십시오. 캐시 생성 프로세스가 완료되면 다음을 사용하여 캐시를 시작합니다. 관리 센터.
5단계: 클라이언트 애플리케이션 배포
이제 클라이언트 배포를 포함하는 YAML 파일을 생성하여 클라이언트 애플리케이션을 배포하고 실행할 수 있습니다. OpenShift 포털을 사용하여 이 배포 파일을 가져옵니다. 클라이언트 애플리케이션은 필요에 따라 .NET Core 또는 Java로 작성할 수 있습니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: clientapp labels: app: clientapp spec: replicas: 1 template: metadata: labels: app: clientapp spec: containers: - name: clientapp image: your-client-application-repo-path ports: - name: management-tcp containerPort: 8250 |
여기서 캐시에 연결하려면 캐시 포드의 IP 주소가 필요하지 않습니다. "cacheServer"라는 이름으로 만든 캐시 검색 서비스는 런타임에 클라이언트 애플리케이션에 캐시 포드의 IP 주소를 제공합니다. NCache 클라이언트에는 지정된 서비스와 통신하고 OpenShift Kubernetes 플랫폼 내의 모든 기본 리소스를 자동으로 검색하는 내장 로직이 있습니다.
따라서 NCache 클라이언트는 서비스 이름을 제공하여 완전히 연결된 클러스터에 연결할 수 있을 만큼 지능적입니다.
6단계: 모니터링 NCache 클러스터
NCache 캐시 클러스터를 모니터링하는 데 도움이 되는 다양한 도구가 제공됩니다. 캐시 클러스터를 모니터링하면 클러스터 상태, 캐시 활동, 수행 중인 작업 수 등에 대한 실시간 정보를 얻을 수 있습니다. 또한 네트워크 중단, 메모리 오버헤드 등에 대한 적절한 조치를 취하기 위해 캐시 클러스터를 모니터링할 수도 있습니다.
The NCache 관리 센터 에서 제공하는 관리 도구입니다. NCache 캐시를 구성하고 성능을 모니터링합니다. 마찬가지로, NCache 모니터 실시간 캐시 성능을 모니터링할 수 있는 웹 관리 도구입니다.
7단계: 확장 NCache 클러스터
NCache 매우 확장 가능한 아키텍처를 갖춘 분산 캐싱 시스템입니다. 따라서 향상된 용량과 기능을 달성하기 위해 NCache OpenShift 환경에서 확장할 수 있습니다. NCache 포드를 더 추가하여 클러스터링합니다. 이 작업을 수행하는 방법에는 여러 가지가 있습니다. OpenShift 웹 포털부터 시작:
- "배포"로 이동합니다.
- "개수 편집" 버튼을 클릭합니다.
- "+" 버튼을 클릭하여 포드 수를 늘립니다.
이러한 단계를 진행하면 추가된 포드 수에 따라 배포 파일의 복제본 수가 자동으로 증가합니다. 다음을 사용하여 수행할 수도 있습니다. OpenShift CLI(oc) 도구. 이러한 포드를 추가하면 다른 포드가 생성되지만 그 자체로 클러스터의 일부가 되지는 않습니다. 따라서 캐시 서버 추가 실행 중인 캐시 클러스터로 이동하려면 서버 노드 페이지로 이동하세요. NCache 관리 센터를 열고 클러스터에 해당 서버 노드를 추가하기 위한 서버 IP를 추가합니다. 서버 노드는 런타임에 캐시 클러스터에 추가되고 성능이 크게 향상됩니다. NCache의 손쉬운 스케일링.
맺음말
기본적으로, NCache Red Hat OpenShift에서의 배포는 컨테이너화의 이점을 활용하는 따르기 쉬운 절차입니다. 컨테이너화는 오늘날 세계에서 가벼운 특성을 제공하기 때문에 떠오르는 기술적 필수 요소입니다. NCache 매우 빠른 분산 캐싱 솔루션이며 Red Hat OpenShift를 사용하면 컨테이너화된 Kubernetes 클러스터를 쉽게 관리할 수 있습니다. 그러니, NCache 몇 가지 간단한 단계만으로 Kubernetes 클러스터에서 애플리케이션을 실행할 수 있습니다.
자주 묻는 질문 (FAQ)
Q : 어떻게합니까? NCache OpenShift에서 클라이언트-서버 통신을 처리하는 방법은 무엇인가요?
A: NCache 클라이언트 검색 서비스를 사용하여 모든 활성 캐시 서버 파드의 IP 주소를 클라이언트 애플리케이션에 제공합니다. 이를 통해 .NET 또는 Java 클라이언트는 데이터가 저장된 특정 캐시 노드에 직접 소켓 연결을 설정할 수 있습니다.
Q: 역할은 무엇입니까? NCache 관리 게이트웨이?
A: 관리 게이트웨이는 관리자가 액세스하고 관리할 수 있도록 하는 브리지 역할을 합니다. NCache OpenShift 환경 외부에서 클러스터에 접근합니다. 관리 트래픽을 내부로 라우팅합니다. NCache 전체 캐시 클러스터를 공용 네트워크에 노출하지 않고도 Pod를 배포할 수 있습니다.
Q : 할 수 있습니다 NCache Windows 기반 OpenShift 노드에 배포할 수 있습니까?
A : 네. NCache 공식 Windows 기반 Docker 이미지를 제공하여 하이브리드 OpenShift 클러스터 내의 Windows 워커 노드에서 실행되는 기존 .NET Framework 애플리케이션을 지원합니다.
질문: 포드 재시작 시 데이터 영속성은 어떻게 관리되나요?
A: NCache Kubernetes StatefulSet을 활용하여 각 캐시 파드가 일관된 네트워크 ID를 유지하도록 합니다. 영구 볼륨 클레임과 결합하면 개별 파드가 재배치되더라도 클러스터의 구성과 안정성을 유지할 수 있습니다.






