Summary:  Pass

All major k8s functions perform as expected:   Typical kubernetes deploy and scaling
All advanced capabilities that WB requires are available and perform as expected:  privileged, ingress, r/r/many PVC's
Highly advanced systems capabilities performed as expected for those tested:   direct node access, root access on nodes
Many ready-to-use features and services are provided within GKE:  local repository, monitor, logs, performance monitoring.
Many advanced features are available that could be put to work:   SSDs, bucket storage management and transfer tools,
volume management and transfer tools, big BIG data tooling and processing, systems-level routing/analytics/tracing (linkerd-like),
and many many more - all via the gAPI family and integrated.

Quick Boot K8s

  1. Get a free trial https://console.developers.google.com/billing/freetrial?hl=en
    1. $300 over 12 months
  2. In dashboard Enable compute engine API
    1. Go to API manager
    2. top-bar "+ ENABLE API"
    3. Select anhd enable Google Container Engine API, other dependent API's will be enable automatically
  3. From the dashboard select "container engine"
  4. Press "Create a Cluster" or QuickStart for guided instructions
  5. Choose defaults - results in a 3 node k8s cluster
    1. skip the optional parts (notes later)
  6. When cluster is up, go to container engine dashboard and get a google cloud shell:
    1. in top bar use the >_ icon to activate in-browser cloud shell to spin up a pre-configured VM in your GKE space with gcloud tooling.
    2. Copy the configuration command for your cluster - Press connect button on the cluster status line, select and copy the top access information with the copy icon, dismiss the popup.
      Looks something like:  gcloud container clusters get-credentials cluster-1 \ --zone us-central1-a --project confident-facet-616015
    3.  Paste the command into the shell prompt
  7. Kubectl should be operational - check with kubectl get pods --all-ns

Out of the Box features and tools

  1. Google cloud shell for operations - 5GB persistent homedir and button-press instatiation of ephemeral vm with tooling and homedir mapped.
    1. preconfugured VM with gcloud operational tools:  vi/emacs/nano/... git/mercurial, make/pip/npm/maven/ ...go/c++/python/... docker/sql/ipython/grpc
    2. https://cloud.google.com/shell/docs/features
    3. This is like an ops version of our old system-shell with a mapped persistent homedir - similar use to our SAVED_AND... volume in deploy-tools where state is stored.
  2. heapster
  3. fluentd
  4. DNS
  5. Dashboard
  6. privileged containers enabled
  7. ingress
  8. Oauth 2.0 integration, RBAC-ready (see optional)
  9. Status/performance/state/info configurable dashboard

Optional Features

  1. Federation - federation of multiple clusters in GKE and other providers is available
  2. Multi-zone clusters - nodes across failure-domains and regions
  3. registry - private local docker registry with code repository integration build triggering
  4. Logging via StackDriver  - Enable when provisioning, access via main menu under stackdriver
  5. Monitoring via StackDriver - Enable when provisioning, access via main menu under stackdriver
  6. preemptible nodes can be used for parts of the cluster - but they are preemptible so can evaporate, so if there is preemptible workload,
    save cost by allocating some preempitble nodes and place preemptible work there via labels, taints, or schduling affinity
  7. IAM Oauth2.0 RBAC cluster access managemement - fine grained configuration of accounts→roles managed via GKE dashboard
  8. Auto-upgrade will keep bump k8's versions on masters automatically.   Nodes can also be set to auto-upgrade or can be upgraded by hand.
    1. Master must be >= nodes always and version(master)-version(nodes) <= 2.x.x.    A 1.5.3 master is compatible with (1.{3,4}.X,  1.5.3-)
    2. Must have enough capacity in cluster to evacuate pods from the node to other while a node is rolled to avoid unschedulable pods.
    3. Auto-upgrade can be rolled-back if necessary
  9. Auto cluster-scale - will automatically scale up/down the number of nodes in the cluster based on CPU/memory
  10. Node Auto-repair - will rebuild a node that has failed, does not become ready, or becomes unready due to crash.

Tests for WB fitness

  • Tested/confirmed
    • boot cluster
    • deploy rc, scale up/dn (nginx)
    • deploy svc (nginx)
    • deploy ingress to svc nginx
      • access via local GKE, access via browser from internet
    • deploy privileged pod
  • Not tested, unknown:
    • blkdev access via privileged container to host blkdev
    • hostnetwork


  • No labels