Hello Everyone!! As you all are aware of the word Kubernetes which are nowadays very prevalent in the industries but don’t know what it actually is. So let me introduce you what is Kubernetes(also called K8s ).
What is Kubernetes?
Imagine a situation where you have been using Docker for a little while, and have deployed it on a few different servers. Your application starts getting massive traffic, and you need to scale up fast, how will you go from 3 servers to 40 servers that you may require? And how will you decide which container should go where? How would you monitor all these containers and make sure they are restarted if they exit?
This is where Kubernetes comes in.
Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It is basically the container management tool that manages and add extra facilities to the containers like scaling, deployment etc. It groups containers that make up an application into logical units for easy management and discovery. It manages Pods which is like a box inside which container is wrapped adding some extra features on it.
Characteristics of Kubernetes
Modern applications are increasingly based on the use of containers, which are packaged microservices with their dependencies and configurations. Kubernetes is an open-source software to implement and manage those containers on a large scale. It enables any number of servers of many types at the same time, separated by distance, to share workloads for a common tenant.
Most importantly, Kubernetes was designed to be used anywhere, so it can orchestrate on-site public cloud, and hybrid deployments. With Kubernetes, concrete steps can be taken to achieve better IT security. In addition, it must also be integrated with networking, storage, security, telemetry, and other services to provide a comprehensive container infrastructure. This offers the simplicity of Platforms as a Service (PaaS) with the flexibility of Infrastructure as a Service (IaaS) and allows for portability between infrastructure providers.
Some of its features include:
- The ability to automatically place containers according to your resource requirements, without affecting availability.
- Service discovery and load balancing: no need to use an external mechanism for service discovery as Kubernetes assigns containers their own IP addresses and a unique DNS name for a set of containers and can balance the load on them.
- Planning: it is in charge of deciding in which node each container will run according to the resources it requires and other restrictions. It mixes critical and best-effort workloads to enhance resource utilization and savings.
- Enable storage orchestration: automatically sets up the storage system as a public cloud provider. Or an on-premise networked storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, and others.
- Batch execution: in addition to services, Kubernetes can manage batch and IC workloads, replacing failed containers.
- Configuration and secret management: sensitive information such as passwords or ssh keys are stored in Kubernetes hidden in ‘secrets’. Both the application’s configuration and secrets are deployed and updated without having to rebuild the image or expose sensitive information.
- Self-repair: restart failed containers, replace and re-program them when nodes die. Also, remove unresponsive containers and do not publish them until they are ready.
- Execution of automated deployments where changes to the application or its configuration are progressively implemented, while its status is monitored. This ensures that you do not delete all your instances at once. If something goes wrong, Kubernetes will reverse the change.
Companies using Kubernetes
Google is probably the first company that realized it needed a better way to implement and manage its software components to scale globally, and for years developed Borg (later called Omega) internally. In 2014, after almost a decade of intensive internal use, Kubernetes was publicly presented as an Open Source system based on learning using large-scale services. And today, Kubernetes is the de facto standard for implementing and deploying distributed applications.
Retail giant Adidas is using a cloud native architecture, underpinned by the CNCF driven Kubernetes System, to support its front-end e-commerce platform, which is now being used at scale for massive events such as Cyber Monday and Christmas. The open-source technologies that underpin the cloud-native architecture — largely driven by the Kubernetes focused CNCF — are growing hugely in popularity. In recent years, the Adidas team was happy with its software choices from a technology perspective — but accessing all of the tools was a problem. For instance, “just to get a developer VM, you had to send a request form, give the purpose, give the title of the project, who’s responsible, give the internal cost center a call so that they can do recharges,” says Daniel Eichten, Senior Director of Platform Engineering. To improve the process, “we started from the developer point of view,” and looked for ways to shorten the time it took to get a project up and running and into the Adidas infrastructure, says Senior Director of Platform Engineering Fernando Cornago. They found the solution with containerization, agile development, continuous delivery, and a cloud-native platform that includes Kubernetes and Prometheus. Just six months after the project began, 100% of the Adidas e-commerce site was running on Kubernetes. Load time for the e-commerce site was reduced by half. Releases went from every 4–6 weeks to 3–4 times a day. With 4,000 pods, 200 nodes, and 80,000 builds per month, Adidas is now running 40% of its most critical, impactful systems on its cloud-native platform.
“For me, Kubernetes is a platform made by engineers for engineers. It’s relieving the development team from tasks that they don’t want to do, but at the same time giving the visibility of what is behind the curtain, so they can also control it.” — FERNANDO CORNAGO, SENIOR DIRECTOR OF PLATFORM ENGINEERING AT ADIDAS
Due to high traffic volume, Tinder’s engineering team faced challenges of scale and stability. What did they do?
Kubernetes — Yes, the answer is Kubernetes.
Tinder’s engineering team solved interesting challenges to migrate 200 services and run a Kubernetes cluster at a scale totaling 1,000 nodes, 15,000 pods, and 48,000 running containers.
Was that easy? No ways. However, they had to do it for the smooth business operations going further. One of their Engineering leaders said, “As we onboarded more and more services to Kubernetes, we found ourselves running a DNS service that was answering 250,000 requests per second.” Fantastic culture, Tinder’s entire engineering organization now has knowledge and experience on how to containerize and deploy their applications on Kubernetes.
A household name in high-quality audio equipment, Bose has offered connected products for more than five years, and as that demand grew, the infrastructure had to change to support it. “We needed to provide a mechanism for developers to rapidly prototype and deploy services all the way to production pretty fast,” says Lead Cloud Engineer Josh West. In 2016, the company decided to start building a platform from scratch. The primary goal: “To be one to two steps ahead of the different product groups so that we are never scrambling to catch up with their scale,” says Cloud Architecture Manager Dylan O’Mahony.
From the beginning, the team knew it wanted a microservices architecture. After evaluating and prototyping a couple of orchestration solutions, the team decided to adopt Kubernetes for its scaled IoT Platform-as-a-Service running on AWS. The platform, which also incorporated Prometheus monitoring, launched in production in 2017, serving over 3 million connected products from the get-go. Bose has since adopted a number of other CNCF technologies, including Fluentd, CoreDNS, Jaeger, and OpenTracing.
With about 100 engineers onboarded, the platform is now enabling 30,000 non-production deployments across dozens of microservices per year. In 2018, there were 1250+ production deployments. Just one production cluster holds 1,800 namespaces and 340 worker nodes. “We had a brand new service taken from concept through coding and deployment all the way to production, including hardening, security testing and so forth, in less than two and a half weeks,” says O’Mahony.
“At Bose we’re building an IoT platform that has enabled our physical products. If it weren’t for Kubernetes and the rest of the CNCF projects being free open source software with such a strong community, we would never have achieved scale, or even gotten to launch on schedule.” — JOSH WEST, LEAD CLOUD ENGINEER, BOSE
These were some out of the many companies that used Kubernetes to solve their use cases. That’s all from my side. Thanks for reading!!:)
Do connect me on LinkedIn: https://www.linkedin.com/in/shivam-prasad-upadhyay/