Wondering about the process of mapping Devops to Kubernetes? Here are the core constructs Kubernetes provides and how it can be applied to the deployment and management of cloud native applications.
Kubernetes works through the use “declarative state.” Similar to how code is intended to describe a specific logical function, everything in Kubernetes is intended to describe a “state.” These descriptions include how a program should be deployed, its ideal containers and components, how networking and storage should be associated, and the resources that should be associated with it. The state is then given to one of a set of controllers that handles the deployment and management of the application.
This declarative approach enables teams to take advantage of paradigms such as “Infrastructure as Code.” The control plane of Kubernetes constantly tracks the deployments to ensure that the components are adhering to the desired configuration state. Example controllers within Kubernetes include ReplicationController, Deployment, DaemonSet, and StatefulSet. Each one of the controllers exists to address a slightly different use-case, allowing teams to effectively use the platform to target their needs:
• Stateless Workloads are managed using ReplicationControllers or Deployments, which create a ReplicaSet to ensure that a specific number of application instances are available at all times. If there are too many pods, the controller will terminate the extras and if there are too few, it will launch additional instances. If instances of the applications fail, get deleted, or are terminated they will be automatically replaced. Deployments are a newer construct than Replication Controllers and are strongly recommended option. They offer additional features, such as the ability to do rolling upgrades, and additional Platform as a Service (PaaS) capabilities to application management.
• Stateful Workloads are managed using StatefulSets. The same object can be utilized for single-instance applications that need persistent storage (such as a database node running MySQL or PostgeSQL), as well as for services that need to have replicated multiple instances (such as MySQL Galera, Cassandra, a MongoDB cluster, or others). In the deployment of the system, the controller works other parts of the system (like PersistentVolumes and PersistentVolumeClaims) to provision storage and other required resources. It also ensures that there are:
– stable, unique identifiers
– ordered, graceful deployment and scaling
– ordered termination and deletion ordered, automated rolling updates
• Batch Processing are deploying using Jobs, which allows the launch of run to completion or scheduled tasks. Run to completion jobs are used for processes that need to perform an operation and exit (such as a big data workload), where scheduled tasks are for recurring processes. A Job controller creates one or more container instances and then ensures that a specified number of them successfully terminate by tracking the successful completions. Jobs are capable of running in parallel, which makes it a powerful way to run machine learning model training jobs. Projects such as Kubeflow build on the low-level components in Kubernetes to make the management of machine learning workflows more robust.
• Event Driven Workloads can be deployed in one of a variety of configurations. These include utilizing stateless constructs to deploy standalone worker containers, or by utilizing a number of serverless frameworks that deploy on top of Kubernetes. This latter option has become increasingly popular and there are a large number of serverless projects including Apache OpenWhisk, Fission, Kubeless, OpenFaas, and Oracle Fn.
Mapping DevOps to Kubernetes – Start Your Transformation with DVO Consulting!
Contact us to learn more about the open-source container and how DVO Consulting can help you with your business processes and how Kubernetes in an organization can help.
DVO Consulting was founded and headquartered in Bountiful, UT to service the ever growing silicon slopes market and the west coast. We also have offices in Great Falls, VA which supports clients in Maryland, Virginia and Washington DC.