search
LoginSignup
16

More than 5 years have passed since last update.

posted at

updated at

Kubernetesの世界を散策してみよう

はじめに

このエントリーはKubernetes Advent Calendar 2016の1日目の投稿になります。今年の8月頃から仕事でKubernetesを検証していたので、勢い余ってアドベントカレンダーを作ったところ、私以外にも24名の参加者が集まってくれました。今からどんなエントリーが集まるのか楽しみです。皆さん、よろしくお願いします!

Kubernetesの世界を散策してみよう!

そんなわけで、Kubernetesを使ってあれこれ検証しているわけですが、初回ということもあり、Kubernetesに関して知ることのできる情報をいくつか紹介しながら、その世界を散策したいと思います。

Kubernetes誕生の物語

まずは、Kubernetesがどのようにして生まれたのか?という話から覗いてみましょう。

こちらはGoogle Cloud Platform Japan Blogのエントリーです。Googleの内部で使われているBorgというクラスタ管理システムをベースにして、Dockerを活用したコンテナ管理システムとしてKubernetesが作られたことが語られています。

Googleが提供するGoogle Container EngineはKubernetes上に構築されたクラスタ管理およびオーケストレーションシステムであり、Dockerコンテナを使用して、Kubernetesで管理することができます。

また、少し前のニュースで知りましたが、Azure Container Serviceでも、オーケストレーションツールの選択肢として、Kubernetesが選べるようになりました。

Kubernetesを知る

Kubernetesの仕組みがどのようなものか知るには、公式ページのWhat is Kubernetes?で紹介されている次のスライドを見るとよいです。

Kubernetesのバージョンは1.1が対象ですが、Kubernetesの基本となるアーキテクチャや主要機能(Pods、Labels、ReplicationControllers、Services・・・)などについて説明されています。

また、Kubernetesの1.3、1.4についての説明も含んだ内容としては、こちらのスライドがオススメです。

Pokémon GOはGoogle Container EngineでのKubernetes過去最大のデプロイ例

Pokémon GOは私も毎日やっているのですが、Google Container Engineを使ってKubernetes上にデプロイされているそうです。Kubernetesの利用事例は多くありますが、一番惹かれたのがPokémon GOの事例です。こちらのスライドで紹介されています。

読み方と略語

ちなみに、「Kubernetes」ってなんて読むの?と私も最初に疑問に思ったのですが、YouTubeなどで確認すると「クゥーバネティス」が正しいようです。また、文字数が長いので、省略して書くときは「k8s」と表現します。

OpenShift

Kubernetesをエンタプライズ向けに機能追加したプラットフォームとして、Red HatはOpenShiftを提供しています。OpenShiftはKubernetes上に主に運用面で必要なるツール群が追加されています。私自身も少し試してみましたが、基本はKubernetesなので、Kubernetesを使っていれば大きなギャップがなくOpenShiftも使うことができるように感じています。

fabric8

もう一つ紹介したいのが、私が個人に最近注目しているfabric8です。fabric8はRed Hatが支援しているOSSコミュニティで、公式ページの書き出しには

fabric8 is an opinionated and open source Integrated Developer Platform 
for the Continuous Delivery of Microservices using Kubernetes and Jenkins.

とあります。私はJavaをメインで使うのですが、fabric8はKubernetesにアプリケーションをデプロイするためのfabric8 maven pluginやJenkinsを用いたpipe line機能、Spring CloudをKubernetes用に拡張したspring-cloud-kubernetesを提供しているので、実際の使用感をあれやこれやと試していますが、今の所気に入っています。

Kubernetesをローカル環境に構築してみよう!

Kubernetesを使ってみるには、Google Container EngineAzure Container Serviceを使うのが手っ取り早いですが、mininkubeを使うとローカルマシンに環境を簡単に構築することができます。

miniubeのインストールは簡単そうなのですが、私が試したところ、それなりにはまりました。。。

あれこれ試行錯誤した結果、現状での私のお気に入りは、先に紹介したfabric8が提供するfabric8 maven pluginを利用したインストール方法です。こちらはJavaユーザ向きとは思いますが、Java8とMaven 3.3.9が入っていれば次の1コマンドでminikubeの環境が作れます。

mvn io.fabric8:fabric8-maven-plugin:3.2.7:cluster-start

(もう少し環境面を補足すると私の環境は、MacBook Air 11-inch, Mid 2012で、メモリは8G、brew installでxhyveを入れてあります)

この方法は次のエントリーで紹介されていて、空港のWifiを使って、陽気なおじさんがお酒を飲みながら、1コマンドでminikube環境を構築する様子を見ることができます :-)

おわりに

というわけで?、Kubernetesに関連する話題を、ぶらぶらと散歩しながら紹介してきました。ここから始まるアドベントカレンダーの記事でより多くのKubernetesに関する情報に触れることができると思いますので、書く人も、読む人も気軽に楽しんでもらえると嬉しいです。

また、12/3(土)に開催されるJJUG CCC 2016 FALLにて、「Spring Cloudアプリケーションの開発にDockerを活用し、Kubernetes上にデプロイするまで(#ccc_g6)」というタイトルで発表しますので、ぜひ興味のある方は聞きに来てください!イベントが終わったら、発表資料をこちらにも掲載しようと思います。

追記

発表してきました。Kubernetes アドベントカレンダーに参加してくださっている人にも会場で会えて、嬉しかったです。当日の資料はこちらです。合わせて見ていただけると嬉しいです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
16