As many of you know, Kubernetes is a hot topic in the cloud world and it’s important to anyone on any cloud platform. Michael Schildmeijer presented on the topic of Oracle and Kubernetes.
But first, a quick definition:
Kubernetes is an open-source container-orchestration system for automating deployment, scaling and management of containerized applications. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation
Oracle Joins Kubernetes
In 2017 Oracle joined the Kubernetes movement. That means it also became supported or certified on Oracle Cloud. It’s certified for Oracle container engine, provisioning, Oracle Linux, Oracle Terraform Installer
Container are an evolution of machines.
- Application and software move as a whole
- VM is one big unit for all
- Container: the opposite. Small unit for one service or application
- Share the OS kernel
- Isolate resources
Challenge: Once you create enough small containers, you begin to have problems with orchestration.
Solution: Kubernetes is one option to manage and orchestrate container processes
Fact: Kubernetes comes from ancient Greek and means captain or leader
You can do it yourself
- You can start with the basic infrastructure. Create your own instance.
- Spin up master domain and availability domains
- Use a Linux image
- Another solution is to do it on premise.
- Install Linux and spin up some services
- Configure Addon yum repository
- Enable docker and login to Oracle container registry
- Set system variables
- Point to where the Kubernets Reop is locationed
- Do the yym install
- install kubeadm and configure
- setup terraform that provides kubernetes to the cloud
- Create your token for authentication
Kubernetes for Oracle Container Engine
This is a cloud ready Kubernetes engine. You can provision it through the cloud infrastructure. You can configure the container registry in the cloud admin. This is totally automatic. All the scripting has been done for you.
Oracle Container Engine still has the “classic” one but ti’s not Kubernetes.
Setup still requires setting up a Kubernetes instance and setting up some cloud keys.
Why: it’s the easy way…….although there can still be some hiccups
Kubernetes OCI and Terraform
Another way to provision the cluster is to use terraform. Oracle embraced terraform as a good way to deploy Kubernetes to the cloud. Scripts are available on Github. But you have some tasks:
- Downlaod to your client
- Generate your private /public keys
- Setup your api key to a user you want to use
- Fill your terraform environment variables with cloud instance, api key etc.
- Do your terraform plan to review and apply
- Voila, Kubernetes in the cloud
You Can Use Wercker to Deploy
It’s a company from the Netherlands that Oracle acquired. They are a CICD provider.
- Download from github
- download a special Kubernetes yaml
- add pipeline and K8s specifics
Helm and Tiller
Using the Kubernetes Greek captain theme. Helm and Tiller is a package manager.
- Helm is a client, Tiller runs as a server in kubernetes
- Comparable to YUM for Linux
- You can get the install script from Github
- download and do an init
- Then you can add Tiller and helm as an addon
Weblogic and Kubernetes
What is a Java app server doing with Kubernetes? It’s a big beast?
Answer: it’s more like an evolution. For now Oracle made it ready to run with it.
- In essence, you install a weblogic cluster inside of a Kubernetes cluster and use traefik for load balancing
- Michael is not convinced of the validity of this method.
- Weblogic is a 2 gig download and that breaks one tenet of Kubernets against large components
- There is a lot of documentation on how to install it but you need to figure out your path
It’s certified for 12.2.1.3
Weblogic, Kubernetes, Prometheus, and Grafana
Promotheus is a good tool to gather statistics for your JVM’s. Your dashboard is Grafana. Essentially, you jjust need to monitor your stack.
The same skepticism applies here as with Weblogic and Kubernetes. Think it through before you choose this option.
Oracle, Kubernetes and Alternatives
There exist a number of other alternatives. You can use Canonical on Ubuntu on Oracle Cloud.
Tips and Considerations
- The more services you spin up, the more traffic you get. Be careful and limit it as much as you can
- Use HTTP/HTTP/2 for external
- Use TCP / UDP for internal
- Serialization of applications with JSON, Coherence
- transactional applications are tough for Kubernetes.
- it’s supported but it degrades performance.
- Do it lightweight with something like JSON or Coherence
- Map application file shareable on a host-volume
- This is especially important or weblogic and with databases
- Better to use small images.
- Use base image fora as much as you can
- Ensure that settings such as JVM heap have been synchronized to pods
- Don’t make it too small. Don’t let it eat all the resources