isup
is a tool for deploying Kubernetes in Docker containers to GCE using kubeadm-dind-cluster and running Istio.
A GCE account: Follow the quick-start guide to get your GCE developer environment setup. GCE application default credentials: Export your GCE application default credentials:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/gce/default/application/credentials.json
kubectl: If kubectl
client is not installed or not at least v1.8.x, then install the kubectl client.
Until dind supports Kubernetes 1.8.x, isup will only deploy Kubernetes from source. Set environment variables to customize your Istio deployment:
export ISTIO_BOOKINFO=y
export ISTIO_ADDONS=y
Download and run isup
:
curl -O https://raw.githubusercontent.com/danehans/isup/master/isup.sh
chmod +x isup.sh
./isup.sh
Building the Kubernetes binaries and images takes roughly 10 minutes on a 4 vCPU GCE compute instance. The Kubernetes deployment should complete with the following:
<SNIP>
Access dashboard at: http://localhost:8899/ui
Test access to the UI:
curl http://localhost:8899/ui
<a href="/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy">Temporary Redirect</a>.
Test access to the API using kubectl:
kubectl cluster-info
Kubernetes master is running at http://localhost:8899
KubeDNS is running at http://localhost:8899/api/v1/namespaces/kube-system/services/kube-dns/proxy
Verify the Istio svc's and pods are running:
kubectl get po,svc -n istio-system
NAME READY STATUS RESTARTS AGE
po/istio-ca-7d55f54c97-p6nj6 1/1 Running 0 1m
po/istio-egress-d45bf8cd5-xtvj4 1/1 Running 0 1m
po/istio-ingress-64559cc97-7vczs 1/1 Running 0 1m
po/istio-mixer-6bc46fb49d-z6pwc 2/2 Running 0 1m
po/istio-pilot-54f4b4d9d4-lclt7 1/1 Running 0 1m
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/istio-egress 10.108.252.107 <none> 80/TCP 1m
svc/istio-ingress 10.101.195.149 <nodes> 80:32000/TCP,443:31924/TCP 1m
svc/istio-mixer 10.106.177.185 <none> 9091/TCP,9093/TCP,9094/TCP,9102/TCP,9125/UDP,42422/TCP 1m
svc/istio-pilot 10.111.78.218 <none> 8080/TCP,443/TCP
Generate some traffic:
watch -n1 curl http://localhost:32000/productpage
View the BookInfo product page.
View values for the new metric via the Prometheus UI.
Refer to the Collecting Metrics and Logs documentation for additional details.
Access the Zipkin UI
Reference the Distributed Tracing documentation for details on how to generate tyraces using the bookinfo application.
Open the Dashboard Web UI.
Return to the dashboard to view activity.
Reference the Istio Dashboard documentation for additional details.
docker-machine rm -f $KUBE_DIND_VM