Kubernetesとはなんぞや

このエントリはKubernetesアドベントカレンダー2014の1日目です。

Docker、IBM、Microsoft、RedHatがGoogleのコンテナ管理フレームワークKubernetesにこぞって開発参加する理由 - Qiitaより拝借

Kubernetesとは

「クゥバネィテス」的なかんじで呼びます。 よく k8s と略されます。

いろいろ誤解を承知でざっくり説明すると、雰囲気としては

  • KVM/VMware/Xenと組み合わせてITインフラをうまく使うためのツールがOpenstack/Cloudstack
  • dockerと組み合わせてITインフラをうまく使うためのツールがKubernetes

という感じの動きをしてくれるソフトウェアです。 ただしマルチテナントの機能は今のところありません。

概要レベルの情報はそれなりに出回っているので読み漁ってみるとよいかと思います。

ここまでで雰囲気を感じていただけたかもしれませんが、万人が意識して運用するツールではありません。 ごくごく一部の基盤系インフラエンジニアががっつり携わる類のプロダクトだと思います。

動作環境

リポジトリの中を見渡すと golang + shell script でできているようです。

動作させるためには dockeretcdiptables が必要なので、Linux前提になります。 見渡すとCoreOSでの利用を想定している人が多いようですが、 公式のお試し用Vagrantイメージはfedora20だったりしてブレブレです。好きなのを使いましょう。

CentOS6で試したところiptablesのバージョンの問題で動かなそうだったので、 CentOSであれば7以降を利用するのがよいとおもいます。

Google Cloud Platform上でなくても動く!

リポジトリのパスはGoogle Cloud Platform配下(https://github.com/GoogleCloudPlatform/kubernetes)なのですが、Google Cloud Platform(GCP)でなくても動きます。

ドキュメントにも Kubernetes can run anywhere! と謳っています。 もちろんローカル環境でも動きますし、AWS, DigitalOcean, OpenStack, CloudStack, Rackspace, vSphere, Microsoft Azure などでの動かし方が公式ドキュメントに記載されています。 私もSoftLayerで動かしたので明日のSoftLayerアドベントカレンダーの記事にしています。

自前で構築・運用しなくてすむサービスがある!

GoogleがGoogle Container Engineを提供しています。これを使えば自前で構築・運用しなくてもGoogleがうまくやってくれます。

自前で構築・運用するのが得策かはさておき、楽しそうなので今回は深堀りしていきます。

Overview

KubernetesはドキュメントもGithubにあります。 それなりにきちんと書かれているので、まずはひと通り読んでみるのがよいと思います。

明日以降はこのあたりをとっかかりに見ていく予定です。

kubernetes/DESIGN.md at master · GoogleCloudPlatform/kubernetes

今はすごい勢いで開発が進んでいるので、いろいろ試すときはバージョンを固定しましょう。 ここ2週間でv0.5→v0.5.4までバージョンが上がりました。 それだけまだバギーでもあります。

Community

GoogleグループのContainers at Googleがとても活発なので眺めているとよいでしょう。

IRCもあります。

今年の年末年始は休暇が長めの方が多いとおもいますので、このAdvent Calendarでネタとモチベーションをためて年末年始で一気に触ってみてもらえるといいなぁと思っております。

お断り

  • 一連のエントリは勉強とかしながら書いてるので間違いとかあるかもしれません。なにかあればtwitterなどで教えてください
  • 特に断りがない場合、一連のエントリでは Kubernetes 0.5.3, CentOS7.0.1406, docker 1.2, go 1.3.3, etcd 0.4.6, etcdctl 0.4.5, flannel 0.1.0 で動かしてます

See also