This document discusses running Cloud Foundry on Kubernetes to provide highly available cloud platforms. It begins with an overview of cloud computing models and introduces Cloud Foundry. It then discusses deploying Cloud Foundry using Kubernetes primitives like pods, services, and stateful sets for high availability. The document demonstrates how to install Cloud Foundry on Kubernetes using Helm charts and configure for high availability. It shows the components have been made highly available to prevent downtime during failures or upgrades. Finally, it provides a demo of deploying a sample application on Cloud Foundry on Kubernetes under chaotic conditions to showcase the high availability.
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
1. Highly Available Cloud Foundry
on Kubernetes
Open Source Data Center Conference 2018
Cornelius Schumacher <cschum@suse.com>
Distinguished Engineer
SUSE Linux
13. 13
Staging the runtime
Container
Operating SystemOperating System
Container
Buildpack
Operating SystemOperating System
User Applications
Container
Buildpack
Operating SystemOperating System
OS Base
Container
Buildpack builder Runtime
28. 28
What is Kubernetes?
“Kubernetes is an open-source system for
automating deployment, scaling, and management
of containerized applications.”
– kubernetes.io
●
Nodes, Pods, Containers
●
Network, Storage, Services
●
YAML files to describe desired state
●
API driven service to manage state
33. 33
OS Base Image Layer
Stemcell Layer
Operating System (built with Kiwi)
Fissile stemcell
container image
Cloud Foundry
container image
Cloud Foundry release Fissile
Building Cloud Foundry container images
Helm
charts
34. The stemcell pipeline
openSUSE Leap Base OS Image
BOSH stemcell
Fissile container
base image
Kiwi
BOSH Linux
Stemcell Builder
Product Pipeline
(Concourse)
44. Kube Services
“A Kubernetes Service is an abstraction
which defines a logical set of Pods and a
policy by which to access them -
sometimes called a micro-service.“
“api.cf.svc.cluster.local:8500”
45. Kube Stateful Sets
“StatefulSets manage Pods that are based
on an identical container spec. However,
although their specs are the same, the Pods
in a StatefulSet are not interchangeable.
Each Pod has a persistent identifier that it
maintains across any rescheduling.“
“nats-1.cf.svc.cluster.local:4222”
46. Kube Probes
“The kubelet uses liveliness probes to
know when to restart a Container.“
“The kubelet uses readiness probes to
know when a Container is ready to start
accepting traffic.“
47. Exposing it using Helm
• Opinionated defaults that allow
you to go from basic to HA by
changing replica count
• Operator is shielded from the
complexity of managing each
HA component individually
48. What we’ve achieved
• We can horizontally scale the critical pieces to make
sure user applications suffer no downtime
• We can make all Cloud Foundry components HA, so
when upgrades or failures occur, all features are still
available, and the service doesn’t need to be degraded
• We can survive the chaos monkey!
50. 50
https://www.youtube.com/watch?v=BZy1L4F66TQ
●
Full deployment of Cloud Foundry on Kubernetes
●
Running user application with 4 instances
●
A chaos monkey script killing random things every 3 minutes
●
Constant application and API monitoring
●
3 hours compressed to 5 minutes
54. 54
Operators
●
IT-as-a-service for (internal) customers
●
Automatic provisioning, deployment and scaling of applications
within existing IT constraints
●
Controlled configuration of the middleware (buildpack and service
control)
●
Similar environment that can be run in private or public cloud
●
No more “templating" of VMs required
●
Visibility into the management, monitoring, logging of systems,
users and applications