Shannon Williams December 27, 2016
2017 Predictions: Rapid Adoption and Innovation to Come
Rapid adoption of container orchestration frameworks
As more companies use containers in production, adoption of orchestration frameworks like Kubernetes, Mesos, Cattle and Docker Swarm will increase as well. These projects have evolved quickly in terms of stability, community and partner ecosystem, and will act as necessary and enabling technologies for enterprises using containers more widely in production. Read more
Usman Ismail October 20, 2016
Note: Since publishing this article, we’ve gotten requests for a downloadable version. You can request a copy here.
Recent versions of Rancher have added support for several common orchestration engines in addition to the standard Cattle. The three newly supported engines, Swarm (soon to be Docker Native Orchestration), Kubernetes and Mesos are the most widely used orchestration systems in the Docker community and provide a gradient of usability versus feature sets. Although Docker is the defacto standard for containerization, there are no clear winners in the orchestration space. In this article, we go over the features and characteristics of the three systems and make recommendations of use cases where they may be suitable.
Docker Native Orchestration is fairly bare bones at the moment but is getting new features at a rapid clip. Since it is part of the official Docker system, it will be the default choice for many developers and hence will have likely have good tooling and community support. Kubernetes is among the most widely used container orchestration systems today and has the support of Google. Lastly, Mesos with Mesosphere (or Marathon, its open source version) takes a much more compartmentalized approach to service managements where a lot of features are left to independent plug-ins and applications. This makes it easier to customize the deployment as individual parts can be swapped out or customized. However, this also means more tinkering is required to get a working setup. Kubernetes is more opinionated about how to build clusters and ships with integrated systems for many common use cases.
Usman Ismail September 22, 2016
In a previous article in this series we looked at the basic Kubernetes concepts including namespaces, pods, deployments and services. Now we will use these building blocks in a realistic deployment. We will cover how to setup persistent volumes, how to setup claims for those volumes and then mount those claims into pods. We will also look at creating and using secrets using the Kubernetes secrets management system. Lastly, we will look at service discovery within the cluster as well as exposing services to the outside world.
We will be using go-auth as a sample application to illustrate the features of Kubernetes. If you have gone through our Docker CI/CD series of articles then you will be familiar with the application. It is a simple authentication service consisting of an array of stateless web-servers and a database cluster. Creating a database inside Kubernetes is nontrivial as the ephemeral nature of containers conflicts with the persistent storage requirements of databases.
Prior to launching our go-auth application we must setup a database for it to connect to. Prior setting up a database server in Kubernetes we must provide it with a persistent storage volume. This will help in making database state persistent across database restarts, and in migrating storage when containers are moved from one host to another. The list of currently supported persistent volume types are listed below: Read more
Usman Ismail August 23, 2016
Most people running Docker in production use it as a way to build and move deployment artifacts. However, their deployment model is still very monolithic or comprises of a few large services. The major stumbling block in the way of using true containerized microservices is the lack of clarity on how to manage and orchestrate containerized workloads at scale. Today we are going to talk about building a Kubernetes based microservice deployment. Kubernetes is the open source successor to Google’s long running Borg project, which has been running such workloads at scale for about a decade. While there are still some rough edges, Kubernetes represents one of the most mature container orchestration systems available today.
Launching Kubernetes Environment
You can take a look at the Kubernetes Documentation for instructions on how launch a Kubernetes cluster in various environments. In this post, I’m going to focus on launching Rancher’s distribution of Kubernetes as an environment within the Rancher container management platform. We’ll start by setting up a Rancher server as described here and select Environment/Default > Manage Environments > Add Environment. Select Kubernetes from Container Orchestration options and create your environment. Now select Infrastructure > Hosts > Add Host and launch a few nodes for Kubernetes to run on. Note: we recommend adding at least 3 hosts, which will run the Rancher agent container. Once the hosts come up, you should see the following screen, and in a few minutes your cluster should be up and ready.
Vishal Biyani July 13, 2016
Prometheus is a modern and popular monitoring alerting system, built at SoundCloud and eventually open sourced in 2012 – it handles multi-dimensional time series data really well, and friends at InfinityWorks have already developed a Rancher template to deploy Prometheus at click of a button.
In hybrid cloud environments, it is likely that one might be using multiple orchestration engines such as Kubernetes and Mesos, in which case it is helpful to have the stack or application portable across environments. In this short tutorial, we will convert the template for Prometheus from Cattle format to make it work in a Kubernetes environment. It is assumed that the reader has a basic understanding of Kubernetes concepts such as pods, replication controller (RC), services and so on. If you need a refresher on the basic concepts, the Kubernetes 101 and concept guide are excellent starting points.
Prometheus Cattle Template Components
If you look at latest version of the Prometheus template here you will notice:
- docker-compose.yml – defines containers in docker compose format
- rancher-compose.yml – adds additional Rancher functionality to manage container lifecycle.
Below is a quick overview of each component’s role (Defined in docker-compose.yml):
Will Chan June 28, 2016
View the Rancher 1.1.0 release notes on GitHub
After a very exciting DockerCon last week where the bulk of the engineering team was able to see all the latest and greatest innovations surrounding the Docker ecosystem, our team was able to squash the remaining issues for our Rancher 1.1 stable release. If you have been following our dev builds, we have been shipping tech preview features with each release for our open source community members who want to play with the latest Rancher has to offer. With 1.1.0, most of those features are now in a stable state to be used in production. Some highlights include:
- Docker 1.11.x Support: It has always been our intention to support the latest Docker Engine as soon as it is released but 1.11.x support was a much larger effort to add to a patch release for 1.0.x. As Docker prepares for 1.12, we hope to quickly add it to a subsequent Rancher 1.2.x release. Look for it soon!
- Mesos Support: Rancher users can now choose Mesos as a container orchestration framework when creating environments. Similar to our support for Kubernetes and Docker Swarm, users can expect Rancher to manage the Mesos engine, the underlying infrastructure, user access control, and the catalog of frameworks that can be deployed on top of Mesos.
- More Kubernetes Features: We love Kubernetes as a container orchestration framework and have added additional features that were missing when we originally launched it in our 1.0.0 release. These include support for persistence storage to EBS and GCE, private registries, ingress controllers, and self-signed SSL support so plugins such as a Deis, dashboard, heapster, and pod scaling will now work. In addition, with 1.1.0, Rancher can now upgrade kubernetes within each environment with a click of a button.
- Machine Catalog: We have now “catalog-ized” our Docker Machine integration by leveraging our existing catalog framework. Users can now add new Docker Machine drivers with any custom UI and make them available to all Rancher users via our public catalog or publish it to their own private catalogs.
Please head to 1.1.0 release for more detailed notes, or join us for our next free online training to learn how to run Rancher.
When we released 1.0.0 GA, we wanted to continue to ship our open source releases in our bi-weekly releases so users can play with the latest Rancher has to offer. Our current model of having dev builds were causing some confusion with users that wanted to run Rancher in production. With your feedback, we are making a few changes to how our release builds work.
For stable builds, in addition to tagging rancher/server:stable, we will also packaged it as their own Docker image called rancher/enterprise. If you are running Rancher in production, it is highly recommended you use or upgrade to this build.
Our current dev builds will continue to be shipped as rancher/server with a small change to the tagging to -preX rather than -devX to denote a pre-release build for the upcoming stable build. As usual, our pre-release builds will go through our normal validation tests and QA cycles to ensure no regressions but will include the newest features we’ve developed as tech previews. For example, after 1.1.0 ships, the next pre-release build will be v1.2.0-pre1.
Rancher Project Planning
As we move to Rancher 1.2.0 and beyond, we want to be more transparent to our open source community by providing a look into what we tentatively plan to add with each major release. We have created a new Rancher Project Planning page to address this.
Docker 1.12 with built-in orchestration
Sheng’s blog already details how committed we are to supporting multiple frameworks. With the recent announcement of Docker 1.12 and its built-in orchestration, our engineering team is already at work incorporating it as another container orchestration framework. As Docker 1.12.0 is currently shipped as a release candidate, please look for a tech preview in our next pre-release build of Rancher 1.2.0 once it has been officially released.