Kubernetes vs. Cloud Foundry
"Organizations that are planning to deploy across multiple CSPs will need PCF."
"However, PCF also comes at a higher cost and technical challenges."
"Itβs not as easy finding people skilled in PCF compared to Kubernetes."
"Kubernetes requires fewer resources than PCF to run."
"CSPs, such as Google Cloud Platform (GCP), the CSP will typically offer its own Kubernetes services out-of-the-box."
"Interestingly, even Pivotal is offering Kubernetes."
Almost all CF sponsors supports Kubernetes.
Similarity:
Both solutions use the idea of containers to isolate your application from the rest of the system.
Both Cloud Foundry and Kubernetes are designed to let you run either on public cloud infrastructure (AWS, Azure, GCP etc.), or on-prem using solutions such as VMWare vSphere.
Both solutions offer the ability to run in hybrid/multi-cloud environments, allowing you to spread your availability among different cloud providers and even split the workload between on-prem and public cloud.
Starting with the latest release of Pivotal Cloud Foundry, both solutions support Kubernetes as a generic container runtime.
"Both platforms support the ability to deploy applications with zero downtime, however this is one area where Kubernetes wins in my opinion, since it provides a built-in mechanism for zero downtime deployments with rollback."
"With Kubernetes, you can make load-balanced http calls to any Kubernetes service that exposes pods, regardless of the implementation of the client or the server."
"Kubernetes does not offer a marketplace out of the box. There is a service catalog extension that allows for a similar service catalog, however it is still in beta."
"In Kubernetes, you can still run a config server as a container, but that would probably become an unneeded operational overhead since you already have built-in support for ConfigMaps. "
"A big differentiator of Kubernetes is the ability to attach a storage volume to your container."
"Getting started with Kubernetes was not easy."
"Game of cloud technologies: Kubernetes vs. Cloud Foundry"
"Kubernetes is a lower-level abstraction in the PaaS world meaning greater flexibility to implement customizations and build your containers to run how you want them to run. Unfortunately, this also means more work for your engineering teams and decreased productivity."
"Today, Kubernetes is the natural choice for running software in the Cloud."
https://blog.overops.com/pivotal-cloud-foundry-vs-kubernetes-choosing-the-right-cloud-native-application-deployment-platform/
https://developer.ibm.com/technologies/containers/blogs/game-of-cloud-technologies-kubernetes-vs-cloud-foundry/
Kubernetes manage containers; containers run code. It takes complicated workflow for code to arrive into a container in Kubernetes cluster.
Typically, developers and devops
Write code
Run build
Compose container image, such as docker image
Publish image to registry
Create Kubernetes artifacts
"Apply" Kubernetes artifacts
Above tedious heavy duty workflow, drastically reduces developers' productivity.
Alternatively, developers can maintain local dev configuration, integration/qa, and production configuration. This solves productivity problem, but it also raise risks of environment disparities.
Skaffold is the rescue. Below are demo/sample Kubernetes projects with step by step instruction with Skaffold.
Spring Boot Java Application
NodeJS Web Application
Beyond Developers' Problem
Skaffold is a tool for providing portability for CI integrations with different build system, image registry and deployment. It comes with basic capability for generating manifests. Skaffold is also extendible and lets user pick tools for use in each of the steps in building and deploying applications.
https://kubernetes.io/blog/2018/05/01/developing-on-kubernetes/
"The more clusters you need the harder it becomes to operate, monitor, manage, and keep all of them alive and up-to-date."
"At SAP, we face this heterogeneous multi-cloud & on-premise challenge not only in our own platform, but also encounter the same demand at all our larger and smaller customers implementing Kubernetes & Cloud Native."
Gardener provides a central dashboard for comfortable interaction comparing with kubectl, which is CLI for Kubernetes.
Gardener runs as a dedicated Kubernetes cluster (called "garden" cluster) for creating and managing users' Kubernetes clusters (called shoot cluster).
https://kubernetes.io/blog/2018/05/17/gardener/
What is and Why Istio? The Answer is here .
Traffic management
Security
Observability
Running Istio on Minikube.