Difficulty: intermediate
Estimated Time: 20-30 minutes

Users are increasingly interested in using Kubernetes in hybrid and multi-cloud scenarios.

Many of those scenarios involve deploying services in multiple clusters across different data centers and clouds. Red Hat has been working in the Kubernetes Multi-cluster SIG and Federation Working Group to develop Kubernetes KubeFed which is designed to allow users to deploy services and workloads to multiple clusters from a single API.

This course will guide you through the Federation Deployment based on Kubernetes KubeFed and you will end up deploying a federated application.

Congratulations! You just finished learning the basics on OpenShift Container Platform Federation. Feels good doesn't it?

If you are curious enough, see the official repo where you can find the most updated information about federation.

We also have the federation-dev repository with demos, labs and examples of the use of KubeFed.

What's next?

At this point you are probably itching to keep working with OpenShift as you have had a glimpse of the power this can bring to your own applications. We are currently working on more advanced tutorials that will be hosted here but in the meantime, you can certainly run your own version of OpenShift or use a hosted model. You are welcome to use one of the following options:

Minishift

Minishift is a complete OpenShift environment which you can run on your local machine. The project supports Windows, OS X, and the Linux operating system. To find more about minishift, visit http://www.openshift.org/vm

oc cluster up

oc cluster up is a command provided by the oc client tool. It configures and runs an openshift environment inside of the native docker system for your operating system. It supports Windows, OS X, and the Linux operating systems. For more information, visit https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md

If you decide to try out oc cluster up, and you should, I would also suggest that you take a look at a wrapper script that was created to make life a little bit easier for you called oc cluster wrapper. This wrapper provides functionality such as the ability to have different profiles, persistent volume management and other great features. You can find more information at the official git repository at https://github.com/openshift-evangelists/oc-cluster-wrapper

OpenShift Online

The OpenShift team provides a hosted environment which includes a free starter plan which you can use to develop and test applications for OpenShift. You can find details for OpenShift Online and sign up at https://www.openshift.com/pricing/index.html

OpenShift Dedicated

You can also let Red Hat host an OpenShift instance for you on a public cloud. This is an ideal scenario for larger teams that do not want to deal with the operational aspects of running a full environment. To find out more, visit https://www.openshift.com/dedicated/

Getting Started With Kubefed

Step 1 of 6

Step 1 - Introducing Kubefed

KubeFed is a Kubernetes Operator that provides tools for managing applications and services through multiple Kubernetes clusters.

KubeFed allows users to:

  • Distribute workloads across registered clusters

  • Program DNS with information about those workloads

  • Dynamically adjust replicas in the different clusters a workload is deployed in

  • Provide disaster recovery for those workloads

As KubeFed matures, we expect to add features related to storage management, workload placement, etc.

KubeFed takes advantage of new mechanisms in order to extend the Kubernetes API and provide an easy interface for users to interconnect their Kubernetes clusters without having to deal with network latencies, etcd requirements, etc.

The KubeFed control plane is composed of an Operator running on one of the federated clusters. This Operator is in charge of some CRDs which will be discussed later on in this course.

Concept Definition
Host Cluster A cluster which is used to expose the KubeFed API and run the KubeFed Control Plane
Member Cluster A cluster which is registered with the KubeFed API and that KubeFed controllers have authentication credentials for. The Host Cluster can also be a Member Cluster.
Terminal Host 2