In this quest of the Early Access Program, we would like to drive you through the installation on Kubernetes through the Helm charts as alternative to the Docker deployment. As you probably know, the Kubernetes+Helm deployment is recommended for production environments and Docker deployment is recommended for development/tests environments only.
The main goal of this quest is to let you try the installation path and hear your feedback on this modern approach of deploying Alfresco. For further details about the ACS deployment, check the GitHub repository here.
Please leave a comment to this document, after you will have completed the following tasks into your environment.
- Before you start
- Step 1 - Verifying Minikube setup
- Step 2 - Installing the ingress service
- Step 3 - Adding the alfresco incubator helm repository
- Step 4 - Deploying Alfresco Content Services
- Checking that ACS is up and running
- Accessing the services
- Cleaning up the deployment
- Now what?
Before you start
The Alfresco Content Services build using Kubernetes (or docker-compose) contains:
- Alfresco Share Services AMP.
- Alfresco Office Service (AOS).
- Alfresco vti-bin WAR (part of AOS integration).
- Alfresco Google Docs AMP.
- Alfresco Share.
- Alfresco Google Docs Share AMP.
- Postgres database.
- Alfresco Search Services (Solr 6).
We will be using Minikube to demonstrate how you can deploy the Alfresco Content Services helm charts. To use the Alfresco Content Services 6.0 reference deployment, you need to install the following software:
- Docker v188.8.131.52.
- Minikube v0.25.0. Needed to run Kubernetes locally.
- Helm v2.7.0. Package manager for Kubernetes clusters. Helm package is a Helm Chart.
If you need a tutorial providing details on creating and running a Kubernetes cluster both locally for development (using Minikube) and remotely on AWS (using kops) check: alfresco-anaxes-shipyard/running-a-cluster.md at master · Alfresco/alfresco-anaxes-shipyard · GitHub
Minikube is recommended to try the deployment in your local development environment, being a lightweight tooling that makes it easy to run Kubernetes locally. Minikube option is only useful for test purposes and it won't be supported. With the final release you will be able to choose to deploy the infrastructure to support Alfresco Content Services to the cloud using AWS too.
Step 1 - Verifying Minikube setup
Setting up and starting up minikube may be a little bit different depending on the environment you are working with. We recommend to go through the official documentation, to verify everything is working properly. Ensure that you:
- Run Minikube with at least 8GB of RAM.
- Verify Minikube version is 0.25.
Please complete step 1 described here before moving to the next task.
Step 2 - Installing the ingress service
Typically, services and pods (the smallest deployable object in the Kubernetes object model) have IPs only routable by the cluster network. All traffic that ends up at an edge router is either dropped or forwarded elsewhere. An Ingress is a collection of rules that allow inbound connections to reach the cluster services. In this task you are going to install the ingress service and retrieve the full URL for future use.
Step 3 - Adding the alfresco incubator helm repository
In this task you are going to download and install the Helm charts for the public repository.
Please complete step 3 described here before moving to the next task.
Step 4 - Deploying Alfresco Content Services
When you install Alfresco Content Services from the alfresco helm repository, you don't need to download any code locally. All the charts will be picked up from the helm repository.
As a final task, complete step 4 described here.
Please remember to use here the right URL of the ingress service, as previously installed in step 2.
Checking that ACS is up and running
The fastest and easier way to check your installation (and startup) is through the dashboard. To run the dashboard, open a terminal and run the following command.
This command will open a browser session with the Kubernetes dashboard into it. Click on the following items to check their status.
- Deployments providing declarative updates for Pods and ReplicaSets.
- Pods as groups of one or more containers.
- Services as an abstraction which defines a logical set of pods and a policy by which to access them.
In every list you should see a green light for each listed item. To check the logs, click on the
logs icon of each pod in the pods page.
After the deployment, the startup will require some minutes to be completed. Only when all the check will be green for the pods, move to the next step.
Accessing the services
During the execution of step 4 (deploying Alfresco Content Services) you should see something like:
At this point you should be able to open your browser to those addresses and check that alfresco, share and solr work fine. As you can see, the URLs are made by: the Cluster IP, the Ingress port, the usual
/solr endpoints. The login/password for the administrator profile is always
Cleaning up the deployment
Once you’ve finished looking at the deployment, you can tear it down so that it doesn’t take up memory when working with more deployments. Do reach the goal:
1. List the releases that are currently running:
2. Uninstall each release:
helm delete <release-name>
Congratulations! Now you have your environment completely clean and ready to repeat the deployment again, maybe with a different configuration and setup.
Please leave feedback on your experience and feedback in deploying Alfresco Content Services 6.0 using Kubernetes through Helm charts.