# TOSCA-Based and Federation-Aware Cloud Orchestration for Kubernetes Container Platform
## 2 Containerized Service Orchestration Technology  
### Docker and Kubernetes  
Configuring a cloud service requires the installation of various components and programs. For instance, configuring a web server requires an operating system, web daemon, and a database server. The conventional method of installing constituting parts on actual machines limits the computing resources to a particular service execution and does not allow the resources to be shared by different services. Docker [13] containerizes individual processes and allows them to be run within a separated lightweight execution environment called a container. As the adoption of Docker has increased, the need to automatize the deployment and management of containerized applications has recently arisen [14]. Developed in this context, Kubernetes [15] is an open-source container orchestration tool that automatically installs and manages a cluster of Docker containers. The service developer can create Docker images containing desired service elements and Kubernetes can deploy and manage the components and their relationships. Kubernetes includes the following elements:  
* **Kubernetes pod**: this is an essential building block of Kubernetes, usually containing multiple Docker containers. * **Kubernetes node**: this represents a VM (Virtual Machine) or physical machine where the Kubernetes pods are run. * **Kubernetes cluster**: this consists of a set of worker nodes that cooperate to run applications as a single unit. Its master node coordinates all activities within the cluster. * **Kubernetes Federation**: this is a cluster of clusters, i.e., viewed as a backbone cluster that combines multiple Kubernetes clusters. For example, when one Kubernetes cluster is running on Google Cloud Platform in Tokyo, Japan, and another is running in Oregon, U.S., one Kubernetes federation might be configured such that if there is a problem in the Oregon platform, the Tokyo cluster would be able to take over the share of the faulty platform, thereby increasing the resiliency of the service. Figure 1 shows an example of the Kubernetes Federation architecture. Kubernetes provides a flexible, loosely coupled mechanism for service delivery. The federation application program interface (API) server interacts with the cluster through the federation controller manager. The master is responsible for exposing the API, scheduling the deployments, and overall cluster management. The interaction with the Kubernetes cluster is done through the federation controller manager using the federation API server. Orchestration Tools Supporting Topology and Orchestration Specification for Cloud Applications (TOSCA)  
Organizations seek cloud providers that support the functions required for their services at a lower price. However, once a service is initiated with a particularcloud provider, it is difficult for the organization to switch to a different provider [16; 17]. As a solution to this problem, the OASIS, the international nonprofit standard organization, has recently introduced a standard to enable the portability of cloud-based applications, called TOSCA [12; 18]. The TOSCA template defines the topology of an entire application by formulating a directional graph with the node and relationship templates. * The node template defines the components of the cloud-based applications. The node type is specified to express the characteristics and the available functions of the service component. * The relationship template defines the relations between the components. The relationship type is specified to express the relationship characteristics between the components. These TOSCA templates are used to describe the components and inter-component relationships of cloud applications in a declarative way so that the topology descriptions can be instantiated and deployed on a particular cloud platform later on. Hence, the application portability. Several cloud orchestration tools are capable of supporting the TOSCA standard. [PERSON] et al.