$ gcloud preview container clusters create monetdb-r-docker --num-nodes 1 --machine-type g1-small Waiting for cluster creation...done. Create cluster succeeded! Using gcloud compute copy-files to fetch ssl certs from cluster master... Warning: Permanently added '104.155.58.68' (ECDSA) to the list of known hosts. kubecfg.key 100% 1704 1.7KB/s 00:00 Warning: Permanently added '104.155.58.68' (ECDSA) to the list of known hosts. kubecfg.crt 100% 4423 4.3KB/s 00:00 Warning: Permanently added '104.155.58.68' (ECDSA) to the list of known hosts. ca.crt 100% 1224 1.2KB/s 00:00 clusterApiVersion: 0.13.2 containerIpv4Cidr: 10.24.0.0/14 creationTimestamp: '2015-03-29T09:27:12+00:00' enableCloudLogging: false endpoint: 104.155.58.68 masterAuth: password: *********** user: admin name: monetdb-r-docker network: default nodeConfig: machineType: g1-small serviceAccounts: - email: default scopes: - https://www.googleapis.com/auth/compute - https://www.googleapis.com/auth/devstorage.read_only sourceImage: https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20150317 nodeRoutingPrefixSize: 24 numNodes: 1 selfLink: https://www.googleapis.com/container/v1beta1/projects/123456789/zones/europe-west1-b/clusters/monetdb-r-docker servicesIpv4Cidr: 10.27.240.0/20 status: running zone: europe-west1-bNext we will create the container configuration file
monetdb.json
:
{ "id": "monetdb-r-docker", "kind": "Pod", "apiVersion": "v1beta1", "desiredState": { "manifest": { "version": "v1beta1", "containers": [{ "name": "monetdb", "image": "monetdb/monetdb-r-docker", "ports": [{ "containerPort": 50000, "hostPort": 50000 }] }] } } }
With this file, we create the container:
gcloud preview container kubectl create -f monetdb.json
Then we can see that the container is being created:
$ gcloud preview container kubectl get pod monetdb-r-docker POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED monetdb-r-docker 10.24.1.3 monetdb monetdb/monetdb-r-docker k8s-monetdb-r-docker-node-1.c.my-project-id.internal/130.211.82.116 <none> Pending Less than a secondIt will take a few minutes before the container is created.
$ gcloud preview container kubectl get pod monetdb-r-docker POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED monetdb-r-docker 10.24.1.3 monetdb monetdb/monetdb-r-docker k8s-monetdb-r-docker-node-1.c.my-project-id.internal/130.211.82.116 <none> Running 3 minutes
Then you could login to the node and use the
docker
commandline tool to check the running container:
$ gcloud compute ssh k8s-monetdb-r-docker-node-1 Warning: Permanently added '130.211.82.116' (ECDSA) to the list of known hosts. Linux k8s-monetdb-r-docker-node-1 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.7-ckt4-3~bpo70+1 (2015-02-12) x86_64 === GCE Kubernetes node setup complete ===Before we can connect to the database, we need to add a firewall rule:
$ gcloud compute firewall-rules create monetdb-r-node-50000 --allow tcp:50000 --target-tags k8s-monetdb-r-docker-node Created [https://www.googleapis.com/compute/v1/projects/my-project-id/global/firewalls/monetdb-r-node-50000]. NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS monetdb-r-node-50000 default 0.0.0.0/0 tcp:50000 k8s-monetdb-r-docker-nodeAnd then we can connect to the database using the
mclient
tool:$ mclient -h 130.211.82.116 -u monetdb -ddb password: Welcome to mclient, the MonetDB/SQL interactive terminal (unreleased) Database: MonetDB v11.19.9 (Oct2014-SP2), 'mapi:monetdb://monetdb-r-docker:50000/db' Type \q to quit, \? for a list of available commands auto commit mode: on sql>\qAnd once we are done using the database, we cleanup the container to prevent additional costs:
gcloud preview container clusters delete monetdb-r-docker Waiting for cluster deletion...done. name: operation-1427629115685-c7f2c2d7 operationType: deleteCluster selfLink: https://www.googleapis.com/container/v1beta1/projects/123456789/zones/europe-west1-b/operations/operation-1427629115685-c7f2c2d7 status: done target: /projects/123456789/zones/europe-west1-b/clusters/monetdb-r-docker targetLink: https://www.googleapis.com/container/v1beta1/projects/123456789/zones/europe-west1-b/clusters/monetdb-r-docker zone: europe-west1-bAnd the last step is to remove the firewall rule as well:
gcloud compute firewall-rules delete monetdb-r-node-50000 The following firewalls will be deleted: - [monetdb-r-node-50000] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/my-project-id/global/firewalls/monetdb-r-node-50000].