$ 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-b
Next 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.jsonThen 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].