NCache fully supports various flavors of Kubernetes including Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Server (EKS), Google Kubernetes Engine (GKE), Red Hat OpenShift Kubernetes, and more. NCache also fully supports Docker.
You can deploy NCache inside a Kubernetes cluster and access this NCache deployment both from applications running inside Kubernetes and also from outside. You can also manage and monitor these NCache clusters running Kubernetes from outside Kubernetes. The following diagram shows the deployment of NCache in a Kubernetes Cluster. This picture is the same on Azure Kubernetes Service, Amazon Elastic Kubernetes Service, Google Kubernetes Engine (GKE), Red Hat OpenShift Kubernetes, and any other Kubernetes environment.
Below are some of the concepts to understand in the above deployment of NCache in Kubernetes.
NCache fully supports Docker in the following ways.
In most situations, you are fine just using the standard Docker Image of NCache from Docker Hub. But, in some cases, you may want to create a custom Docker Image that includes your own software or other variations of even standard OS software.
One example of this is the flavor of Linux. NCache Docker Image on Docker Hub uses Debian Linux but you may want another flavor of Linux for your NCache servers; NCache works fine on multiple flavors of Linux. Or, you may want to create a custom Docker Image for your application server (NCache Client) that contains not only your own application but also NCache client software.
In all such cases, Alachisoft provides you with various Dockerfiles which you can edit and customize to fit your needs.
Dockerfiles for NCache
Here are a few examples of these Dockerfiles that you can edit to create a custom Docker Image.
Dockerfiles Example
Here is how a typical Dockerfile "NCache Enterprise Server for Windows Server Core" looks like.
# Setting base image for NCache.
FROM microsoft/dotnet-framework:4.7.2-runtime
# Setting work directory to copy setups and resources for configuring NCache.
WORKDIR /app
# Make sure that the 2 folders ("resources" and "setup") exist in the same directory as the Dockerfile.
# Make sure that "IPBinding.ps1" script resides in the "resources" folder.
# Make sure that Microsoft Visual C++ 2010 x64 Redistributable setup is placed in the "setup" folder. It can be downloaded from https://www.microsoft.com/en-us/download/details.aspx?id=14632.
# Make sure that NCache setup resides in the "setup" folder. It can be downloaded from http://www.alachisoft.com/download-ncache.html.
# Copying resources and setups into the work directory of the container.
COPY resources .
COPY setup .
# Exposing ports used by NCache for communication.
# Exposing the port at which NCache service will listen for incoming client connection requests.
EXPOSE 9800
# Exposing the port at which NCache service will listen for incoming management connection requests (NCache Manager, Monitor and Tools).
EXPOSE 8250
# Exposing the port at which Bridge service will listen for incoming connection requests from cache processes.
EXPOSE 9900
# Exposing the port at which Bridge service will listen for incoming Management connection requests (NCache Manager and Tools).
EXPOSE 8260
# Installing Microsoft Visual C++ 2010 x64 Redistributable (Prerequisite of NCache).
RUN vcredist_x64.exe /norestart /q
# Installing NCache setup.
# The parameter "INSTALLMODE" represents the NCache installation mode and has the following values:
# Rename this parameter to "EDITION" if you are building image for NCache version 4.8 or older.
# Enterprise Server Install mode = "0"
# Enterprise Remote Client Install mode = "3"
# The parameter "KEY" is the install key and is sent to user through e-mail once they download NCache setup. In case if user does not get a key, contact us at http://www.alachisoft.com/company/contact-us.html.
# The parameter "USERFIRSTNAME" represents the first name of the user.
# The parameter "USERLASTNAME" represents the last name of the user.
# The parameter "COMPANYNAME" represents the company the user works for.
# The parameter "EMAILADDRESS" represents the e-mail address of the user.
# The parameter "INSTALLDIR" represents the installation directory where NCache will be installed.
# the parameter "/qn" specifies that NCache will be installed silently without user interaction and will not prompt the user for anything.
RUN msiexec /i ncache.ent.x64.msi INSTALLMODE="0" KEY="XXXXXXXXXX" USERFIRSTNAME="John" USERLASTNAME="Smith" COMPANYNAME="Alachisoft" EMAILADDRESS="john@alachisoft.com" INSTALLDIR="C:\Program Files\NCache" /qn
# Currently, the IP during NCache installation is stored in the configuration files and it can not be made static at that point.
# However, the IP can be made static once the container is started.
# An IP Binding change task is scheduled to run when the container instance is started. This task replaces the IP with the actual IP assigned to the container.
# Creating one time executing IP Binding task that will change the IP in NCache Configuration files on the first time the container is started.
RUN schtasks /Create /TN IPBinding /SC ONSTART /TR "c:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe C:\app\IPBinding.ps1" /ru SYSTEM
# Entry point for the container, once all the required configurations have been made.
CMD start -Verbose