Personal Insights
Taming SAP HANA Express database Docker edition with k8s – Gardener
|
Gardener1.52.2Universal Kubernetes at Scale |
2.00.061.00.20220519.1SAP BTP – an enterprise-grade Business Technology Platform and their eponymous SAP HANA database are now both accessible to indie developers and IT professionals. And SAP is turning 50 this year:) |
This brief is to demonstrate how one could create a technology playground and upscale her or his SAP HANA, linux and cloud native skills with SAP HANA Express database deployed on a kubernetes cluster. Why so? According to a recent survey by UKISUG, there is a growing uptake of S/4HANA and at the same time there is a shortage SAP HANA (and linux) skills on the market. With the Innovation Commitment for SAP S/4HANA set until 2040…And with a very strong appeal of cloud native technologies, with kubernetes leading that appeal… So what about learning …. two birds with one …..? Pre-requisites:
Disclaimer:
|
Good to know:
- if your focus were rather on SAP HANA Cloud I would encourage you take the following free learning module instead.
- As announced at TechEd 2021, SAP is offering free access to its https://learning.sap.com/ learning hub and learning journeys https://learning.sap.com/learning-journey. Make sure you take advantage of these journeys to get training and up-skill yourself.
Putting it all together
In a way this instalment is a follow-up to the previously published Taming SAP HANA Express database Docker edition with MacOS – prepare blog. (I had been even planning to write up a configure part to it but eventually dropped the idea as I got frustrated with the prospect of having to maintain a local docker image on my laptop forever.)
So why kubernetes (k8s)? Well, with k8s one can describe a desired state management as text – a sequence of yaml declarative instructions – and have a k8s cluster fulfil these instructions.
Get your k8s cluster ready.
The rationale. |
How to prepare a k8s cluster? |
|
|
SAP HANA Express Deployment
Steps1,2 and 3 relate to k8s cluster; Steps 4 and 5 relate to hxe database
Step1 (k8s) — Create a dedicated namespace hxe to manage the hana express workload…
Step2 (k8s) — Create docker secret in that namespace…
This is a mandatory step. Please make sure you create the secret in the namespace(s) that will be used for the deployment.
$ kubectl create secret docker-registry mydockerregsecret -n hxe --docker-server https://index.docker.io/v1/ --docker-password <Password> --docker-username <username> --docker-email <email_address>
secret/mydockerregsecret created
Step3 (k8s) — Deployment process on k8s cluster
Assuming you have created the docker hub secret you can proceed with the deployment activities.
What? — Activities |
How? — Instructions (gists) |
Here goes a single deployment file with a persistent volume claim declaration for /hana/mounts volume mapping. The deployment should not take more than five minutes. While it is in progress you may: The last step is to create an API rule to get HTTP access to the webdispatcher service on port 80xx (8090 in this case) |
|
Step4 (hxe) — Post deployment activities – prepare and configure hana database
https://help.sap.com/viewer/product/SAP_HANA_PLATFORM/latest/en-US?task=discover_task
After successful deployment you may need to:
Last but not least, pretty much everything can be done in-place, from within the hana express container itself, using a terminal pod in a browser. |
|
Disclaimer.
- All the above steps were rehearsed on Gardener k8s trial cluster with Kyma 2.0. (They may not work “as is” on a BTP free-tier managed kyma cluster.)
- Please note that a BTP free-tier managed kyma cluster has one single node and the gardener trial cluster is a two-node cluster thus deploying hxe on a single node cluster may slightly vary.
Step5 (hxe) — Probes
Probe type |
Probe details |
HANA Workbench
|
<API Rule>/sap/hana/ide/ |
HANA XS Admin |
<API Rule>/sap/hana/xs/admin/ |
Webdispatcher Admin |
<API Rule>/sap/hana/xs/wdisp/admin/public/default.html |
GetServerInfo |
|
Cubes |
|
SHINE (SAP HANA Interactive Education)
|
<API_Rule>/sap/hana/democontent/epm/ui/NewLaunchpad.html
|
SAP Analytics Cloud: create a tunnel connection via SAP Cloud Connector
|
Conclusion
Last but not least, I hope you enjoyed reading this blog. Please provide your feedback in the comments section below.
![]() |
SAP is about to celebrate its 50th anniversary. Impressive isn’t it! A birthday card. I started writing this blog roughly half a year ago. In the meantime we got kyma 2.0 and hana express 2.57, so I had to revisit and retest everything. So be it my birthday card… Best wishes and Happy Birthday to SAP. |
Troubleshooting
Please refer to this gist for details on:
- Port forwarding and
- Managing Persistent volume claim
Additional resources
- Installing SAP HANA, express edition with Docker | SAP Tutorials
- Help Thomas Get Started with SAP HANA Cloud | SAP Tutorials
- Play with the SAP HANA database on Google Kubernetes cluster
- Running SAP Cloud Application Programming Model with Connection to HANA on Kubernetes
- SAP Learning Journeys
- SAP HANA Administration Guide | SAP Help
- Configuring the SAP Web Dispatcher | SAP help
Really cooool blog Piotr! 😎👍
I tried to deploy on BTP Free Tier Account Kyma Landscape - unfortunately, it didn't work 😟
I first had to turn down memory consumption - however, this didn't help a lot.
I would be very grateful for any kind of hints to make it work on BTP free tier, since I don't want to install HXE locally on my Laptop 🙏
br
Thorsten
Thank you Former Member,
I just checked and it does work. Actually it does work very well...
Yes of course you need to set the requested memory in the deployment to either 8000Mi or 8Gi. Then, the deployment should go ahead and succeed.
As this is a single node SKR (==SAP BTP, Kyma Runtime) you need to make sure there is enough CPU requests headroom. For instance in my case there is plenty of CPU headroom to go through all the configuration steps:
Please send across the stats from your SKR node describe command before and after the attempted hxe deployment.
I hope that helps; kind regards;Piotr
Thanks a lot for the instant reply, Piotr!
I adjusted memory request to 8000M - however, it still immediately chrashes
Here are my node describe results:
before:
after:
Piotr, can you maybe append your deployment yaml?
Hi Thorsten, here you go; I used the kyma dashboard to deploy it; kind regards; Piotr;
PS. just delete your hxe deployment first; (no need to remove other resources like pvc or virtual service which will be updated...);
Thanks a lot Piotr! I'll compare it to my configuration.
Hurrrrray - It's running! (after adjusting to your yamls) 🥳🥳🥳
Many thanks, Piotr!