I often get asked why Red Hat chose to standardize on Kubernetes for OpenShift, instead of going with a competing container orchestration solution. OpenShift is Red Hat’s enterprise Kubernetes distribution, available as both a commercial software solution (OpenShift Container Platform, available to run on OpenStack, VMware, AWS, GCP, Azure and any platform that delivers RHEL 7) and a public cloud service (OpenShift Dedicated and OpenShift Online). There are a number of open source container orchestration solutions available today. The OpenShift product team explored many of them, and we even explored building our own. In this blog, I will explain why we chose Kubernetes and why more than two years later, we couldn’t be happier with our decision!
Background
OpenShift was first launched in 2011 and always relied on Linux containers to deploy and run user applications. In OpenShift v1 & v2 we used our own platform-specific container runtime and container orchestration engine, like many PaaS solutions that relied on containers. In mid-2013, Red Hat made an early decision to support the docker open source project and help drive industry standards for the container runtime and packaging format. We brought full docker support to Red Hat Enterprise Linux 7 (as well as Fedora and CentOS) and this became the foundation for OpenShift 3.
However, we always knew that OpenShift would need more than a container runtime. As I often like to say, real applications don’t run in a single container and real production applications can’t be deployed on a single host. The ability to orchestrate multiple containers across multiple hosts was a critical requirement for OpenShift. In late 2013 and early 2014 we explored a number of options, including nascent orchestration efforts in the docker community, a thorough evaluation of Mesos and we even experimented with building our own OpenShift-specific orchestration solution. We even heard calls from the Twitterati that Red Hat should embrace other projects instead of OpenShift.
Ultimately our investigation led us to Kubernetes and looking back on it now there are three main reasons why - great technology, a great partner and a truly great community.
Great Technology
What we first saw and still love about Kubernetes were powerful primitives for container orchestration and management. These included:
- Kubernetes pods that allowed developers to deploy one or multiple containers as a single atomic unit.
- Services to access a group of pods at a fixed address and integrated IP and DNS-based service discovery to link those services together.
- Replication controllers to ensure that the desired number of pods is always running and labels to identify pods and other Kubernetes objects.
- A powerful networking model to manage containers across multiple hosts
- The ability to orchestrate storage, allowing you to run both stateless and stateful services in containers.
- Simplified orchestration models that quickly allowed applications to get running without the need for complex two-tier schedulers.
- An architecture that understood that the needs of developers and operators were different and took both of those requirements into considerations, eliminating the need to compromise both important functions.
We also liked that Kubernetes was written from the ground up in the Go language and was specifically designed for container orchestration. Nothing we saw in the docker community or in our own homegrown efforts even came close. While Mesos already had an established track record in big data, it was focused more on cluster management and relied on plugins like Marathon or Aurora to orchestrate containerized application services. These plugins were less capable than what we saw in Kubernetes, and Mesos itself was a more complex C++ code base, that we felt would be more difficult to extend and maintain. Even today we see solutions like Docker Swarm and Mesos copying many of the container orchestration primitives that Kubernetes pioneered. But the Kubernetes community has not stood still, and innovation in Kubernetes continues marching forward at an amazing pace with each release.
A Great Partner
Looking back through my old emails, I discovered that our first meeting with Google on the containers topic was in early March 2014. That meeting included folks like Craig McLuckie, Joe Beda, Brendan Burns, Martin Buhr, Ville Aikas and other pioneers of the Kubernetes project at Google. Of course at that time, we didn’t know that Kubernetes existed. Our goal was just to discuss the work that both companies had been doing in the docker community and explore areas of alignment.
Both Google and Red Hat have a long history of contributions to Linux and containers technology. It was Google’s work on Linux Control groups (Cgroups) back in 2006 that formed the foundation for containers in Linux and enabled projects like docker to exist. Red Hat has also contributed extensively to containers technology in Linux and, along with Google, quickly became top contributors to the docker project.
At that meeting, we learned that not only was Google committed to docker and bringing it to the Google Cloud Platform, but that they also had a new project in the works for container orchestration. This project, code named “Seven of Nine” at the time, was subsequently demonstrated to Red Hat Engineering leads Matt Hicks, Clayton Coleman, Daniel Riek and others and suffice it to say, it was love at first sight! ;) Many of the orchestration capabilities were drawn from Google’s own experience running legendary systems like Borg and orchestrating containers at scale over many years. It’s an overused line at this point, but at Google everything runs in a container and when you deploy billions of containers every single week, you quickly learn what works and what doesn’t.
Project “Seven of Nine” ultimately became Kubernetes and launched in July of that year, reaching 1.0 status just a year later in July 2015. I’ve often heard it said that when evaluating a company, you should focus on the people, not the products. In that regard, the Google Cloud team was hard to beat and their knowledge and experience with containers and managing them at scale was second to none.
A Truly Great Community
A mistake people make when evaluating open source software is to spend too much time looking at the technology and not enough time evaluating the community around it. This is one of the first lessons I learned as a Product Manager at Red Hat. The current state of any open source technology is just a snapshot in time. The state of the community around it is what determines the pace of innovation and how quickly that technology will evolve over time. In just over a year, the Kubernetes community has grown to nearly 4x the number of contributors as any other container orchestration project and has become one of the fastest growing open source projects on Github. And now under the governance of the Cloud Native Computing Foundation (CNCF), we’ve seen outstanding collaboration and innovation from a broad set of companies and individual contributors.
From our earliest discussions with Google, we saw their commitment to build a completely open community that was based on meritocracy. They invited Red Hat to join that community and asked for our input on how to shape it. When Kubernetes was finally released as open source in July 2014, Red Hat joined in the launch and today we are #2 only to Google in contributions. With Google’s support, we’ve worked to help enable Kubernetes for enterprise customer use cases and we deliver that through OpenShift.
The vibrancy of the Kubernetes community is reflected in the growth of the project and new features being introduced with every release. Today we see Kubernetes expanding to run at new levels of scale, enabling new workloads, driving cluster federation and addressing enterprise requirements around security and manageability, while enhancing ease of use.
That vibrancy is also reflected in events like Kubecon 2016, happening this week in Seattle. The event is sold out, and is expecting twice as many attendees as the last years event, with hundreds more on the waiting list.
And once again, I and the entire Red Hat team are excited to be part of it.
저자 소개
Joe Fernandes is Vice President and General Manager of the Artificial Intelligence (AI) Business Unit at Red Hat, where he leads product management, product marketing, and technical marketing for Red Hat's AI platforms, including Red Hat Enterprise Linux AI (RHEL AI) and Red Hat OpenShift AI.
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.