SlideShare a Scribd company logo
1 of 28
Download to read offline
Kubernetes and the
Oracle Cloud
whitepaper
Michel Schildmeijer
Oracle’s adoption of Kubernetes as the Orchestration Platform for
containers
K8S Oracle Cloud Whitepaper
PAGINA 2 VAN 28
Contents
This whitepaper................................................................................................................ 3
The Container “Hysteria” …................................................................................................... 4
Pre-container era.............................................................................................................. 4
Get Containerized… or not?................................................................................................ 6
Use cases to go “Containerized” ......................................................................................... 7
Docker and Kubernetes ..................................................................................................... 7
Phase 1 ........................................................................................................................ 8
Phase 2 ........................................................................................................................ 8
Phase 3 ........................................................................................................................ 8
Oracle and the Cloud Native Computing Foundation .............................................................. 9
Kubernetes “do it yourself”..................................................................................................10
The Oracle Cloud Infrastructure – Next Generation ..............................................................10
Setup Kubernetes............................................................................................................12
Oracle Kubernetes Engine (OKE) ..........................................................................................14
Setup with the OCI console...............................................................................................15
.....................................................................................................................................15
The OCI wrapper .............................................................................................................17
Terraform provider ..........................................................................................................17
Applying Kubernetes using Terraform..............................................................................18
Kubernetes Deployment and provisioning ...........................................................................20
Helm and Tiller.............................................................................................................20
Implement Helm/Tiller...................................................................................................20
Helm chart repositories – KubeApps................................................................................21
Example: Install Jenkins using Helm and KubApps ............................................................22
WebLogic and Kubernetes ...................................................................................................23
Migrate Tooling.............................................................................................................23
WebLogic in Kubernetes ................................................................................................24
WebLogic Kubernetes Operators .....................................................................................24
WebLogic Kubernetes - Prometheus & Grafana....................................................................26
Conclusion Kubernetes and the Oracle Cloud Infrastructure .....................................................28
K8S Oracle Cloud Whitepaper
PAGINA 3 VAN 28
This whitepaper
A whitepaper is usually some guideline of how to start with a certain topic, subject., or in IT terms,
technology. It gives you some hints and tips to think over, in order to make decisions that will
affect your future. Those tips are usually a combination of what specific communities of a certain
subject bring out of this, in a combination with experiences from the “field”. So read this
whitepaper as a guidance, a starting point for making your own decisions, based on your specific
situations.
This whitepaper will handle the following topics:
• Brief overview of “container hysteria”;
o what is it;
o why is it there;
o why should or should I do it?
• Some background: Oracle’s recognition and adoption of Cloud Native Technologies.
o The opinion about Oracle and the Cloud.
o Informative if you are in a decision phase.
• How to start in a “do it yourself” way; “my 1st
managed container platform”.
• Oracle’s Cloud adoption of Kubernetes, ways to set up.
• Automation with Terraform.
• Kubernetes extended API’s, such as Helm/Tiller.
• Setup network, routing.
• The use of K8S operators.
• Continuous monitoring with Prometheus and Grafana.
• Oracle technologies running on Kubernetes.
• Other hints, tips and takeaways.
This whitepaper is not specific about Kubernetes or Oracle technology but a bit of both.
After reading this whitepaper, you hopefully have more insight in this sometimes-complicated
matter, in what to choose, and what not. It could be that specific to you own situation, the
outcome of a conclusion could be totally different that you’d expected!
K8S Oracle Cloud Whitepaper
PAGINA 4 VAN 28
The Container “Hysteria” ….
It might sound to you like an odd title for a bestseller, but I’d like to emphasize this topic because
in the world arounds us, especially the IT world, hypes around new technologies pop up so every
now and then, which is good, I think. It helps us to innovate, and follow new innovations and place
them into the right context.
However, sometimes decisions are made based on hypes because no company wants to get
running behind the facts, and come to the conclusion that one “should have” instead of “could
have:
Now there could be several drivers for a company to choose a container strategy, but let’s first
have a look what is meant by the term “container” in this discussion, and how we should interpret
this.
Pre-container era
In the traditional way of how IT is served is usually an application or a suite of applications
installed on a piece of hardware, server or multiple servers combined with infrastructure software,
perhaps application server software and connecting to one or more database to insert or extract
data from.
Virtual Machine Engines
Bare Metal Servers
Container Engines
K8S Oracle Cloud Whitepaper
PAGINA 5 VAN 28
Bare metal hardware
With the coming of virtualization software applications didn’t have to be installed on bare metal,
with no isolation of network, security and so on but one piece of hardware. Applications use all
resources with less control of these, unless some other piece of software is installed to control this.
Virtualization
Servers no can be divided into multiple virtual parts, called virtual machines. In a way they are still
servers in a server. They are using virtualization with a so-called hypervisor to consume hardware
resources such as storage, compute power and network could be share, but also important, a level
of isolation can be accomplished.
Containerization
Giving one good definition of what a container means in this discussion is tough, but let’s give it a
try.
There are some characteristics containers have such as
• Small unit for one or a few services or small application
• They share the OS kernel
• They make use of shared resources, but an isolated segment is dedicated for them
• It’s a lightweight configured package with storage, network, and application artifacts in
one
In the next figure, you can see on a high level the differences between virtual machines and
container.
Server Server
Core Operating System
VM Engine (Hypervisor)
Core Operating System
Guest OS Guest OS
Container Engine
bin/libs
App B
bin/libs
App B
bin/libs
App B
bin/libs
App B
Virtual Machine Container Technology
K8S Oracle Cloud Whitepaper
PAGINA 6 VAN 28
In essence, the container principle is something already existed in the early days of UNIX, called
chroots, where a program can run in an isolated part. In specific terms: You create an artificial root
access that only allows you to see the operating system that you specified, all configuration options
you need are set up, and then implement your code into it and you have something like a
container.
Further evolution resulted in nowadays container engines, where the most well-known and more or
less the standard is Docker.
So, the most important container technologies are:
• Docker – Runs as a process, is based on Linux Containers, they do not run an
independent version of the OS kernel.
• CoreOS – Using an opensource Container Image, now part of RedHat’s OpenShift
• LVE – Lightweight virtual environments– Thread based kernel-level technology
All these technologies are supported and certified by the Open Container Initiative (OCI).
Get Containerized… or not?
Moving to containerization is some sort of an evolution process companies will go through. Some
companies are at the beginning of it, or maybe not even started because there is no direct need for
it. Containerization never comes by itself, it’s a result of companies looking at other ways of
programming their applications, moving their application workload to the cloud, adopt an agile way
of working; there can be many reasons to start to containerize.
K8S Oracle Cloud Whitepaper
PAGINA 7 VAN 28
Use cases to go “Containerized”
Case Container Use Case
Development Developer productivity;
Consistent; app stacks in Dev,
Test & Production
CI/CD Containerized dependencies;
Container registries;
Operations Standardized environments for
dev,
testing and operations
Legacy Refactor from applications tier
to portable
containerized applications
Cloud Strategy Move entire application
landscape and see
them run identically in the
cloud
Microservice Strategy Create small purpose-built
services to break monoliths
into scalable
custom applications
Docker and Kubernetes
Though there are several technologies available, two of them are more or less leader in the market
and the de-facto standard for containers and container management.
So, looking at cloud native technologies, Docker and Kubernetes go hand in hand, where
Kubernetes manages Docker-style container processes on different levels.
K8S Oracle Cloud Whitepaper
PAGINA 8 VAN 28
There are of course some other technologies which do more or less the same
Before companies have a mature container platform, they usually go through some stages of
adoption:
Phase 1
Developer focus: Adoption by Developers for their Dev and maybe Test apps. They have a simple
setup of their orchestration, so not enterprise ready yet.
Phase 2
A second phase usually results in a first DevOps deployment where a level of automation has been
reached. A team deploys Production ready apps and uses already more advanced orchestration.
Phase 3
In this phase a broad integration of business applications is accomplished and the level of
automation, releasing and continuous monitoring becomes om a large scale.
K8S Oracle Cloud Whitepaper
PAGINA 9 VAN 28
Oracle and the Cloud Native Computing Foundation
• Oracle is a large company which aim is selling services, software and solutions to
customers, just as other software vendors do. But they also realize they have to get
influence in the opensource movement and for Oracle it means that their Cloud Container
platform was adopted and certified by the CNCF in 2017. Oracle is actively participating
Cloud Native Compute Foundation and Kubernetes (see
https://www.cncf.io/about/members/)
Being adopted and certified gave a huge boost to the cloud native technologies Oracle now delivers
in its 2nd
generation Cloud, and had some great benefits|:
• There is no forked code – straight from the source
• Oracle software on in the Docker Store and its own container registry
• Kubernetes engineering comes out in the CNCF
• Java SE/EE movement to open sourcing; transparent processes; Innovate in open source
• Cloud provisioning utilities such as K8S terraform install
• Sponsor & contribute to key conferences such as DockerCon, Kubecon, CoreOS Fest, other
to become a mature player in the market.
K8S Oracle Cloud Whitepaper
PAGINA 10 VAN 28
Kubernetes “do it yourself”
Now every big Cloud vendor presents a Kubernetes Engine in the cloud, easy to setup, but of
course you can build such an environment all by yourself:
EKS by Amazon
OKE by Oracle
GKE by Google
AKS by Microsoft
And some other like Digital Ocean.
So, you can set it up like:
- Using it on premises in your own datacenter
- Or spin up compute at any Cloud provider (AWS, Google, Azure, Oracle) just as you would
do on premises
In the Oracle Cloud Infrastructure, you will have to set up a few things before you can start. I
won’t dive into what you need to have an Oracle Cloud base IaaS, but more like the requirements
needed for running your own managed Kubernetes.
The Oracle Cloud Infrastructure – Next Generation
The 2nd
generation of the Oracle IaaS platform shows us a more mature, coherent platform which
can cope up with its competitors. You can see more or less the same services available, and of
course the Oracle extra’s.
Either you use OCI to create servers, or you use on premise servers, the principle remains the
same: you will have to build it up yourself.
OCI now knows something like a compartment, a logical unit within your Cloud Infrastructure
where you can build up anything you need, isolated from another created compartment.
Creating your IaaS Servers in your “Demo Compartment”
K8S Oracle Cloud Whitepaper
PAGINA 11 VAN 28
In here you create your VM, define the O/S template, shape (compute power etc), availability
domain (the cloud datacenter location), virtual cloud and other network components.
So, if you have your servers the following need to be done, if not there:
- Update your YUM repositories
- For non-Oracle Linux:
- For Oracle Linux:
Furthermore, you need to connect to some container registry; this can be the standard Docker one
or the one that Oracle maintains.
# docker login container-registry.oracle.com
cat <<EOF > /etc/yum.repos.d/kubernetes.repo > [kubernetes]
>name=Kubernetes
>baseurl=https://packages.cloud.google.com/yum/repos/kubernete
s-el7-x86_64
> enabled=1 > gpgcheck=1 > repo_gpgcheck=1
[ol7_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/addons/$bas
earch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
K8S Oracle Cloud Whitepaper
PAGINA 12 VAN 28
Setup Kubernetes
There are several ways to setup Kubernetes
• First set to Kubernetes system variables
• Install kubeadm through YUM
• Init Kubernetes does some basic Kubernetes setup
However, doing a yum install to an Oracle YUM repository delivers you a setup script,
kubeadm-setup.sh which you can use:
This does the following
• Sets up the Kubernetes master
• Sets up basic cluster RBAC
• Sets up basic DNS
• Deploys the Kubernetes Dashboard and sets up a proxy access to it
# export KUBE_REPO_PREFIX=container-registry-ash.oracle.com/kubernetes
# echo 'export KUBE_REPO_PREFIX=container-registry-ash.oracle.com/kubernetes' >>
~/.bashrc
yum install kubeadm
kubeadm init
K8S Oracle Cloud Whitepaper
PAGINA 13 VAN 28
When finished, execute some of the following to have a basic system running
And verify the basics are running well
To get access to the graphical dashboard you can extract the token for login in
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
kubectl -n kube-system describe $(kubectl -n kube-system 
get secret -n kube-system -o name | grep namespace) | grep token
K8S Oracle Cloud Whitepaper
PAGINA 14 VAN 28
Oracle Kubernetes Engine (OKE)
In the 1st
generation Cloud IaaS services Oracle provided, there was a Docker Engine in the cloud
called OCCS (Oracle Container Cloud Services) which had a graphical interface to manage the
Docker containers, but it was not Kubernetes yet.
Managed Docker engine in the Oracle Cloud v1
With generation 2 Oracle provides an engine, with a lot of similarities from other Kubernetes
Engines from other Cloud providers.
OKE is a configured Kubernetes engine in the Oracle Cloud and can be setup in several ways.
K8S Oracle Cloud Whitepaper
PAGINA 15 VAN 28
Setup with the OCI console
Within the OCI Cloud console there is a preconfigured OKE to be found, where you with a few
simple clicks can get up and running a Kubernetes Cluster in the Oracle Cloud.
You will have to login into your Cloud dashboard, select Compute where you will end up in the OCI.
There you can find the OKE under Developer Services.
,
Here you setup your Kubernetes engine where almost everything will be configured for you. To
work and setup this wat, your cloud account needs to have the OKE role, set by the Cloud
Administrator:
allow service OKE to manage all-resources in tenancy
This has to be set on the root level of your Cloud tenancy and added to your user account /group.
K8S Oracle Cloud Whitepaper
PAGINA 16 VAN 28
Other important things to think of to be able to create and/or manage clusters, you must belong to
one of the following:
• The tenancy's Administrators group.
• A group to which a policy grants the appropriate Container Engine for Kubernetes
permissions so grant the group the following permissions:
▪ VCN_READ and VCN_CREATE
▪ SUBNET_READ and SUBNET_CREATE
▪ COMPARTMENT_INSPECT
▪ INTERNET_GATEWAY_CREATE
▪ ROUTE_TABLE_UPDATE
▪ SECURITY_LIST_CREATE
In the screen setup you will have to fill in some simple entries such as:
• Name of the cluster
• Kubernetes version
• With the Quick Create a Virtual Cloud Network will be created for you
• In the Node Pool create you can specify the compute shape
• Also enable Helm and Tiller
After having the cluster running, it’s best to access it from a local Linux client. Here you will need
the kubeconfig file and the OCI wrapper.
K8S Oracle Cloud Whitepaper
PAGINA 17 VAN 28
The OCI wrapper
For setting up access form your local client and applying your Kubernetes cluster to be accessed
and managed locally.
First you need to download OCI, from GitHub
Afterwards, you can set it up locally to access it.
Terraform provider
Oracle has adopted the Terraform provider as the cloud provisioning where you can setup an
infrastructure with some environment files and terraform executables. Here’s is a diagram the way
Terraform works for OCI:
First of all, it is necessary to generate an API keypair and fingerprint on your local client, to be
imported into your Cloud environment.
mkdir -p $HOME/.kube
oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.eu-frankfurt-
1.aaaaaaaaaftggnbqgq2dam3fmi4tamrvmu3tkyrugmytgyzqgcrtinzzmmzw
--file $HOME/.kube/config
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-
cli/master/scripts/install/install.sh)"
K8S Oracle Cloud Whitepaper
PAGINA 18 VAN 28
The keypair needs to be converted to a compatible format for OCI:
This you can add
Applying Kubernetes using Terraform
The official OCI Terraform provider can be found on https://github.com/oracle/terraform-
kubernetes-installer where also is described a step to step installation of the provider and
terraform it selves.
Important to know Terraform about installing Kubernetes in the Oracle Cloud are:
• Download and install the terraform package on you client
• Download and install the OCI Terraform Provider (v2.0.0 or later)
• Use a Terraform configuration file at that specifies the path to the OCI provider:
File: ~/.terraformrc
providers {
oci = "<path_to_provider_binary>/terraform-provider-oci"
}
• Have kubectl installed
• Use an environment file to specify the Cloud specifics, or if the file becomes to big separate
into logical parts (storage, compute shape, network etc.)
K8S Oracle Cloud Whitepaper
PAGINA 19 VAN 28
Env file example
Finally, you will have to create a proxy route between your local client and the Kubernetes API
Server, usually a simple command
kubectl proxy
With this you can access the Kubernetes dashboard locally
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-
dashboard:/proxy/
You can set this as a daemon so it will run as a service in your client
The dashboard can also be exposed using an Ingress resource, but beware if that you do this
secure with HTTPS/TLS and an extra annotation in you PodSpec:
nginx.ingress.kubernetes.io/secure-backends: "true"
K8S Oracle Cloud Whitepaper
PAGINA 20 VAN 28
Kubernetes Deployment and provisioning
This section describes some ways of how to get your Kubernetes environment alive with running
deployable applications using with the tools available. Focus is the broad tools and specific to the
Oracle Cloud, using Oracle Container Pipelines.
Helm and Tiller
Helm/Tiller is a release and package management tool for Kubernetes, where Tiller runs as a
service component at Kubernetes side, while Helm is on the client side. It’s a bit comparable with
the Yum installer.
Implement Helm/Tiller
Very easy to do:
And see Tiller is running:
Or, when running OKE, you can enable it when creating
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh
K8S Oracle Cloud Whitepaper
PAGINA 21 VAN 28
Helm chart repositories – KubeApps
There is a huge helm repository available to install Helm charts in your Kubernetes cluster, which is
called KubeApps
First you need to add the repository:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install --namespace kubeapps -n kubeapps bitnami/kubeapps
Next, you need to set the proper permissions to make use of it:
kubectl create serviceaccount kubeapps-operator
kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --
serviceaccount=default:kubeapps-operator
Finally, you can access the KubeApps dashboard:
echo "Kubeapps URL: http://127.0.0.1:8080"
export POD_NAME=$(kubectl get pods --namespace kubeapps -l "app=kubeapps" -o
jsonpath="{.items[0].metadata.name}")
kubectl port-forward --namespace kubeapps $POD_NAME 8080:8080
K8S Oracle Cloud Whitepaper
PAGINA 22 VAN 28
Now, when you want to install something, you also need to enable tiller RBAC
Example: Install Jenkins using Helm and KubApps
Get the Jenkins URL, un/pwd, exposed by the ingress controller
kubectl create serviceaccount --namespace kube-system tiller
serviceaccount "tiller" created
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-
admin --serviceaccount=kube-system:tiller
clusterrolebinding "tiller-cluster-rule" created
kubectl patch deploy --namespace kube-system tiller-deploy -p
'{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
deployment "tiller-deploy" patched
helm install bitnami/jenkins
NAME: messy-bobcat
LAST DEPLOYED: Wed Oct 3 05:56:18 2018
NAMESPACE: default
STATUS: DEPLOYED
export SERVICE_IP=$(kubectl get svc --namespace default messy-bobcat-jenkins -
-template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")
echo "Jenkins URL: http://$SERVICE_IP/“
Jenkins URL: http://130.61.15.94/
echo Username: user
echo Password: $(kubectl get secret --namespace default messy-bobcat-jenkins -
o jsonpath="{.data.jenkins-password}" | base64 --decode)
K8S Oracle Cloud Whitepaper
PAGINA 23 VAN 28
WebLogic and Kubernetes
Oracle has done a lot already to make its products ready for Kubernetes. With WebLogic as the
strategic platform to develop Enterprise Business applications, it is obvious that this platform must
be possible to run with Docker and managed with Kubernetes.
However, from a container standpoint it is to my opinion a bit trivial to put an entire platform into a
container, especially when you look at containerization (small, lightweight, portable), and the new
way of developing applications (microservices). You might ask if a platform such as WebLogic in its
current form is still the way to go.
However, Oracle provides Kubernetes support for WebLogic with the following:
• WebLogic and Docker certification
□ Docker images, Dockerfiles
• WebLogic 12.2.1.3 Kubernetes
• Manage, migrate and deploy
□ Management: WLS K8s Operator
□ Monitoring: Exporter for Prometheus
□ Migration: Deploy tooling
• Certification on Oracle Cloud
□ OCI K8S cluster created with Terraform
□ Oracle Kubernetes Engine
• WebLogic running in Docker PODs in Kubernetes
□ WebLogic 12.2.1.3+
□ Oracle Linux 7
□ Kubernetes 1.7.5, 1.8.0, 1.9.0, and 1.10.0, and the latest 1.12
□ Docker 17.03-ce
□ Network Fabric - Flannel v0.9.1-amd64
▪ Or others like Traefik, Apache
□ Config resources (JDBC, JMS, JTA)
□ Auto scaling (WLDF and Prometheus)
Migrate Tooling
• Still in an early phase, but this tool provides some strong capabilities for getting your
WebLogic domain migrated to Kubernetes:
• Domain introspection to:
□ Create a model, a yaml file of your entire domain
□ Migrate existing domains and upgrade them to 12.2.1.X
□ Tested on 10.3.6 to 12.2.1.X
• Customize to get “Kubernetes ready”
• Create WebLogic domain docker images
K8S Oracle Cloud Whitepaper
PAGINA 24 VAN 28
WebLogic in Kubernetes
This diagram shows us a typical setup of a WebLogic domain in a Kubernetes Cluster where the
WebLogic Admin and managed servers are each running in a pod, but the WebLogic Cluster spans
between de different nodes. And finally, the Ingress/Egress controllers are managed from out the
Kubernetes Cluster using a load balance resource (Traefik).
WebLogic Kubernetes Operators
Operators are API’s to extends the capabilities of the standard Kubernetes API. With them you can
configure & manage more complex instances and actions.
Specific purposes and use cases for Operators are:
□ Stateful systems like databases because they are the most stateful
□ Also meant to leverage more experience based and operational knowledge to k8s
The operators come from knowledge out of the field in a software driven solution.
A few of these operators are
• Generic operators:
□ By CoreOS
▪ Etcd –Storing data across cluster
▪ Prometheus
K8S Oracle Cloud Whitepaper
PAGINA 25 VAN 28
• Oracle Operators:
□ MySQL Operator
□ WebLogic Operator
Of course, you can develop one yourself for a specific purpose.
The current WebLogic Operator which is meant to do simpler WebLogic management in
Kubernetes, version 1.1 supports the following:
• Kubernetes resources are allocated for WebLogic domain(s)
• Manages overall WebLogic environment through Kubernetes APIs
□ Load Balancer, Network,
□ Ingress Controllers,
□ Security,
□ HA restart, upgrade, scaling
□ Persistent storage for domain shareables
• Ensures WebLogic best practices are followed
• V2.0 is planned to come out in 2019 and will be extended with persistent volumes for
logfiles and Helm Charts.
To install the current version of the operator, the following prerequisites are required:
• Kubernetes 1.10.11+, 1.11.5+, and 1.12.3+
o kubectl version
• Flannel networking v0.9.1-amd64
o docker images | grep flannel
• Docker 18.03.1.ce
o docker version
• Helm 2.8.2+
o helm version
• Oracle WebLogic Server 12.2.1.3.0 with patch 29135930, the latest has this patch already
• Configure the cluster-admin role to install the operator.
K8S Oracle Cloud Whitepaper
PAGINA 26 VAN 28
WebLogic Kubernetes - Prometheus & Grafana
Prometheus and Grafana are well known Open Source tools Opensource tools to monitor your stack
where Prometheus feeds Grafana, and Grafana visualized the data collected. Also, the tools we’re
adopted in 2016 to the CNCF so the obvious tooling for Kubernetes to monitor.
Also, WebLogic in Kubernetes has capabilities to be monitored with Prometheus and Grafana. The
tools are feeded with JMX Metrix out from WebLogic Diagnostics Framework (WLDF) using the
WebLogic Monitor Exporter application which needs to be deployed as a war in your WebLogic
domain.
The wls-exporter gathers mbean metrics using a JSON config file in combination with a WLDF
query. Below is an example of a query of a particular web application:
K8S Oracle Cloud Whitepaper
PAGINA 27 VAN 28
Below in the diagram is show how wlsexporter feeds data to Prometheus
1. WLDF Query is configured and executed
2. wlsexporter gathers these metrics
3. In Prometheus, the WebLogic data is processed by the exporter
4. Through a datasource connected with Grafana the data can be visualized
K8S Oracle Cloud Whitepaper
PAGINA 28 VAN 28
Conclusion Kubernetes and the Oracle Cloud Infrastructure
There are a lot of conclusions to be made, and there are a lot of opinions about Oracle “far too
late” Cloud strategy. A lot of these opinions are based on emotions, heard stories about Oracle and
how they approach customers. But in this whitepaper, I’d like to stick with the facts, and the facts
are that Oracle is doing a good when it comes to Kubernetes and containerization and certainly as
much as good as the other big players on the market. However, their position is not in the top 3
and it will be difficult for Oracle to reach that.
Nevertheless, Kubernetes is perfectly fit for the Oracle Cloud with lots of options to use and
implement.
Some of the most important key take-aways to setup and use a Kubernetes Cluster in the most
optimal way are:
• The more services, the more data exchange / network traffic; so, beware of a lot traffic
• Scale enough resources for all your services
• Use HTTP(s)(HTTP/2) for external traffic
• Use TCP/UDP for internal application traffic such as serialization of applications
o Maybe use a caching solution such as coherence
• Map application files shareable on a host-volume
• Keep docker as small as possible
• Use base image for as much as possible purposes
• Ensure that settings such as JVM heap has been synchronized to pods
• Use Kubernetes resource limits but adjust them to specific application needs
Example of a resource limit yaml
resources:
requests:
cpu: 50m
memory: 50Mi
limits:
cpu: 100m
memory: 100Mi
I can assure you, to choose Kubernetes in combination with the Oracle Cloud Infrastructure is
certainly a good choice with a lot of benefits, technology choices and different options!

More Related Content

What's hot

OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013Michael Lessard
 
Openstack architecture for the enterprise (Openstack Ireland Meet-up)
Openstack architecture for the enterprise (Openstack Ireland Meet-up)Openstack architecture for the enterprise (Openstack Ireland Meet-up)
Openstack architecture for the enterprise (Openstack Ireland Meet-up)Keith Tobin
 
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade PlatformOSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade PlatformNETWAYS
 
MANTL Data Platform, Microservices and BigData Services
MANTL Data Platform, Microservices and BigData ServicesMANTL Data Platform, Microservices and BigData Services
MANTL Data Platform, Microservices and BigData ServicesCisco DevNet
 
Openstack training material
Openstack training materialOpenstack training material
Openstack training materialchenvi123
 
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureReview Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureLucas Jellema
 
Openstack Architecture
Openstack ArchitectureOpenstack Architecture
Openstack ArchitectureSrbIT
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013aspyker
 
Red Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud InfrastructureRed Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud InfrastructureAlex Baretto
 
Mirantis OpenStack 4.0 Overview
Mirantis OpenStack 4.0 OverviewMirantis OpenStack 4.0 Overview
Mirantis OpenStack 4.0 OverviewMirantis
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesSamuel Terburg
 
OpenStack - Infrastructure as a service
OpenStack - Infrastructure as a serviceOpenStack - Infrastructure as a service
OpenStack - Infrastructure as a serviceDenis Cavalcante
 
The Messy Underlay Dilemma - automating PKI at Defragcon
The Messy Underlay Dilemma - automating PKI at DefragconThe Messy Underlay Dilemma - automating PKI at Defragcon
The Messy Underlay Dilemma - automating PKI at Defragconrhirschfeld
 
OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...Giuseppe Paterno'
 

What's hot (20)

OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013
 
Openstack architecture for the enterprise (Openstack Ireland Meet-up)
Openstack architecture for the enterprise (Openstack Ireland Meet-up)Openstack architecture for the enterprise (Openstack Ireland Meet-up)
Openstack architecture for the enterprise (Openstack Ireland Meet-up)
 
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade PlatformOSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
OSMC 2021 | Use OpenSource monitoring for an Enterprise Grade Platform
 
MANTL Data Platform, Microservices and BigData Services
MANTL Data Platform, Microservices and BigData ServicesMANTL Data Platform, Microservices and BigData Services
MANTL Data Platform, Microservices and BigData Services
 
Openstack training material
Openstack training materialOpenstack training material
Openstack training material
 
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
 
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureReview Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and Future
 
Openstack Architecture
Openstack ArchitectureOpenstack Architecture
Openstack Architecture
 
Flowchain: A case study on building a Blockchain for the IoT
Flowchain: A case study on building a Blockchain for the IoTFlowchain: A case study on building a Blockchain for the IoT
Flowchain: A case study on building a Blockchain for the IoT
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013
 
Red Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud InfrastructureRed Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud Infrastructure
 
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
 
Mirantis OpenStack 4.0 Overview
Mirantis OpenStack 4.0 OverviewMirantis OpenStack 4.0 Overview
Mirantis OpenStack 4.0 Overview
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
 
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoTZephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
 
OpenStack - Infrastructure as a service
OpenStack - Infrastructure as a serviceOpenStack - Infrastructure as a service
OpenStack - Infrastructure as a service
 
The Messy Underlay Dilemma - automating PKI at Defragcon
The Messy Underlay Dilemma - automating PKI at DefragconThe Messy Underlay Dilemma - automating PKI at Defragcon
The Messy Underlay Dilemma - automating PKI at Defragcon
 
OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...
 

Similar to Kubernetes and Oracle - a guiding whitepaper

OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...NETWAYS
 
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...NETWAYS
 
Pairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryPairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryGuangya Liu
 
Modern big data and machine learning in the era of cloud, docker and kubernetes
Modern big data and machine learning in the era of cloud, docker and kubernetesModern big data and machine learning in the era of cloud, docker and kubernetes
Modern big data and machine learning in the era of cloud, docker and kubernetesSlim Baltagi
 
Webinar container management in OpenStack
Webinar container management in OpenStackWebinar container management in OpenStack
Webinar container management in OpenStackCREATE-NET
 
modern-guide-to-container-monitoring-and-orchestration.pdf
modern-guide-to-container-monitoring-and-orchestration.pdfmodern-guide-to-container-monitoring-and-orchestration.pdf
modern-guide-to-container-monitoring-and-orchestration.pdfGuillaume Kpotufe
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetescsegayan
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQKubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQRahul Malhotra
 
How to Integrate Kubernetes in OpenStack
 How to Integrate Kubernetes in OpenStack  How to Integrate Kubernetes in OpenStack
How to Integrate Kubernetes in OpenStack Meng-Ze Lee
 
Choosing PaaS: Cisco and Open Source Options: an overview
Choosing PaaS:  Cisco and Open Source Options: an overviewChoosing PaaS:  Cisco and Open Source Options: an overview
Choosing PaaS: Cisco and Open Source Options: an overviewCisco DevNet
 
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...Daniel Krook
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Daniel Krook
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and dockerAlessandro Martellone
 
oci-container-engine-oke-100.pdf
oci-container-engine-oke-100.pdfoci-container-engine-oke-100.pdf
oci-container-engine-oke-100.pdfNandiniSinghal16
 
Getting started with google kubernetes engine
Getting started with google kubernetes engineGetting started with google kubernetes engine
Getting started with google kubernetes engineShreya Pohekar
 

Similar to Kubernetes and Oracle - a guiding whitepaper (20)

Containerization
ContainerizationContainerization
Containerization
 
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
OSDC 2017: Automating Kubernetes Cluster Operations with Operators by Timo De...
 
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
OSDC 2017 - Timo Derstappen - Automating kubernetes cluster operations with o...
 
Pairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryPairs OpenStack Summit Summary
Pairs OpenStack Summit Summary
 
Modern big data and machine learning in the era of cloud, docker and kubernetes
Modern big data and machine learning in the era of cloud, docker and kubernetesModern big data and machine learning in the era of cloud, docker and kubernetes
Modern big data and machine learning in the era of cloud, docker and kubernetes
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Webinar container management in OpenStack
Webinar container management in OpenStackWebinar container management in OpenStack
Webinar container management in OpenStack
 
modern-guide-to-container-monitoring-and-orchestration.pdf
modern-guide-to-container-monitoring-and-orchestration.pdfmodern-guide-to-container-monitoring-and-orchestration.pdf
modern-guide-to-container-monitoring-and-orchestration.pdf
 
Containers & Security
Containers & SecurityContainers & Security
Containers & Security
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQKubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQ
 
How to Integrate Kubernetes in OpenStack
 How to Integrate Kubernetes in OpenStack  How to Integrate Kubernetes in OpenStack
How to Integrate Kubernetes in OpenStack
 
Choosing PaaS: Cisco and Open Source Options: an overview
Choosing PaaS:  Cisco and Open Source Options: an overviewChoosing PaaS:  Cisco and Open Source Options: an overview
Choosing PaaS: Cisco and Open Source Options: an overview
 
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
 
Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!Containers, OCI, CNCF, Magnum, Kuryr, and You!
Containers, OCI, CNCF, Magnum, Kuryr, and You!
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and docker
 
oci-container-engine-oke-100.pdf
oci-container-engine-oke-100.pdfoci-container-engine-oke-100.pdf
oci-container-engine-oke-100.pdf
 
Getting started with google kubernetes engine
Getting started with google kubernetes engineGetting started with google kubernetes engine
Getting started with google kubernetes engine
 

More from Michel Schildmeijer

Enterprise container platform verrazzano
Enterprise container platform verrazzanoEnterprise container platform verrazzano
Enterprise container platform verrazzanoMichel Schildmeijer
 
5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipelineMichel Schildmeijer
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootMichel Schildmeijer
 
Oracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresOracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresMichel Schildmeijer
 
SOA Suite 12c Customer implementation
SOA Suite 12c Customer implementationSOA Suite 12c Customer implementation
SOA Suite 12c Customer implementationMichel Schildmeijer
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningMichel Schildmeijer
 
Oracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesOracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesMichel Schildmeijer
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013Michel Schildmeijer
 

More from Michel Schildmeijer (8)

Enterprise container platform verrazzano
Enterprise container platform verrazzanoEnterprise container platform verrazzano
Enterprise container platform verrazzano
 
5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
 
Oracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresOracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy features
 
SOA Suite 12c Customer implementation
SOA Suite 12c Customer implementationSOA Suite 12c Customer implementation
SOA Suite 12c Customer implementation
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 
Oracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesOracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best Practises
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013
 

Recently uploaded

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Recently uploaded (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

Kubernetes and Oracle - a guiding whitepaper

  • 1. Kubernetes and the Oracle Cloud whitepaper Michel Schildmeijer Oracle’s adoption of Kubernetes as the Orchestration Platform for containers
  • 2. K8S Oracle Cloud Whitepaper PAGINA 2 VAN 28 Contents This whitepaper................................................................................................................ 3 The Container “Hysteria” …................................................................................................... 4 Pre-container era.............................................................................................................. 4 Get Containerized… or not?................................................................................................ 6 Use cases to go “Containerized” ......................................................................................... 7 Docker and Kubernetes ..................................................................................................... 7 Phase 1 ........................................................................................................................ 8 Phase 2 ........................................................................................................................ 8 Phase 3 ........................................................................................................................ 8 Oracle and the Cloud Native Computing Foundation .............................................................. 9 Kubernetes “do it yourself”..................................................................................................10 The Oracle Cloud Infrastructure – Next Generation ..............................................................10 Setup Kubernetes............................................................................................................12 Oracle Kubernetes Engine (OKE) ..........................................................................................14 Setup with the OCI console...............................................................................................15 .....................................................................................................................................15 The OCI wrapper .............................................................................................................17 Terraform provider ..........................................................................................................17 Applying Kubernetes using Terraform..............................................................................18 Kubernetes Deployment and provisioning ...........................................................................20 Helm and Tiller.............................................................................................................20 Implement Helm/Tiller...................................................................................................20 Helm chart repositories – KubeApps................................................................................21 Example: Install Jenkins using Helm and KubApps ............................................................22 WebLogic and Kubernetes ...................................................................................................23 Migrate Tooling.............................................................................................................23 WebLogic in Kubernetes ................................................................................................24 WebLogic Kubernetes Operators .....................................................................................24 WebLogic Kubernetes - Prometheus & Grafana....................................................................26 Conclusion Kubernetes and the Oracle Cloud Infrastructure .....................................................28
  • 3. K8S Oracle Cloud Whitepaper PAGINA 3 VAN 28 This whitepaper A whitepaper is usually some guideline of how to start with a certain topic, subject., or in IT terms, technology. It gives you some hints and tips to think over, in order to make decisions that will affect your future. Those tips are usually a combination of what specific communities of a certain subject bring out of this, in a combination with experiences from the “field”. So read this whitepaper as a guidance, a starting point for making your own decisions, based on your specific situations. This whitepaper will handle the following topics: • Brief overview of “container hysteria”; o what is it; o why is it there; o why should or should I do it? • Some background: Oracle’s recognition and adoption of Cloud Native Technologies. o The opinion about Oracle and the Cloud. o Informative if you are in a decision phase. • How to start in a “do it yourself” way; “my 1st managed container platform”. • Oracle’s Cloud adoption of Kubernetes, ways to set up. • Automation with Terraform. • Kubernetes extended API’s, such as Helm/Tiller. • Setup network, routing. • The use of K8S operators. • Continuous monitoring with Prometheus and Grafana. • Oracle technologies running on Kubernetes. • Other hints, tips and takeaways. This whitepaper is not specific about Kubernetes or Oracle technology but a bit of both. After reading this whitepaper, you hopefully have more insight in this sometimes-complicated matter, in what to choose, and what not. It could be that specific to you own situation, the outcome of a conclusion could be totally different that you’d expected!
  • 4. K8S Oracle Cloud Whitepaper PAGINA 4 VAN 28 The Container “Hysteria” …. It might sound to you like an odd title for a bestseller, but I’d like to emphasize this topic because in the world arounds us, especially the IT world, hypes around new technologies pop up so every now and then, which is good, I think. It helps us to innovate, and follow new innovations and place them into the right context. However, sometimes decisions are made based on hypes because no company wants to get running behind the facts, and come to the conclusion that one “should have” instead of “could have: Now there could be several drivers for a company to choose a container strategy, but let’s first have a look what is meant by the term “container” in this discussion, and how we should interpret this. Pre-container era In the traditional way of how IT is served is usually an application or a suite of applications installed on a piece of hardware, server or multiple servers combined with infrastructure software, perhaps application server software and connecting to one or more database to insert or extract data from. Virtual Machine Engines Bare Metal Servers Container Engines
  • 5. K8S Oracle Cloud Whitepaper PAGINA 5 VAN 28 Bare metal hardware With the coming of virtualization software applications didn’t have to be installed on bare metal, with no isolation of network, security and so on but one piece of hardware. Applications use all resources with less control of these, unless some other piece of software is installed to control this. Virtualization Servers no can be divided into multiple virtual parts, called virtual machines. In a way they are still servers in a server. They are using virtualization with a so-called hypervisor to consume hardware resources such as storage, compute power and network could be share, but also important, a level of isolation can be accomplished. Containerization Giving one good definition of what a container means in this discussion is tough, but let’s give it a try. There are some characteristics containers have such as • Small unit for one or a few services or small application • They share the OS kernel • They make use of shared resources, but an isolated segment is dedicated for them • It’s a lightweight configured package with storage, network, and application artifacts in one In the next figure, you can see on a high level the differences between virtual machines and container. Server Server Core Operating System VM Engine (Hypervisor) Core Operating System Guest OS Guest OS Container Engine bin/libs App B bin/libs App B bin/libs App B bin/libs App B Virtual Machine Container Technology
  • 6. K8S Oracle Cloud Whitepaper PAGINA 6 VAN 28 In essence, the container principle is something already existed in the early days of UNIX, called chroots, where a program can run in an isolated part. In specific terms: You create an artificial root access that only allows you to see the operating system that you specified, all configuration options you need are set up, and then implement your code into it and you have something like a container. Further evolution resulted in nowadays container engines, where the most well-known and more or less the standard is Docker. So, the most important container technologies are: • Docker – Runs as a process, is based on Linux Containers, they do not run an independent version of the OS kernel. • CoreOS – Using an opensource Container Image, now part of RedHat’s OpenShift • LVE – Lightweight virtual environments– Thread based kernel-level technology All these technologies are supported and certified by the Open Container Initiative (OCI). Get Containerized… or not? Moving to containerization is some sort of an evolution process companies will go through. Some companies are at the beginning of it, or maybe not even started because there is no direct need for it. Containerization never comes by itself, it’s a result of companies looking at other ways of programming their applications, moving their application workload to the cloud, adopt an agile way of working; there can be many reasons to start to containerize.
  • 7. K8S Oracle Cloud Whitepaper PAGINA 7 VAN 28 Use cases to go “Containerized” Case Container Use Case Development Developer productivity; Consistent; app stacks in Dev, Test & Production CI/CD Containerized dependencies; Container registries; Operations Standardized environments for dev, testing and operations Legacy Refactor from applications tier to portable containerized applications Cloud Strategy Move entire application landscape and see them run identically in the cloud Microservice Strategy Create small purpose-built services to break monoliths into scalable custom applications Docker and Kubernetes Though there are several technologies available, two of them are more or less leader in the market and the de-facto standard for containers and container management. So, looking at cloud native technologies, Docker and Kubernetes go hand in hand, where Kubernetes manages Docker-style container processes on different levels.
  • 8. K8S Oracle Cloud Whitepaper PAGINA 8 VAN 28 There are of course some other technologies which do more or less the same Before companies have a mature container platform, they usually go through some stages of adoption: Phase 1 Developer focus: Adoption by Developers for their Dev and maybe Test apps. They have a simple setup of their orchestration, so not enterprise ready yet. Phase 2 A second phase usually results in a first DevOps deployment where a level of automation has been reached. A team deploys Production ready apps and uses already more advanced orchestration. Phase 3 In this phase a broad integration of business applications is accomplished and the level of automation, releasing and continuous monitoring becomes om a large scale.
  • 9. K8S Oracle Cloud Whitepaper PAGINA 9 VAN 28 Oracle and the Cloud Native Computing Foundation • Oracle is a large company which aim is selling services, software and solutions to customers, just as other software vendors do. But they also realize they have to get influence in the opensource movement and for Oracle it means that their Cloud Container platform was adopted and certified by the CNCF in 2017. Oracle is actively participating Cloud Native Compute Foundation and Kubernetes (see https://www.cncf.io/about/members/) Being adopted and certified gave a huge boost to the cloud native technologies Oracle now delivers in its 2nd generation Cloud, and had some great benefits|: • There is no forked code – straight from the source • Oracle software on in the Docker Store and its own container registry • Kubernetes engineering comes out in the CNCF • Java SE/EE movement to open sourcing; transparent processes; Innovate in open source • Cloud provisioning utilities such as K8S terraform install • Sponsor & contribute to key conferences such as DockerCon, Kubecon, CoreOS Fest, other to become a mature player in the market.
  • 10. K8S Oracle Cloud Whitepaper PAGINA 10 VAN 28 Kubernetes “do it yourself” Now every big Cloud vendor presents a Kubernetes Engine in the cloud, easy to setup, but of course you can build such an environment all by yourself: EKS by Amazon OKE by Oracle GKE by Google AKS by Microsoft And some other like Digital Ocean. So, you can set it up like: - Using it on premises in your own datacenter - Or spin up compute at any Cloud provider (AWS, Google, Azure, Oracle) just as you would do on premises In the Oracle Cloud Infrastructure, you will have to set up a few things before you can start. I won’t dive into what you need to have an Oracle Cloud base IaaS, but more like the requirements needed for running your own managed Kubernetes. The Oracle Cloud Infrastructure – Next Generation The 2nd generation of the Oracle IaaS platform shows us a more mature, coherent platform which can cope up with its competitors. You can see more or less the same services available, and of course the Oracle extra’s. Either you use OCI to create servers, or you use on premise servers, the principle remains the same: you will have to build it up yourself. OCI now knows something like a compartment, a logical unit within your Cloud Infrastructure where you can build up anything you need, isolated from another created compartment. Creating your IaaS Servers in your “Demo Compartment”
  • 11. K8S Oracle Cloud Whitepaper PAGINA 11 VAN 28 In here you create your VM, define the O/S template, shape (compute power etc), availability domain (the cloud datacenter location), virtual cloud and other network components. So, if you have your servers the following need to be done, if not there: - Update your YUM repositories - For non-Oracle Linux: - For Oracle Linux: Furthermore, you need to connect to some container registry; this can be the standard Docker one or the one that Oracle maintains. # docker login container-registry.oracle.com cat <<EOF > /etc/yum.repos.d/kubernetes.repo > [kubernetes] >name=Kubernetes >baseurl=https://packages.cloud.google.com/yum/repos/kubernete s-el7-x86_64 > enabled=1 > gpgcheck=1 > repo_gpgcheck=1 [ol7_addons] name=Oracle Linux $releasever Add ons ($basearch) baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/addons/$bas earch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
  • 12. K8S Oracle Cloud Whitepaper PAGINA 12 VAN 28 Setup Kubernetes There are several ways to setup Kubernetes • First set to Kubernetes system variables • Install kubeadm through YUM • Init Kubernetes does some basic Kubernetes setup However, doing a yum install to an Oracle YUM repository delivers you a setup script, kubeadm-setup.sh which you can use: This does the following • Sets up the Kubernetes master • Sets up basic cluster RBAC • Sets up basic DNS • Deploys the Kubernetes Dashboard and sets up a proxy access to it # export KUBE_REPO_PREFIX=container-registry-ash.oracle.com/kubernetes # echo 'export KUBE_REPO_PREFIX=container-registry-ash.oracle.com/kubernetes' >> ~/.bashrc yum install kubeadm kubeadm init
  • 13. K8S Oracle Cloud Whitepaper PAGINA 13 VAN 28 When finished, execute some of the following to have a basic system running And verify the basics are running well To get access to the graphical dashboard you can extract the token for login in sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
  • 14. K8S Oracle Cloud Whitepaper PAGINA 14 VAN 28 Oracle Kubernetes Engine (OKE) In the 1st generation Cloud IaaS services Oracle provided, there was a Docker Engine in the cloud called OCCS (Oracle Container Cloud Services) which had a graphical interface to manage the Docker containers, but it was not Kubernetes yet. Managed Docker engine in the Oracle Cloud v1 With generation 2 Oracle provides an engine, with a lot of similarities from other Kubernetes Engines from other Cloud providers. OKE is a configured Kubernetes engine in the Oracle Cloud and can be setup in several ways.
  • 15. K8S Oracle Cloud Whitepaper PAGINA 15 VAN 28 Setup with the OCI console Within the OCI Cloud console there is a preconfigured OKE to be found, where you with a few simple clicks can get up and running a Kubernetes Cluster in the Oracle Cloud. You will have to login into your Cloud dashboard, select Compute where you will end up in the OCI. There you can find the OKE under Developer Services. , Here you setup your Kubernetes engine where almost everything will be configured for you. To work and setup this wat, your cloud account needs to have the OKE role, set by the Cloud Administrator: allow service OKE to manage all-resources in tenancy This has to be set on the root level of your Cloud tenancy and added to your user account /group.
  • 16. K8S Oracle Cloud Whitepaper PAGINA 16 VAN 28 Other important things to think of to be able to create and/or manage clusters, you must belong to one of the following: • The tenancy's Administrators group. • A group to which a policy grants the appropriate Container Engine for Kubernetes permissions so grant the group the following permissions: ▪ VCN_READ and VCN_CREATE ▪ SUBNET_READ and SUBNET_CREATE ▪ COMPARTMENT_INSPECT ▪ INTERNET_GATEWAY_CREATE ▪ ROUTE_TABLE_UPDATE ▪ SECURITY_LIST_CREATE In the screen setup you will have to fill in some simple entries such as: • Name of the cluster • Kubernetes version • With the Quick Create a Virtual Cloud Network will be created for you • In the Node Pool create you can specify the compute shape • Also enable Helm and Tiller After having the cluster running, it’s best to access it from a local Linux client. Here you will need the kubeconfig file and the OCI wrapper.
  • 17. K8S Oracle Cloud Whitepaper PAGINA 17 VAN 28 The OCI wrapper For setting up access form your local client and applying your Kubernetes cluster to be accessed and managed locally. First you need to download OCI, from GitHub Afterwards, you can set it up locally to access it. Terraform provider Oracle has adopted the Terraform provider as the cloud provisioning where you can setup an infrastructure with some environment files and terraform executables. Here’s is a diagram the way Terraform works for OCI: First of all, it is necessary to generate an API keypair and fingerprint on your local client, to be imported into your Cloud environment. mkdir -p $HOME/.kube oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.eu-frankfurt- 1.aaaaaaaaaftggnbqgq2dam3fmi4tamrvmu3tkyrugmytgyzqgcrtinzzmmzw --file $HOME/.kube/config bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci- cli/master/scripts/install/install.sh)"
  • 18. K8S Oracle Cloud Whitepaper PAGINA 18 VAN 28 The keypair needs to be converted to a compatible format for OCI: This you can add Applying Kubernetes using Terraform The official OCI Terraform provider can be found on https://github.com/oracle/terraform- kubernetes-installer where also is described a step to step installation of the provider and terraform it selves. Important to know Terraform about installing Kubernetes in the Oracle Cloud are: • Download and install the terraform package on you client • Download and install the OCI Terraform Provider (v2.0.0 or later) • Use a Terraform configuration file at that specifies the path to the OCI provider: File: ~/.terraformrc providers { oci = "<path_to_provider_binary>/terraform-provider-oci" } • Have kubectl installed • Use an environment file to specify the Cloud specifics, or if the file becomes to big separate into logical parts (storage, compute shape, network etc.)
  • 19. K8S Oracle Cloud Whitepaper PAGINA 19 VAN 28 Env file example Finally, you will have to create a proxy route between your local client and the Kubernetes API Server, usually a simple command kubectl proxy With this you can access the Kubernetes dashboard locally http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes- dashboard:/proxy/ You can set this as a daemon so it will run as a service in your client The dashboard can also be exposed using an Ingress resource, but beware if that you do this secure with HTTPS/TLS and an extra annotation in you PodSpec: nginx.ingress.kubernetes.io/secure-backends: "true"
  • 20. K8S Oracle Cloud Whitepaper PAGINA 20 VAN 28 Kubernetes Deployment and provisioning This section describes some ways of how to get your Kubernetes environment alive with running deployable applications using with the tools available. Focus is the broad tools and specific to the Oracle Cloud, using Oracle Container Pipelines. Helm and Tiller Helm/Tiller is a release and package management tool for Kubernetes, where Tiller runs as a service component at Kubernetes side, while Helm is on the client side. It’s a bit comparable with the Yum installer. Implement Helm/Tiller Very easy to do: And see Tiller is running: Or, when running OKE, you can enable it when creating curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh
  • 21. K8S Oracle Cloud Whitepaper PAGINA 21 VAN 28 Helm chart repositories – KubeApps There is a huge helm repository available to install Helm charts in your Kubernetes cluster, which is called KubeApps First you need to add the repository: helm repo add bitnami https://charts.bitnami.com/bitnami helm install --namespace kubeapps -n kubeapps bitnami/kubeapps Next, you need to set the proper permissions to make use of it: kubectl create serviceaccount kubeapps-operator kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin -- serviceaccount=default:kubeapps-operator Finally, you can access the KubeApps dashboard: echo "Kubeapps URL: http://127.0.0.1:8080" export POD_NAME=$(kubectl get pods --namespace kubeapps -l "app=kubeapps" -o jsonpath="{.items[0].metadata.name}") kubectl port-forward --namespace kubeapps $POD_NAME 8080:8080
  • 22. K8S Oracle Cloud Whitepaper PAGINA 22 VAN 28 Now, when you want to install something, you also need to enable tiller RBAC Example: Install Jenkins using Helm and KubApps Get the Jenkins URL, un/pwd, exposed by the ingress controller kubectl create serviceaccount --namespace kube-system tiller serviceaccount "tiller" created kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster- admin --serviceaccount=kube-system:tiller clusterrolebinding "tiller-cluster-rule" created kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' deployment "tiller-deploy" patched helm install bitnami/jenkins NAME: messy-bobcat LAST DEPLOYED: Wed Oct 3 05:56:18 2018 NAMESPACE: default STATUS: DEPLOYED export SERVICE_IP=$(kubectl get svc --namespace default messy-bobcat-jenkins - -template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}") echo "Jenkins URL: http://$SERVICE_IP/“ Jenkins URL: http://130.61.15.94/ echo Username: user echo Password: $(kubectl get secret --namespace default messy-bobcat-jenkins - o jsonpath="{.data.jenkins-password}" | base64 --decode)
  • 23. K8S Oracle Cloud Whitepaper PAGINA 23 VAN 28 WebLogic and Kubernetes Oracle has done a lot already to make its products ready for Kubernetes. With WebLogic as the strategic platform to develop Enterprise Business applications, it is obvious that this platform must be possible to run with Docker and managed with Kubernetes. However, from a container standpoint it is to my opinion a bit trivial to put an entire platform into a container, especially when you look at containerization (small, lightweight, portable), and the new way of developing applications (microservices). You might ask if a platform such as WebLogic in its current form is still the way to go. However, Oracle provides Kubernetes support for WebLogic with the following: • WebLogic and Docker certification □ Docker images, Dockerfiles • WebLogic 12.2.1.3 Kubernetes • Manage, migrate and deploy □ Management: WLS K8s Operator □ Monitoring: Exporter for Prometheus □ Migration: Deploy tooling • Certification on Oracle Cloud □ OCI K8S cluster created with Terraform □ Oracle Kubernetes Engine • WebLogic running in Docker PODs in Kubernetes □ WebLogic 12.2.1.3+ □ Oracle Linux 7 □ Kubernetes 1.7.5, 1.8.0, 1.9.0, and 1.10.0, and the latest 1.12 □ Docker 17.03-ce □ Network Fabric - Flannel v0.9.1-amd64 ▪ Or others like Traefik, Apache □ Config resources (JDBC, JMS, JTA) □ Auto scaling (WLDF and Prometheus) Migrate Tooling • Still in an early phase, but this tool provides some strong capabilities for getting your WebLogic domain migrated to Kubernetes: • Domain introspection to: □ Create a model, a yaml file of your entire domain □ Migrate existing domains and upgrade them to 12.2.1.X □ Tested on 10.3.6 to 12.2.1.X • Customize to get “Kubernetes ready” • Create WebLogic domain docker images
  • 24. K8S Oracle Cloud Whitepaper PAGINA 24 VAN 28 WebLogic in Kubernetes This diagram shows us a typical setup of a WebLogic domain in a Kubernetes Cluster where the WebLogic Admin and managed servers are each running in a pod, but the WebLogic Cluster spans between de different nodes. And finally, the Ingress/Egress controllers are managed from out the Kubernetes Cluster using a load balance resource (Traefik). WebLogic Kubernetes Operators Operators are API’s to extends the capabilities of the standard Kubernetes API. With them you can configure & manage more complex instances and actions. Specific purposes and use cases for Operators are: □ Stateful systems like databases because they are the most stateful □ Also meant to leverage more experience based and operational knowledge to k8s The operators come from knowledge out of the field in a software driven solution. A few of these operators are • Generic operators: □ By CoreOS ▪ Etcd –Storing data across cluster ▪ Prometheus
  • 25. K8S Oracle Cloud Whitepaper PAGINA 25 VAN 28 • Oracle Operators: □ MySQL Operator □ WebLogic Operator Of course, you can develop one yourself for a specific purpose. The current WebLogic Operator which is meant to do simpler WebLogic management in Kubernetes, version 1.1 supports the following: • Kubernetes resources are allocated for WebLogic domain(s) • Manages overall WebLogic environment through Kubernetes APIs □ Load Balancer, Network, □ Ingress Controllers, □ Security, □ HA restart, upgrade, scaling □ Persistent storage for domain shareables • Ensures WebLogic best practices are followed • V2.0 is planned to come out in 2019 and will be extended with persistent volumes for logfiles and Helm Charts. To install the current version of the operator, the following prerequisites are required: • Kubernetes 1.10.11+, 1.11.5+, and 1.12.3+ o kubectl version • Flannel networking v0.9.1-amd64 o docker images | grep flannel • Docker 18.03.1.ce o docker version • Helm 2.8.2+ o helm version • Oracle WebLogic Server 12.2.1.3.0 with patch 29135930, the latest has this patch already • Configure the cluster-admin role to install the operator.
  • 26. K8S Oracle Cloud Whitepaper PAGINA 26 VAN 28 WebLogic Kubernetes - Prometheus & Grafana Prometheus and Grafana are well known Open Source tools Opensource tools to monitor your stack where Prometheus feeds Grafana, and Grafana visualized the data collected. Also, the tools we’re adopted in 2016 to the CNCF so the obvious tooling for Kubernetes to monitor. Also, WebLogic in Kubernetes has capabilities to be monitored with Prometheus and Grafana. The tools are feeded with JMX Metrix out from WebLogic Diagnostics Framework (WLDF) using the WebLogic Monitor Exporter application which needs to be deployed as a war in your WebLogic domain. The wls-exporter gathers mbean metrics using a JSON config file in combination with a WLDF query. Below is an example of a query of a particular web application:
  • 27. K8S Oracle Cloud Whitepaper PAGINA 27 VAN 28 Below in the diagram is show how wlsexporter feeds data to Prometheus 1. WLDF Query is configured and executed 2. wlsexporter gathers these metrics 3. In Prometheus, the WebLogic data is processed by the exporter 4. Through a datasource connected with Grafana the data can be visualized
  • 28. K8S Oracle Cloud Whitepaper PAGINA 28 VAN 28 Conclusion Kubernetes and the Oracle Cloud Infrastructure There are a lot of conclusions to be made, and there are a lot of opinions about Oracle “far too late” Cloud strategy. A lot of these opinions are based on emotions, heard stories about Oracle and how they approach customers. But in this whitepaper, I’d like to stick with the facts, and the facts are that Oracle is doing a good when it comes to Kubernetes and containerization and certainly as much as good as the other big players on the market. However, their position is not in the top 3 and it will be difficult for Oracle to reach that. Nevertheless, Kubernetes is perfectly fit for the Oracle Cloud with lots of options to use and implement. Some of the most important key take-aways to setup and use a Kubernetes Cluster in the most optimal way are: • The more services, the more data exchange / network traffic; so, beware of a lot traffic • Scale enough resources for all your services • Use HTTP(s)(HTTP/2) for external traffic • Use TCP/UDP for internal application traffic such as serialization of applications o Maybe use a caching solution such as coherence • Map application files shareable on a host-volume • Keep docker as small as possible • Use base image for as much as possible purposes • Ensure that settings such as JVM heap has been synchronized to pods • Use Kubernetes resource limits but adjust them to specific application needs Example of a resource limit yaml resources: requests: cpu: 50m memory: 50Mi limits: cpu: 100m memory: 100Mi I can assure you, to choose Kubernetes in combination with the Oracle Cloud Infrastructure is certainly a good choice with a lot of benefits, technology choices and different options!