![Page 1: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/1.jpg)
MAY 15 & 16, 2019
CLEVELAND PUBLIC AUDITORIUM, CLEVELAND, OHIO
WWW.NEOOUG.ORG/GLOC
Application Workloads to the Oracle Cloud with
KubernetesMichel SchildmeijerSolutions Architect
Qualogy
![Page 2: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/2.jpg)
Me
• From Amsterdam, the Netherlands
• Solutions Architect at Qualogy
• Oracle ACE since 2012
• Authored 2 books about WebLogic in 2011
• Started with UNIX in 1994
• Started with BEA technology in 2000
• Started in 2017 looking at containerization strategies,
DevOps etc.
![Page 3: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/3.jpg)
Oracle adopts Kubernetes
![Page 4: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/4.jpg)
Evolution
![Page 5: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/5.jpg)
Containers
• Application and Infrastructure software more as a whole
• Bare Metal Server: Hardware, without virtualization
• Virtual Machine: Virtualized hardware system with Guest OS
• Virtualize the OS
• Container: Configurable unit for small set of services/applications
• Share the OS kernel – No hypervisor
• Isolate resources
• Container based technology:
• Docker –Runs as a process, is based on Linux Containers, doesn’t run an independent version of the OS kernel.
• CoreOS – RocketUsing an opensource Container Image, now part of RedHat’s OpenShift
• LXC – Linux ContainersBased on chroots
All supported by the Open Container Initiative (OCI)
![Page 6: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/6.jpg)
Use cases to get 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 portablecontainerized applications
Cloud Strategy Move entire application landscape and seethem run identically in the cloud
Microservice Strategy Break monoliths into scalable custom applications
![Page 7: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/7.jpg)
Containers vs Virtual Machines
![Page 8: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/8.jpg)
Containermanagement
• There can be la large number of containers
– who will manage and structure these?
Storage, compute resources, networking
![Page 9: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/9.jpg)
The Orchestrator
Orchestrator/conductor
![Page 10: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/10.jpg)
• Manages & orchestrates container processes (docker)
Kubernetes
compute
network
storage
Docker-style containers
![Page 11: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/11.jpg)
12
Master: Controls Kubernetes nodes.
Node: Perform requested, assigned tasks by the master
Pod: A group of one or more containers deployed to a single
node.
Replication controller: Control of identical pods across a
cluster.
Service: Work definitions from the pods.
Kubelet: Reads container manifests to watch ifcontainers are
started and running.
kubectl: command line configuration tool for Kubernetes.
Some basics and entities
![Page 12: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/12.jpg)
Oracle certified for CNCF,Kubernetes
![Page 13: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/13.jpg)
Oracle & Kubernetes
“do it yourself”
![Page 14: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/14.jpg)
Kubernetes “do it yourself”
• Oracle Cloud Infrastructure
![Page 15: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/15.jpg)
Kubernetes “do it yourself
• On premises
• Addon yum repo’s
• Enable docker and login to Oracle container registry
![Page 16: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/16.jpg)
Add Kubernetes repo to yum
cat <<EOF > /etc/yum.repos.d/kubernetes.repo > [kubernetes] >name=Kubernetes >baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 > enabled=1 > gpgcheck=1 > repo_gpgcheck=1 > gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg > https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg > EOF
Add-On yum repo’s
[ol7_addons]name=Oracle Linux $releasever Add ons ($basearch)baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/addons/$basearch/gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oraclegpgcheck=1enabled=1
If not using Oracle Linux
![Page 17: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/17.jpg)
Kubernetes “do it yourself”
• Set to Kubernetes system variables
# export KUBE_REPO_PREFIX=container-registry-ash.oracle.com/kubernetes # echo 'export KUBE_REPO_PREFIX=container-registry-ash.oracle.com/kubernetes' > ~/.bashrc
• kubeadm init sets the basics
# kubeadm init
• Or run with script kubeadm-setup.sh
• Provided by Oracle with the kubeadm package
• With terraform ( see 5 )
yum install kubeadm
• yum install
![Page 18: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/18.jpg)
kubeadm_setup.sh
![Page 19: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/19.jpg)
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configexport KUBECONFIG=$HOME/.kube/configecho 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
![Page 20: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/20.jpg)
kubectl -n kube-system describe $(kubectl -n kube-system \> get secret -n kube-system -o name | grep namespace) | grep token
![Page 21: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/21.jpg)
Kubernetesfor Oracle Container Engine (OKE)
![Page 22: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/22.jpg)
Before.. Oracle Container Engine
• Other than “Classic”, initiated for OCCS
• OCCS is Docker with a Oracle Cloud frontend
• Not Kubernetes managed
![Page 23: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/23.jpg)
Before… Oracle Container Engine
![Page 24: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/24.jpg)
• Configured Kubernetes Engine in the Cloud
• Oracle Cloud Infrastructure (OCI)
• Setup with Cloud console
• Setup with oci interface
• Setup with Terraform
• The “easy way”
Oracle Kubernetes Engine
![Page 25: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/25.jpg)
Oracle Kubernetes Container Engine topology
Oracle
Container
Pipelines
(CI/CD)
Oracle Container
Registry
AD 1 AD 3
Node Pool
K8S Cluster
Node Pool
BM
VM
Virtual
Network
PV
AD 2
Kubernetes Exposed
Service
• Standard Kubernetes
• User Interface; API; Helm, Dashboard and DNS Built-in
• Oracle Cloud Infrastructure Performance; Highly Available; Security
Oracle Container
Engine
(Kubernetes)
Pods
LB
Test
Push
Build
![Page 26: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/26.jpg)
Oracle Kubernetes Engine
![Page 27: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/27.jpg)
• Redirect to your local client
• Download & configure oci for management
Oracle Kubernetes Engine
mkdir -p $HOME/.kubeoci 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)"
![Page 28: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/28.jpg)
Oracle Kubernetes Engine
![Page 29: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/29.jpg)
Kubernetes,OCI &
Terraform
![Page 30: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/30.jpg)
• Configured Kubernetes Engine
• Oracle Cloud Infrastructure (OCI)
• Setup with terraform
client
Generate priv/pubkeys
Set TF envars
terraform plan
terraform apply
Setup compartment
Verify tenancy& user details
Setup API key
OKE
![Page 31: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/31.jpg)
![Page 32: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/32.jpg)
• Generate keypair and fingerprint for OCI
![Page 33: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/33.jpg)
![Page 34: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/34.jpg)
TF Envars
![Page 35: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/35.jpg)
TF init, plan and apply
![Page 36: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/36.jpg)
Check….
![Page 37: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/37.jpg)
GitHub
web
API
Orchestration
Registries
Kubernetes
mgrwrkr1
wrkr2
Kubernetes Engine & Wercker
![Page 38: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/38.jpg)
• Wercker
• CI on Docker and Kubernetes in the cloud
• Special kubernetes yaml on github:
• Add Pipeline: deploy-to-cluster
• Add K8S specifics
Oracle Kubernetes Engine & Wercker: CI CD for cloud
![Page 39: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/39.jpg)
Helm & Tiller
![Page 40: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/40.jpg)
Helm & Tiller
• Release and Package Management for Kubernetes
• Helm is client, Tiller runs as Server in Kubernetes
![Page 41: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/41.jpg)
• Usually:
• Helm as client on CI CD or any other
• Tiller runs as Server in Kubernetes
• Comparable with YUM for Linux
Helm & Tiller
![Page 42: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/42.jpg)
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh
Easy does it
Helm & Tiller
![Page 43: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/43.jpg)
helm init$HELM_HOME has been configured at /home/oracle/.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.To prevent this, run `helm init` with the --tiller-tls-verify flag.For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installationHappy Helming!
Helm & Tiller
![Page 44: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/44.jpg)
Installed in OKE
As an Add On
Helm & Tiller
![Page 45: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/45.jpg)
46
Add Helm repo - KubeApps
helm repo add bitnami https://charts.bitnami.com/bitnamihelm install --namespace kubeapps -n kubeapps bitnami/kubeapps
kubectl create serviceaccount kubeapps-operatorkubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator
• Add bitnami repo
• RBAC rolebinding
• Accessing 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
![Page 46: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/46.jpg)
47
KubeApps dashboard
![Page 47: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/47.jpg)
kubectl create serviceaccount --namespace kube-system tillerserviceaccount "tiller" createdkubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tillerclusterrolebinding "tiller-cluster-rule" createdkubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'deployment "tiller-deploy" patched
Install a Jenkins chart
![Page 48: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/48.jpg)
helm install bitnami/jenkinsNAME: messy-bobcatLAST DEPLOYED: Wed Oct 3 05:56:18 2018NAMESPACE: defaultSTATUS: DEPLOYED
Example:Set the proper accounts and install a Jenkins chart
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: userecho Password: $(kubectl get secret --namespace default messy-bobcat-jenkins -o jsonpath="{.data.jenkins-password}" | base64 --decode)
Get the Jenkins URL, un/pwd, exposed by the ingress controller
![Page 49: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/49.jpg)
WebLogic Kubernetes
![Page 50: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/50.jpg)
WebLogic Kubernetes Support
5
• 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
![Page 51: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/51.jpg)
WebLogic Kubernetes Support
Kubernetes Cluster
pod
pod pod pod pod
K8S Node K8S Node
WebLogic Cluster
WLS K8S operator
Monitor
Orchestrate
manage
kubectl
loadbalance
![Page 52: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/52.jpg)
• 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
– 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)
WebLogic Kubernetes Support
![Page 53: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/53.jpg)
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
![Page 54: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/54.jpg)
Container Domain Model – on persistent
volume• In each domain the same standard Image
• To preserve state outside the image
• Logfiles and domain artifacts
• For replication purposes in the cloud between av zones
![Page 55: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/55.jpg)
Container Domain Model – on docker
image• Per domain a different Image
• No runtime state, though configuration
• Logfiles and domain artifacts
• Each pod handles its own replica so no need to worry for replication
![Page 56: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/56.jpg)
WebLogic Helm and Tiller
[******* ~]$ kubectl create namespace helm-wls-clusternamespace "helm-wls-cluster" created[*******~]$ kubectl create secret generic wls-secret --from-literal=username=ADMIN-USERNAME --from-literal=password=ADMIN-PASSWORD --namespace helm-wls-clustersecret "wls-secret" created
![Page 57: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/57.jpg)
WebLogic Helm and Tiller - components
total 20-rw-rw-r-- 1 281 Sep 21 02:10 Chart.yaml-rw-rw-r-- 1 6556 Sep 21 02:10 README.mddrwxrwxr-x 1 786 Sep 21 02:10 templates-rw-rw-r-- 1 4442 Sep 21 02:10 values.yaml
![Page 58: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/58.jpg)
WebLogic KubernetesOperator
![Page 59: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/59.jpg)
• Extends the K8S api
• Configure & manage more complex instances
• Why Operators ?
– Stateless (web ) apps are easy to manage, scale
– But thougher when it is with stateful
– To leverage more experience based knowledge to k8s
The operators from the field in a software driven solution!
Kubernetes Operators
![Page 60: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/60.jpg)
• Some operators:
– By CoreOS
• Etcd –Storing data across cluster
• Prometheus
• Oracle Operators:
– MySQL Operator
– WebLogic Operator
Kubernetes Operators
![Page 61: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/61.jpg)
WebLogic Kubernetes Operator
Kubernetes Cluster
pod
pod pod pod pod
K8S Node K8S Node
WebLogic Cluster
WLS K8S operator
Orchestrate
manage
kubectl
Manage WLS configured or dynamic clusters
loadbalance
Expose T3 + Admin Console to Ingress
WLS Logs to Elastic Search
Operational: Start Stop, REST API, WLDF
![Page 62: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/62.jpg)
• Simpler WebLogic management in Kubernetes
• 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
• Ensures WebLogic best practices are followed
•
WebLogic Kubernetes Operator
![Page 63: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/63.jpg)
• Helm charts for operator install
• Persistent volumes for logfiles
WebLogic Kubernetes Operator
![Page 64: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/64.jpg)
WebLogic KubernetesPrometheus & Grafana
![Page 65: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/65.jpg)
• OpenSource tools to monitor your stack• Prometheus feeds Grafana• Grafana visualizes• With k8s yaml files and json configs
• Or helm install
Do not forget to install a tiller service account and role
Prometheus & Grafana
kubectl create -f prometheus/prometheus-kubernetes.ymlkubectl create -f prometheus/grafana-kubernetes.yml
helm install --name prometheus stable/prometheus
![Page 66: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/66.jpg)
• Specially use to monitor WLS in k8s
• Feeded with WebLogic metrics
• Use with the “WebLogic Monitor Exporter”
– Tailored to export specific WebLogic JMX metrics
• Deploy it on your WebLogic domain
WLS Prometheus & Grafana
![Page 67: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/67.jpg)
• Gather mbean metrics using a config file
– WLDF query
WLS Prometheus & Grafana
![Page 68: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/68.jpg)
Prometheus & Grafana
wlsexporter.war
WLDF
Grafana Datasource
![Page 69: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/69.jpg)
Final…..
![Page 70: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/70.jpg)
• The more services, the more data exchange / network traffic
• Scale enough resources
• Use HTTP(s)(HTTP/2) for external
• Use TCP/UDP for internal
• Serialization of applications
• Maybe coherence, JSON
• Map application files shareable on a host-volume
Some tips and considerations
Kubernetes Cluster
pod
pod pod pod podK8S Node K8S Node
WebLogic Cluster
/shareddir/app artifacts
![Page 71: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/71.jpg)
Some tips and considerations
• Better use small as possible images
• Use base image for as much as possible purposes
• Ensure that settings such as JVM heap has been synchronized to
pods
![Page 72: Application Workloads to the Oracle Cloud with Kubernetes12 Master: Controls Kubernetes nodes. Node: Perform requested, assigned tasks by the master Pod: A group of one or more containers](https://reader030.vdocuments.us/reader030/viewer/2022041017/5ec989083a2f9344685e7f05/html5/thumbnails/72.jpg)
3 Membership Tiers• Oracle ACE Director• Oracle ACE• Oracle ACE Associate
bit.ly/OracleACEProgram
500+ Technical Experts Helping Peers Globally
Connect:
Nominate yourself or someone you know: acenomination.oracle.com
@oracleace
Facebook.com/oracleaces