This example provides manifest files that allow you to get a PrizmDoc Viewer cluster up and running in Kubernetes.
-
Kubernetes cluster where PrizmDoc Viewer application will be deployed. Also see Supported Kubernetes Versions.
-
Your kubectl tool should be configured to use your Kubernetes server. Your Kubernetes server provider may provide a tool to generate a kubeconfig file for this.
-
Ingress controller to manage external access to the services in the cluster. You can choose the ingress controller implementation that best fits your cluster, but you may start from installing NGINX Ingress Controller with helm package manager:
$ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm repo update $ helm upgrade nginx-ingress-controller \ bitnami/nginx-ingress-controller \ --install --wait --namespace kube-system \ --set ingressClassResource.default=true \ --set defaultBackend.enabled=false \ --set watchIngressWithoutClass=true
-
Dynamic Volume Provisioning being enabled, or a manually created Persistent Volume. Usually cloud environments provide Dynamic Volume Provisioning.
All manifest files can be found in the prizmdoc-viewer-app folder. See Deployment to Kubernetes Guidance documentation for information about resources used in the manifest files.
PrizmDoc Server is configured with prizmdoc-server-config in the prizmdoc-server.yaml manifest file. See the Configure the PrizmDoc Server for information about available options. At a minimum, for a production deployment, you will want to at least configure your license with license.key and license.solutionName.
Additionally, if you want to integrate your PrizmDoc Server cluster with the Accusoft PDF Viewer, you will need to enable "v3" Viewing Packages API in the prizmdoc-server-config and set your AWS credentials (env variables AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_REGION). See Integration with the Accusoft PDF Viewer for configuration details.
NOTE: this sample uses ReadWriteOnce access mode for prizmdoc-application-services-data Persistent Volume Claim, and it will only work on a single-node cluster. We recommend you to use S3 or Azure Blob for the PAS storage in a multiple nodes cluster, take a look at the Configuring Storage topic for further details.
First, create a namespace for the PrizmDoc Viewer:
kubectl create ns prizmdocThen deploy all manifest files with:
kubectl apply --filename ./prizmdoc-viewer-app --namespace prizmdocYou can review deployed resources with command:
kubectl get all --namespace prizmdocIt may take a few minutes to pull all the container images and complete the deployment. But, once fully started, you can use the following HTTP requests to check application health:
GET http://<your-ingress-address>:<port>/prizmdoc-server/PCCIS/V1/Service/Current/Healthshould return HTTP 200, indicating PrizmDoc Server is healthy (while starting, this request will return nothing or an error).GET http://<your-ingress-address>:<port>/prizmdoc-application-services/healthshould return HTTP 200, indicating PrizmDoc Application Services component is healthy.
Use external IP address and port of your Ingress controller service. The PrizmDoc Server API should be available at /prizmdoc-server route, the PAS API should be available at /prizmdoc-application-services route.
Now you can run one of Sample Applications with your PrizmDoc Viewer deployed to Kubernetes. Follow Self-Hosted steps when configuring connection to the PrizmDoc Viewer.