EDUCAÇÃO E TECNOLOGIA

Install Kyma | SAP BTP Kyma Runtime Getting Started


In this article we will cover the installation of open source Kyma on a local development system.

For some background information about container engines, orchestration, Kubernetes, Kyma open source and the SAP Business Technology Platform Kyma runtime, see

Questions? Post as comment.

Useful? Give us a like and share on social media.

Thanks!

/wp-content/uploads/2016/02/sapnwabline_885687.png

Kyma 2.0

Happy Kyma-ing  : )

As illustrated on the Kyma project website, is easy. All we need to do is install a few client tools (couple of seconds) and execute two commands to provision a cluster (30 seconds) and deploy Kyma (several minutes, depending on the available resources).

For the guide, see

What’s New

Before getting started always good to check the docs. For those that have installed Kyma before, here is the delta.

With Kyma 2.0, we switched the local Kubernetes tool from minikube to k3d, which allows for a faster and more lightweight installation. The steps needed to set up a local and remote cluster are now the same.

The commands for installation have been updated as well:

  • The deploy command replaces the install and upgrade commands.
  • The undeploy command replaces the uninstall command.

For the release notes, see

Overview

As a reminder, quote/unquote:

Kyma /kee-ma/ is a cloud-native application runtime that combines the power of Kubernetes with a set of best-in-class tools and open-source components that empower you to develop, run, and operate secure and scalable cloud-native applications.

Hence, to run Kyma locally, we need to install and create a local Kubernetes cluster and deploy the Kyma runtime using the Kyma CLI (and optionally add the Kyma Dashboard).

About Local Kubernetes Clusters

Released shortly after Kubernetes, minikube has been the standard sandbox environment to run a Kubernetes locally, i.e. on a developer computer running Linux, macOS, or Windows. Minikube uses a local hypervisor and a virtual machine, which adds overhead (although configurable). More recently, lightweight alternatives like k3d and kind (kubernetes-in-docker) have grown in popularity.

For those interested, the CNCF webinar Navigating the Sea of Local Kubernetes Clusters covers the details.

/wp-content/uploads/2016/02/sapnwabline_885687.png

Prerequisites

To do: Install the software to create a local Kubernetes cluster and a Kyma runtime.

Install k3d

k3d, a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in Docker.

To learn more, see

To install k3d, you can use macOS Homebrew or Windows Chocolatey (takes about 7 seconds).

# macOS
brew install k3d # Windows
choco install k3d

For additional installation information, see

Install Docker

As you might have guessed, to run Kubernetes inside Docker we need … Docker!

To download, go to

Adjust the resources assigned to the Docker. The more the merrier.

Install Kyma CLI

To install the Kyma command line interface, we can use homebrew/chocolatey again (7 seconds).

# macOS
brew install kyma-cli # Windows
choco install kyma-cli

Install Kubectl (Optional)

The kubectl CLI not a prerequisite for Kyma but the tool is referenced in the documentation.

# macOS
brew install kubectl # Windows
choco install kubectl

Note that according to the Kubernetes documentation, you must use a kubectl version that is within one minor version difference of your cluster.

With the current Kyma default settings, a Kubernetes v1.20 cluster is deployed and hence the most recent kubectl we can use is v1.21 (and not 1.22 or latest 1.23).

The Homebrew and Chocolatey package managers typically install the latest version and getting an earlier version might be challenging. For the latest four stable versions, see

Alternatively, use curl.

New to kubectl?

/wp-content/uploads/2016/02/sapnwabline_885687.png

Create Local k3d Cluster 

Kyma CLI

To create a k3s cluster for Kyma usage, we can use the Kyma CLI (~ 30 seconds).

# Cluster with default settings
kyma provision k

For CLI command options, see

# Command help
kyma provision k3d -h # Cluster with arguments
kyma provision k3d --name='{CUSTOM_NAME}' --k3s-arg='xxx'

Note the default settings

  • Cluster name = kyma
  • Kubernetes version = 1.20

/wp-content/uploads/2016/02/sapnwabline_885687.png

Deploy Kyma

Kyma CLI

Now that we have a (local) Kuberneter cluster, we can deploy the Kyma runtime. The deployment is configurable. With limited resources, i.e. when using a lap- or desktop, include the evaluation parameter and make sure that Docker has enough resources allocated (see above).

kyma deploy -p evaluation

For information about how to configure the deployment, see

Deploying the evaluation environment takes a couple of minutes (depending on resource allocation).

Kyma Dashboard

You can install and access the dashboard with command

kyma dashboard

This will pull the latest version and start a busola container. For the documentation, see

With the Kyma dashboard we can get information and configure cluster resources.

Plus create and configure namespaces resources.

/wp-content/uploads/2016/02/sapnwabline_885687.png

Unboxing 

Docker

As k3s runs inside Docker, we can use the Docker Desktop client to take stock of containers, images, and volumes.

Behind the screen, the kyma provision command calls the k3d create cluster kyma command, triggering the download of four images. Note the (small) size of the k3s image.

Alternatively, you can inspect the environment with the docker command.

Similarly, we can use the docker command to clean up containers, images, flotsam, jetsam, lagan, and derelict.

# clean up unused resources
docker image prune -af
docker volume prune -f
docker system prune -af # remove all containers
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
# remove all images
docker rmi $(docker images -a -q)

k3s

With the kubectl command, you can query the Kubernetes cluster.

  • There are two nodes using containerd as container runtime, Kubernetes version 1.20
  • No deployments in the default namespace
  • Metrics server and CoreDNS are deployed in the system namespace
  • No etcd, k3s uses SQLite

We can create a k3s cluster using the Kyma CLI but not perform any cluster maintenance. For this, use the k3d command. For the command options, see

k3d node list
k3d cluster list # assuming default name "kyma"
k3d cluster stop kyma
k3d cluster start kyma
k3d cluster delete kyma

For more information about the k3s architecture, see

Kubectl

Using the kubectl command, you can query the cluster for namespaces, deployments, services, and pods.

# get namespaces
kubectl get namespaces
# get deployments
kubectl get deployment -o wide -n kyma-system
kubectl get deployment -o wide -n kyma-integration
kubectl get deployment -o wide -n istio-system
# get services
kubectl get services -o wide -n kyma-system
# get pods
kubectl get pods -o wide -n kyma-system

/wp-content/uploads/2016/02/sapnwabline_885687.png

Share and Connect

Questions? Please post as comment.

Useful? Give us a like and share on social media.

Thanks!

If you would like to receive updates, connect with me on

For the author page of SAP PRESS, visit

Over the years, for the SAP HANA Academy, SAP’s Partner Innovation Lab, and à titre personnel, I have written a little over 300 posts here for the SAP Community. Some articles only reached a few readers. Others attracted quite a few more.For your reading pleasure and convenience, here is a curated list of posts which somehow managed to pass the 10k-view mile stone and, as sign of current interest, still tickle the counters each month.

/wp-content/uploads/2016/02/sapnwabline_885687.png