There are many ways to install Kubernetes and the obvious starting point is the setup section in the official documentation. But let's be honest, that's a little bit overwhelming, isn't it? This post should give you a high-level overview of what the different approaches are and which one might be the best for your situation. Note that I won't consider local/development setups here, such as Minikube or Minishift. Instead, we're talking about setting up Kubernetes for production usage.

A few questions to consider upfront:

  • Is your target environment bare metal, on-premises, public cloud?
  • Do you want to have fine-grained control over the install process or more of "push-button-do-it-for-me" install?
  • What's your budget (both time and money)?

Really, it's a spectrum of options you're looking at and taking into account the above questions may look somewhat like the following:

Let's now have a closer look at the different groups and examples of concrete methods and tools:

  • Manual means that you manually set up everything from the networking bits over downloading, configuring and launching components such as etcd or kube-apiserver. You've got full control over what goes where, but it might take you some time and it's error-prone. The ultimate reference in this area is Kelsey Hightower's Kubernetes The Hard Way (KTHW).
  • Installer are CLI tools that leverage templates and/or automation tools such as Terraform and Ansible. You typically have a lot control over what is going on, but less than in the manual approach. Examples include:
    • OpenCredo's Kubernetes from scratch to AWS with Terraform and Ansible part 1 and 2
    • kubeadm (think of a building block for other installers)
    • kops, mainly AWS
    • kubicorn
    • kubespray (Ansible-based, both bare-metal and cloud)
    • OpenShift advanced install based on Ansible
  • Hosted effectively means little to no installation effort on your end. For example:

To be clear, this is not a comprehensive listing of all the available options. Some offerings, such as OpenShift Dedicated, just don't fit in any of the categories. Further, the installation realm is moving so fast that whatever I write today could be obsolete tomorrow. For example, at GopherCon 2017, less than a month ago, at time of writing, kubicorn was open-sourced and I got involved in it, because it is a promising and very flexible approach. Another example, reportedly, AWS now also plans to offer its own hosted Kubernetes offering.
Who knows what install options will be available by end of year, so I'd suggest keeping your eyes peeled and your mind open.

Last but not least: In the Kubernetes SIG Cluster Lifecycle we've recently launched a task force that is looking into the adoption of kubeadm and if you're interested, you're more than welcome to chime in here as well.


執筆者紹介

UI_Icon-Red_Hat-Close-A-Black-RGB

チャンネル別に見る

automation icon

自動化

テクノロジー、チームおよび環境に関する IT 自動化の最新情報

AI icon

AI (人工知能)

お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート

open hybrid cloud icon

オープン・ハイブリッドクラウド

ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。

security icon

セキュリティ

環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報

edge icon

エッジコンピューティング

エッジでの運用を単純化するプラットフォームのアップデート

Infrastructure icon

インフラストラクチャ

世界有数のエンタープライズ向け Linux プラットフォームの最新情報

application development icon

アプリケーション

アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細

Virtualization icon

仮想化

オンプレミスまたは複数クラウドでのワークロードに対応するエンタープライズ仮想化の将来についてご覧ください