Review of IBM Cloud services for Kubernetes and Docker
Date when this services were used: 11.06.2020
How to access ? login page for IBM cloud
IBM provides 200 Dollar (check here ) for free of usage their service,
Please notice: that you need to verify that you would get such free services.
Well let’s look up the most notable services in small format ;)))
if you get stuck you can always look up the docu or even ask IBM trough chat and I hope they will be able to help you.
1. How much does it costs to run small webapp in the cloud?
First you need to make sure , that you have a valid credit card and that IBM accepts it, in the past I did experienced some problems with it, but recently my credit card was approved by IBM, still I wonder why it sometimes an issue(even Oracle did had such problems) if you have valid credit card.
Let’s have a look at Container registry from IBM
If you have only 5GB per month for your container then its free otherwise you will pay 0.07 Euro per Gigabyte and additionally 0.04 Euro for Storage of more then 0.5 GB.
I don’t think that I will max the 5 gb limit with very small container image ;)
IBM price's for Kubernetes clusters (no guarantee and warranty!!):
THIS LIST IS ONLY A SMALL PART OF BIG PRICELIST WHICH IBM OFFER TO THE CUSTOMERS!
Kubernetes version: 1.17.6
Free for 30 days with 1 worker node, hardware will be 2vCPUs and 4GB Ram, not bad, not bad at all!
The other option is like be billed by hour 0,09 EUR
So what’s in the free Box ?
Is there a catch?
Yes IBM does not allow to use load balancer with free kubernetes teer , so go figure it out how to make a public ip of your container…..
Don't forget to setup your over budget alerts:
2. How fast your app can be deployed into the cloud?
Upon registration of new registry , you will see this documentation
First you need IBM tools
which is ibm cloud command line program
Ok now you just need to use it with your docker for push of the image to your private IBM repository or if your initial set up was done right, you can rely on IBM cloud guidance page.
List your namespaces: ibmcloud cr namespace-list
Create namespace : ibmcloud cr namespace-add <my_namespace>
The IBM docu on page where you see you registry, does not specify that you need to make sure that you first select right region and only then you see the right description, if you don’t use the right region well you will run into problems and docker will say to you “denied: requested access to the resource is denied” and after spending some hours , you read on page ah region, man why they didn't provided the ui in such way that you can see it immediately?!
So I deployed my docker container image into IBM cloud registry, whats next?
Well I try something different route ;)
First, lets create our Kubernetes on paid and not free cluster
, the menu itself not such friendly, because you need to scroll down for specification of the cluster. Picking a region for free teer kubernetes cluster is somehow a problem , but the support from IBM trough chat was friendly enough and they provided me following link
(good tutorial about node port if you consider spending lots of time for configuring it for your free teer kubernetes cluster)
Next go trough the tutorial via the link which I mentioned earlier.
Even when I specified the EU region for the free teer in hope to get the access to Frankfurt datacenter.
I got the Amsterdam for the free teer in EU zone. This problem appears only for free Kubernetes teer.
As I already mentioned I use commercial plan for running kubernetes in IBM cloud ;)
It takes pretty long time to create a cluster in IBM cloud , at least 30 minutes to 1 hour!
(This subbjective view, maybe in your case you will spent less time,
because in your region IBM did build more faster hardware )
Check your kubectl for the right context use following command:
kubectl config get-contexts this will show your current kubectl config
ibmcloud login -a cloud.ibm.com -r eu-de -g <resourceGroupName>
ibmcloud ks cluster config –cluster <clustername>
kubectl config current-context
After that you should see the cluster name which you have created using ibm cloud web tools!
Now I need to deploy the Kubernetes Web UI ?
Here is tutorial how you can get secret toke for your dashboard!
Don’t forget to create admin for the dashboard, which is mentioned in the tutorial!
Then you need to setup load balancer, but surprise its not available for the free cluster https://cloud.ibm.com/docs/containers?topic=containers-nodeport&locale=de
If some unknown reason you can’t get your external ip address of your webapp use this tutorial
3. How easy the configuration for the deployment in the cloud?
Pushing to registry was easy, but creating kubernetes cluster was long and hard, but the IBM support via their official chat was able to provide some further details, so I managed in the end to create a free and not free clusters and put my page in running mode.
And I wondering why in 2020 web UI of IBM cloud itself there no option for free cluster for specific region? ;)
Finally, I decided to use a kubernetes cluster with commercial payment it should be covered by 200 dollars which IBM gives you to try their actual services!
4. How can you scale resources in the cloud for your application?
Trough console the experience was tedious at best, difficult, you can use openshift yeah but why bother? On small budget using Openshift is overkill actually!!!
5. Which additional services provide the cloud provider for extending your app?
I mentioned Kubernetes have nice web ui, which you can install , but there exist a default Kubernetes UI so I am not sure if installing newer Kubernetes UI web console would make any sense.
6. How easy it would be to move the webapp to another cloud provider if you find better prices, which other cloud provider offers you?
Pretty easy if you do only container stuff and don’t depend on any IBM only services.
Once created docker container can be easy moved to any Cloud provider which support kubernetes.
7. What kind of tools you need to know to be able to deploy into the cloud?
Knowing kubectl is a must, without it you lost in IBM Kubernetes cloud, then knowing IBM CLI will make you even more efficient, for bigger projects I would recommend to use Openshift but it always depends on amount of you containers and how well your devops experience with deploying into cloud providers.
I recommend ask those consultants with more experience , they will help you to avoid the common cloud Kubernetes pittfalls and you will have somebody to blame if it does not work as you expected.......
8. Is there any additional maintenance for you app?
I didn't tested it, but Kubernetes UI web console provides enough data to make some sort rational analysis about usage of your container.
What kind of tools does cloud provider give you to analyze the performance of your app?
If you need additional tools for analyzing the performance of your website hosted on IBM –Cloud well I pretty sure you can find there, but then you probably need spent some time on configuring it with your kubernetes cluster.
10. How secure the cloud environment where you running your app?
When I created the Kubernetes cluster there was on option activated to encrypt all harddrives, this actually pretty interesting , because many other Cloud providers didn’t provided such option out of the box and yes this option didn't cost anything! I think security is always a multifaceted problem, not only your cloud provider must be secure and reliable with zero faults and 99% availability , but your stuff must be secured , before deploy into production always test, i don't care what managers saying about deadline, if you don't test then watch out"there dragons who will spit fire on you" 😤😤😤😤😤😤😤
Summary: Kubernetes Deployment in IBM cloud is possible, but it feels and actually more work then it should be.
In comparison with other cloud providers, the IBM deal with free kubernetes cluster sounds at first glance great,
but then the unexpected "surprise" of disabled load balancermake the whole “game” not fun and I wasn’t able to set up NodePort for exposing public ip of my Kubernetes container.
The web UI itself of IBM Cloud dashboard is ok, but I think IBM should do some additional work for improving it, so that for example: it would be possible to create free teer kubernetes in all regions and not only by the random selection, sure you can use CLI for that , but this is not pretty and slow downs the productivity of your cloud user.
Major advantage of IBM cloud running Kubernetes would be the costs, because other cloud providers in my experience didn’t hold the initial estimates for the clusters which I have used in the past.
Would I recommend IBM cloud ?
Its really depends on your requirements: if you a startup company, which needs to be very quick on market, maybe for you Google cloud can be more flexible and best option.
(Hey Google pay me for the advertisement , i mean it with sarcasm ;)
I pretty sure somebody would disagree with my opinion and that’s ok.
because one thing with clouds is 100% sure they are in constant change , they add new services and improve infrastructure and buy new hardware.
We the cloud users must evaluate the performance and the cost of our apps and always pick the best option on the market and be flexible enough to move it around, so try out IBM cloud you will have a lot of fun!
Interested in more reviews?
Lookup following comparison table of other cloud providers.