Kubernetesとは、コンテナの運用管理と自動化を目的に設計されたオープンソースのシステムです。
Kubernetesの複雑で難しいイメージを少しでも改善するために、この記事ではポイントを整理しました。KubernetesとDockerやコンテナとの関係、おもな仕組み、そしてインストール方法を中心にわかりやすく解説しています。

目次
Kubernetesとは?コンテナやDockerとの関係性

まずは、Kubernetesに理解にどうしても必要なキーワードをまとめています。
Kubernetesとは?
Kubernetesはクバネティス、またはクーベネティスなどと読みます。ギリシャ語で、操舵手 やパイロットという意味があるそうです。またK8sとも呼ばれています。公式サイトによれば、Kubernetesのスペルで、最初の「K」と最後の「s」の間にある「ubernete」の文字数が8あるため、「K」と「8」と「s」をつなげて「K8s」になっています。
Kubernetesにとって操作の対象は、Dockerなどのコンテナです。この対象が大きくなればなるほど、Kubernetesは威力を発揮します。Dockerなどが増えて、システム全体を効率良く管理したり、効果的に組み合わせたりする力は、Dockerには不足しているからです。
Kubernetesの登場により、複数のDockerなどのコンテナの管理や自動化が進み、この仕組みは「コンテナオーケストレーション」と呼ばれるようになりました。
コンテナ型の仮想化技術とは?
仮想化技術を支える手段には種類があります。具体的には、ハイパーバイザーやホスト型ともにコンテナ型が公開されています。コンテナの仮想化については、以下の記事にて詳しく解説しています。
【関連記事】

【入門】Dockerとは?概要やメリット、インストール方法をわかりやすく解説
Dockerは従来の仮想化にかわって、様々な開発環境で使われている技術です。非常に扱いやすく利便性の高い技術であることから、Dockerの利用は今後も広がっていくでしょう。 この記事ではDockerとは何かといった基本からメリット、インストール方法、基本的なコマンドまで解説しています。Dockerをこれから使い始めようと検討している方は、この記事を参考にして下さい。 Dockerとは?をわかりやす…
さらにコンテナにも種類があり、Dockerはその一つです。Kubernetesが対象としているコンテナは、このDockerが標準になっています。その主な理由には、Dockerの動作の速さや移動のしやすさなどの特徴があるからです。
KubernetesとDockerの違い
ここまでみてきたように、この2つは目的が異なります。実はDockerにも、複数のDocker自体の管理や自動化をする機能(Docker Swarm)があります。ただコンテナ間の設定や管理で、できないことがあります。小規模の場合は別途作業すればいいのですが、規模が大きくなるほど煩雑になります。
そこでKubernetesのような専用ツールによって、規模の大きいDockerの管理や自動化をするようになりました。
Kubernetesのメリット
Kubernetes利用による「コンテナオーケストレーション」で、複数のDockerを管理する手間が減り、コストを削減することができます。具体的にはこちらの情報にあるように、Kubernetesの利用により以下の課題を解決できるようになります。Docker自体では、実現がむずかしい項目ばかりです。
- 複数のDockerホストの管理
- コンテナのスケジューリング
- ローリングアップデート
- スケーリング / オートスケーリング
- コンテナの死活監視
- 障害時のセルフヒーリング
- サービスディスカバリ
- ロードバランシング
- データの管理
- ワークロードの管理
- ログの管理
- Infrastructure as Code
- その他エコシステムとの連携や拡張
【引用元】
なぜKubernetesが必要なのか?
Kubernetesの主な仕組み

次にKubernetesの構成を簡単にご説明します。それぞれの機能は複雑ですが、意味のあるものばかりです。繰り返しになりますが、目的は「コンテナオーケストレーション」です。
Kubernetes Cluster(クラスター)
一般的に、クラスターには「まとまり」という意味があります。IT分野では、コンピュータ・クラスターのように、複数台のコンピュータを結び付けまとめた仕組みを指しています。Kubernetesクラスターも同様で、公式サイトでは「単一のユニットとして機能するように接続された、可用性の高いコンピュータのクラスター」としています。
なお「可用性」とは、システムを継続して稼働させる考え方です。例えば、ひとつの機器が故障しても他の正常な機器に自動的に切り替わり、利用者には影響ができないようにするしくみです。
Kubernetesクラスターを作成するためには、Minikubeというツールを使用します。公式サイトでは、コマンド操作が体験できるデモ環境が用意されています。

