Docker管理ツール、Kubernetes、etcd、flannel、cAdvisorの概要とインストール、基本的な使い方:Docker運用管理製品/サービス大全(3)(6/6 ページ)
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、グーグルが主導で開発しているOSSであるKubernetes、flannel、cAdvisorの概要や主な機能、環境構築方法、使い方について。
Pod内のコンテナーで共有される情報について調査
Pod内のコンテナーで共有される情報にはIPやストレージがありますが、下記yamlファイルでPodを作成し検証しました。
apiVersion: v1beta3 kind: Pod metadata: labels: name: redis redis-sentinel: ""true"" role: master name: redis-master spec: containers: - name: master image: kubernetes/redis:v1 env: - name: MASTER value: ""true"" ports: - containerPort: 6379 resources: limits: cpu: ""1"" volumeMounts: - mountPath: /redis-master-data-1 name: data - name: sentinel image: kubernetes/redis:v1 env: - name: SENTINEL value: ""true"" ports: - containerPort: 26379 volumeMounts: - mountPath: /redis-master-data-2 name: data volumes: - name: data emptyDir: {}
このyamlファイルでPodを作成すると内部的にはコンテナーが3つ作成されます。そして、「22d8f822d44f」のコンテナーのみが「eth0」を持ち、他2つのコンテナーはこのeth0を共有する形で外部と通信します。
[root@ip-kubernetes]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES eed1da6d179f kubernetes/redis:v1 "sh -c /run.sh" 2 minutes ago Up 2 minutes k8s_sentinel.62d3959a_redis-master_default_e43859f1-05e6-11e5-9d75-0a30794a454d_6d5d5dff 11441ec66ee9 kubernetes/redis:v1 "sh -c /run.sh" 2 minutes ago Up 2 minutes k8s_master.d16ec183_redis-master_default_e43859f1-05e6-11e5-9d75-0a30794a454d_3753e6d4 22d8f822d44f gcr.io/google_containers/pause:0.8.0 "/pause" 2 minutes ago Up 2 minutes k8s_POD.39750b55_redis-master_default_e43859f1-05e6-11e5-9d75-0a30794a454d_af6f0593 [root@ip-kubernetes]# docker inspect --format '{{ .NetworkSettings.IPAddress }}' eed1da6d179f [root@ip-kubernetes]# docker inspect --format '{{ .NetworkSettings.IPAddress }}' 11441ec66ee9 [root@ip-kubernetes]# docker inspect --format '{{ .NetworkSettings.IPAddress }}' 22d8f822d44f 172.17.0.3 [root@ip-kubernetes]# curl http://172.17.0.3:6379 -ERR wrong number of arguments for 'get' command -ERR unknown command 'User-Agent:' -ERR unknown command 'Host:' -ERR unknown command 'Accept:' ^C [root@ip-kubernetes]# curl http://172.17.0.3:26379 -ERR unknown command 'GET' -ERR unknown command 'User-Agent:' -ERR unknown command 'Host:' -ERR unknown command 'Accept:' c^H^C
次に、ストレージの共有を確認しました。ストレージの共有は「volumeMounts:/volumes」オプションを設定することによって行われ、ホストのディスクスペースを使ってデータの共有を行います。
[root@ip-kubernetes]# docker exec -it eed1da6d179f bash root@redis-master:/data# ls /redis-master-data-1/ appendonly.aof root@redis-master:/data# echo "aaa" > /redis-master-data-1/201505291845.txt root@redis-master:/data# cat /redis-master-data-1/201505291845.txt aaa [root@ip-kubernetes]# docker exec -it 11441ec66ee9 bash root@redis-master:/data# echo "bbb" > /redis-master-data-2/201505291845.txt root@redis-master:/data# cat /redis-master-data-2/201505291845.txt bbb
共有のディスクスペースにあるファイルは双方のコンテナーから書き込みが可能です。また、双方のコンテナーからwhile文でテキストに大量の文字列を書き込んでみましたが、文字が混ざることなく排他的に書き込みが行われていました。
Kubernetes 1.0での変更点
今回は、グーグルが開発するOSSの運用管理ツールを紹介しましたが、いかがでしたでしょうか。記事では基本的にKubernetes 0.17についての情報を扱いましたが、2015年7月21日にリリースされたKubernetes 1.0では、flannelがコンテナーでインストールされているようになるなど、設定が簡単になりました。また、監視機能に「Prometheus」が追加されています。
次回は、Kubernetesの管理サービスGoogle Container Engine(GKE)について解説します。
筆者紹介
澤井健
富山県出身。株式会社NTTデータに入社後、PostgresForestやHinemosの開発、保守、導入支援に携わり、今はHinemosのクラウドへの普及展開を進めている。休日は仕事を離れ、宝塚観劇のため日比谷や兵庫に訪れるなど趣味を満喫している。
- 執筆履歴
Software Design plusシリーズ『Hinemos 統合管理[実践]入門』(共著:技術評論社)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
2014年から急速に注目度が増しているコンテナー型仮想化技術「Docker」。すでに多くのLinuxで利用可能な技術ですが、次期Windows Serverでもサポートされる予定です。Dockerとはどのようなものなのか、一度、実際に触って体験してみてはいかがでしょうか。 - Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
本連載第31回は「Azureで始めるDocker入門」を掲載しました。掲載後、すぐに「Docker 1.6」がリリースされたので、意図したわけではありませんが、タイムリーな記事になったと思います。今回は、その記事でも紹介した「Docker Client for Windows」をフォローアップします。 - Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
CoreOSがDocker代替のシンプルなコンテナーランタイムを公開。Dockerの当初の目的であるシンプルなコンテナーを目指すプロトタイプだ。 - Docker、そしてCloud FoundryとPaaSの価値とは
Docker人気を踏まえたとき、Cloud Foundryはどのように位置付けられるのか。PaaSの最終的な価値とは何なのか。AWSとの競合とは。Cloud Foundryの責任者である米PivotalのJames Watters氏に聞いた。 - レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
レッドハットが2015年7月22日に国内発表したPaaS製品「OpenShift Enterprise 3」の最大の狙いは、Dockerを知らなくてもアプリケーションの開発・運用ができるようにすることだという。ここでは、レッドハットの日本法人の説明に基づき、OpenShift Enterprise 3を紹介する。 - 米グーグルのDockerコンテナ管理サービスが一般提供開始
米グーグルがGoogle Cloud Platform上で提供しているDockerコンテナオーケストレーション/管理サービス、Google Container Engineが2015年8月26日、ベータ段階を終了、一般提供が開始された。毎週20億以上のコンテナを立ち上げているグーグルの経験に基づくサービスだとしている。