The NuoDB Community Edition (CE) capability is a full featured, but limits the database to one Storage Manager (SM) and three Transaction Engine (TE) processes. The Community Edition is free of charge and allows you to self-evaluate NuoDB at your own pace. The NuoDB Community Edition (CE) will allow first time users to experience all the benefits and value points of NuoDB including:
- Ease of scale-out to meet changing application throughput requirements
- Continuous availability even in the event of common network, hardware, and software failures
- NuoDB database and workload visual monitoring with NuoDB Insights
- ANSI SQL
- ACID transactions
A Kubernetes Operator written in Golang that automates the packaging, provisioning, and managing of operational tasks for Kubernetes containerized applications. By default the NuoDB Kubernetes Operator deploys the NuoDB with Community Edition (CE) capability.
Learn more about the NuoDB Operator and NuoDB.
Popular open stacks on Kubernetes packaged by Google.
Get up and running with a few clicks! Install NuoDB Operator app to a Google Kubernetes Engine cluster using Google Cloud Marketplace. Follow the on-screen instructions.
You can use Google Cloud Shell or a local workstation in the further instructions.
You'll need the following tools in your development environment:
Configure gcloud
as a Docker credential helper:
gcloud auth configure-docker
Create a new cluster from the command line:
export CLUSTER=nuodb-operator-cluster
export ZONE=us-west1-a
gcloud container clusters create "$CLUSTER" --zone "$ZONE"
Configure kubectl
to connect to the new cluster:
gcloud container clusters get-credentials "$CLUSTER" --zone "$ZONE"
Clone this repo and the associated tools repo:
git clone --recursive https://github.com/Ashutosh-Shukla/nuodb-operator-gcp-application
An Application resource is a collection of individual Kubernetes components, such as Services, Deployments, and so on, that you can manage as a group.
To set up your cluster to understand Application resources, run the following command:
kubectl apply -f "https://raw.githubusercontent.com/GoogleCloudPlatform/marketplace-k8s-app-tools/master/crd/app-crd.yaml"
You need to run this command once.
The Application resource is defined by the Kubernetes SIG-apps community. The source code can be found on github.com/kubernetes-sigs/application.
Choose an instance name and
namespace
for the app. In most cases, you can use the nuodb
namespace.
export APP_INSTANCE_NAME=nuodb-operator-1
export NAMESPACE=nuodb
Configure the container images:
export NUODB_OPERATOR_IMAGE="marketplace.gcr.io/nuodb-public/nuodb-operator:2.0"
The images above are referenced by tag. We recommend that you pin each image to an immutable content digest. This ensures that the installed application always uses the same images, until you are ready to upgrade. To get the digest for the image, use the following script:
for i in "NUODB_OPERATOR_IMAGE"; do
repo=$(echo ${!i} | cut -d: -f1);
digest=$(docker pull ${!i} | sed -n -e 's/Digest: //p');
export $i="$repo@$digest";
env | grep $i;
done
If you use a different namespace than the nuodb
, run the command below to create a new namespace:
kubectl create namespace "${NAMESPACE}"
The operator needs a service account in the target namespace with cluster wide permissions to manipulate Kubernetes resources.
Provision a service account and export its via an environment variable as follows:
kubectl create serviceaccount "${APP_INSTANCE_NAME}-sa" --namespace "${NAMESPACE}"
kubectl create clusterrolebinding "${NAMESPACE}-${APP_INSTANCE_NAME}-sa-rb" --clusterrole=cluster-admin --serviceaccount="${NAMESPACE}:${APP_INSTANCE_NAME}-sa"
export SERVICE_ACCOUNT="${APP_INSTANCE_NAME}-sa"
Use envsubst
to expand the template. We recommend that you save the
expanded manifest file for future updates to the application.
awk 'FNR==1 {print "---"}{print}' manifest/* \
| envsubst '$APP_INSTANCE_NAME $NAMESPACE $NUODB_OPERATOR_IMAGE $SERVICE_ACCOUNT' \
> "${APP_INSTANCE_NAME}_manifest.yaml"
Use kubectl
to apply the manifest to your Kubernetes cluster:
kubectl apply -f "${APP_INSTANCE_NAME}_manifest.yaml" --namespace "${NAMESPACE}"
To get the Console URL for your app, run the following command:
echo "https://console.cloud.google.com/kubernetes/application/${ZONE}/${CLUSTER}/${NAMESPACE}/${APP_INSTANCE_NAME}"
To view your app, open the URL in your browser.
Follow these examples