namespace
公式サイトによれば、同一の物理クラスター上で動作する複数の仮想クラスターのことです。namespace(名前空間)は、比較的規模が大きい環境で導入が推奨されています。これにより、1つのKubernetesクラスターを複数チームで利用できるようになりました。具体的には、誰がどのような権限があるかを設定し、Kubernetesクラスターを分離しています。
pod
Kubernetesが管理できる最小単位で、Dockerなどのコンテナが 1つ以上含まれています。ポイントは、KubernetesがDockerなどのコンテナを直接管理しているのではなく、pod経由であることです。podにはIP アドレスが自動的に割り当てられ、コンテナ間で共有するストレージが含まれています。こちらも公式サイトに、コマンド操作でpodを体験できるデモ環境が用意されています。

Kubernetesの初期インストール

それでは実際にKubernetesをインストールしていきましょう。ここでは、Kubernetesクラスターを実行するkubeadmなどの基本的なインストール方法をご紹介します。
利用したVPSのプラン
検証用に、こちらのスペックにてVPSにセットアップします。
企業名 | カゴヤ・ジャパン |
---|---|
プラン名 | KAGOYA CLOUD VPS |
CPU | 3コア |
メモリー | 2GB |
ストレージ | SSD 30GB |
OSテンプレート | Ubuntu16.04(64bit) |
料金 | 日額 35円/、月額 979円 |
Dockerのインストール
まずは以下の記事などを参考に、Dockerをインストールします。
【関連記事】

【入門】Dockerとは?概要やメリット、インストール方法をわかりやすく解説
Dockerは従来の仮想化にかわって、様々な開発環境で使われている技術です。非常に扱いやすく利便性の高い技術であることから、Dockerの利用は今後も広がっていくでしょう。 この記事ではDockerとは何かといった基本からメリット、インストール方法、基本的なコマンドまで解説しています。Dockerをこれから使い始めようと検討している方は、この記事を参考にして下さい。 Dockerとは?をわかりやす…
Kubernetesのインストール
今回インストールするパッケージは以下の3つです。
kubeadm | Kubernetesのクラスターを簡単に操作するツール |
---|---|
kubelet | Kubernetesの主要なパッケージ |
kubectl | Kubernetesクラスターを管理するためのコマンド |
公式ページにそって、前準備をしたうえで以下のコマンドを順次実行していきます。rootでの操作が推奨されています。
【コマンド】(Ubuntuの場合)
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add –
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
初期インストール後について
Kubernetesには多くの機能があるため、優先度に応じて高度な設定をしてから利用していきます。進め方には以下の選択肢から、より適した方法を選ぶ必要があると考えます。
- 公式ページのドキュメントなどを参考に進めていく(かなりの量あり)
- Googgle CloudやAzureなどのサービスを試用してから、正式に申し込む(設定の時間を短縮)
- cloud tap の「コンテナサービス」ですぐに始める
まとめ
ここまでいかがでしたか。Kubernetesについて概要をご理解いただけたかと思います。あとは、ご利用の目的や規模に合う設定に移ります。Kubernetesの本来の目的と機能であるDocker管理をさらに効率よく進めるため、「Rancher」を導入したサービスの利用がおすすめです。
カゴヤ・ジャパンの cloud tap コンテナサービスでは、Kubernetesと「Rancher」 が構築済で、すぐに Docker 環境が使えるようになっています。経営資源の有効配分と優先度により、ご検討されてみてはいかがでしょうか。
【参考サイト】
コンテナサービス
コンテナ管理をこれから始めたいお客様に最適な、RancherでKubernetesを簡単に管理できるコンテナサービスと、サーバースペック 95パターン+ディスク容量 10パターンから選択できるクラウドサーバーを提供する国産クラウドプラットフォームです。