MacStadium's Orka brings modern, orchestration and containerization solutions Kubernetes and Docker to Mac-specific CI. We understand that most native iOS and macOS developers have likely not had much exposure to these powerful tools, as they have historically not been able to run on Mac. But that has all changed with the introduction of Orka. Now, teams that focus on dev for iOS and macOS have access to this powerful tech.
During DockerCon Copenhagen, Docker announced support and integration for Kubernetes, alongside Swarm. The first integration is in the Docker for Mac, where you can run now a 1 node Kubernetes cluster. This allows you to deploy apps with Docker-compose files. Docker for Mac required Kubernetes features are only accessible on macOS for now; Docker for Windows and Docker Enterprise Edition betas will follow at a later date. If you need to install a new copy of Docker for Mac you can download it from the Docker Store. How to Install Kubernetes on Mac. This is a step-by-step guide to installing and running Kubernetes on your Mac so that you can develop applications locally. You will be guided through running and accessing a Kubernetes cluster on your local machine using the following tools: Homebrew; Docker for Mac; Minikube; virtualbox; kubectl. Brew install kubernetes-cli Install the most recent version of Docker for Mac, one that includes the Kubernetes cluster functionality. Click the Docker menu bar icon Preferences, then click the Kubernetes tab. Click the checkbox to enable Kubernetes and switch the default orchestrator to Kubernetes. Docker might take a few minutes to install.
Docker has emerged as the dominant containerization solution in the software world. It is so popular because it offers coherence between the respective development and production environments for a given project. This means that the same code will run regardless of where it is physically because Docker provides a constant environment across machines in which to run code. Historically, to achieve a similar outcome, teams have used VMs (virtual machines). However, while an excellent choice for many applications, VMs are inherently complex, and thus present a greater technical debt for the average team to overcome. Conversely, Docker containers are relatively simple to manage and require less overhead to run.
Kubernetes is the leading, open-source, orchestration engine for managing multiple containers, such as those that Docker provides. Kubernetes provides a framework to run distributed systems – i.e. those that are bundled up into a series of containers – resiliently. It isn't just for production, though. Kubernetes is an excellent tool for managing containerized code that needs to be run in concert with other containers. In short, it just makes life easier.
Containerization – the practice of isolating code in a known and preservable environment, so as to ensure it will run as intended anywhere it ends up.
Orchestration – the practice of coordinating multiple computational resources for a common high-level purpose, although they may not all be doing the same work, but rather sub-portions of the same whole.
Node – distributed systems work in different ways, but inevitably there is the concept of a series of computational resources that are doing the work, naturally enough these are called “nodes,” “workers,” and sometimes “slaves” as well. In Orka, a node is a single, physical Mac Pro within the greater cluster. Kubernetes then facilitates communication between the various nodes, and further, the various Docker containers housed within a given node.
Image file (*.img) – a configuration file that defines a VM, complete with its own operating system. These are commonly used to re-make a given environment time and again for the sake of consistency during continuous integration (CI).
Orka Docs – Kubernetes Reference is a nice overview of Kubernetes features and functionality. Particularly helpful in sussing out the nuances of using Kubernetes on a Mac.
The Children’s Illustrated Guide to Kubernetes – a fun, easy, informative introduction to guiding principles of Kubernetes.
An Introduction to Kubernetes, by Justin Ellingwood, is a great bet if you’re ready to get started with Kubernetes in earnest, and you are looking for a stepping off point.
Docker For Mac Kubernetes Is Starting
The Kubernetes Docs – the ultimate source of truth for all things Kubernetes.
Docker For Mac Kubernetes China