Difficulty: Introduction
Estimated Time: 10 minutes

Shiny R Applications on Kubernetes

Interact. Analyze. Communicate.

These next steps demonstrating using R based Shiny applications on Kubernetes. With a Kubernetes cluster and a CLI tool called kubectl, a few steps will get Shiny servers running.

You will learn how:

  • to use the basics of the kubectl CLI tool
  • to install Shiny R applications on Kubernetes
  • containers are deployed as Deployments in Pods
  • a Service can provide access to a Pod

Shiny is an R package that makes it easy to build interactive web apps straight from R. You can host standalone apps on a webpage or embed them in R Markdown documents or build dashboards. You can also extend your Shiny apps with CSS themes, html widgets, and JavaScript actions.

Conclusion

You now understand how to run Shiny applications on Kubernetes.

R Shiny

Lessons Learned

With these steps you have learned:

  • how to use the basics of the kubectl CLI tool,
  • how to install Shiny applications on Kubernetes,
  • how containers are deployed as Deployments in Pods,
  • how a Service can provide access to a replication of Pods.

Use this same technique to create your own containers containing your own Shiny solutions.

References


No Fluff Just Stuff

For a deeper understanding of these topics and more join me, Jonathan Johnson, for a transcendent experience on the No Fluff Just Stuff Software Symposium Tour.

R Shiny

Step 1 of 4

Your Kubernetes Cluster

For this scenario, Katacoda has just started a fresh Kubernetes cluster for you. Verify it's ready for your use.

kubectl version --short && \ kubectl get componentstatus && \ kubectl get nodes && \ kubectl cluster-info

The Helm package manager used for installing applications on Kubernetes is also available.

helm version --short

Kubernetes Dashboard

You can control the cluster with the kubectl CLI tool or through the Kubernetes Dashboard. Because the dashboard can be accessed publicly, it is protected and requires the secret access token to sign in. Copy the token from this secret.

export TOKEN=$(kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}') && echo -e "\n--- Copy and paste this token for dashboard access --\n$TOKEN\n---"

To access the dashboard, click on the Kubernetes Dashboard tab above the command line or from this link: https://[[HOST_SUBDOMAIN]]-30000-[[KATACODA_HOST]].environments.katacoda.com/. At the sign in prompt select Token and paste in the token, you copied a moment ago.

For Kubernetes clusters exposed to the public, always lock administration access including access to the dashboard.

Terminal
Shiny Demo
Shiny Wordcloud
Kubernetes Dashboard