Kubernetes管理サービスGoogle Container Engine、Google Container Registryの概要と使い方、Fluentdによるログ監視:Docker運用管理製品/サービス大全(4)(4/5 ページ)
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、Google Cloud Platformで動くKubernetesの管理サービスであるGKEや、グーグル独自のDockerリポジトリであるGoogle Container Registryの概要や主な機能、環境構築方法、使い方について。
FluentdによるDockerコンテナーログの監視
GKEでクラスター環境を構築すると自動的にNodeにFluentdのコンテナーがセットアップされます(/etc/kubernetes/manifests/配下にFluentdのマニフェストファイルがあります)。このFluentdによってDockerコンテナーのログなどが取得できます。
Fluentdコンテナー内の「/etc/google-fluentd/google-fluentd.conf」にデフォルトで取得するログの設定があります。
- /var/log/containers/*.log:Dockerコンテナーのログ
- /var/log/kubelet.log:kubeletのログ
下図は「docker logs」コマンドで取得したログと、Fluentdで取得したログです。
gcr.io/google_containers/pause:0.8.0コンテナー
「docker ps | grep fluentd」コマンドで出力された「gcr.io/google_containers/pause:0.8.0」コンテナーについて調べました(参考)。
これはFluentd特有のコンテナーではなく、Pod内のコンテナーがネットワークを利用するために作成するコンテナーです。Podを作成すると、このコンテナーが作成され、ネットワークインターフェースは、このコンテナーが持つ形になります。
前回記事の「Pod内のコンテナーで共有される情報について調査」の「22d8f822d44f」のコンテナーが、こちらに該当いたします。
efa846246329 gcr.io/google_containers/fluentd-gcp:1.5 "\"/bin/sh -c '/usr/ 7 days ago Up 7 days k8s_fluentd-cloud-logging.6e929303_fluentd-cloud-logging-k8s-cluster-1-node-1_default_e7a73ce4931dc175ddc463501188a765_4032dc70 863f058e21a8 gcr.io/google_containers/pause:0.8.0 "/pause" 7 days ago Up 7 days k8s_POD.e4cc795_fluentd-cloud-logging-k8s-cluster-1-node-1_default_e7a73ce4931dc175ddc463501188a765_9ea9f6a0
GKEのスケーリング機能の使い方
GKEでPodの数を増減させる手順
GKEでPodの数をスケーリングさせるには、コマンドから実行する必要があります。GUIからは実行できません。そのため、Google Cloud SDKを実行できる環境が必要になります。Google Cloud SDKを実行できる環境で「kubectl resize」コマンドを実行します。
kubectl resize --replicas=<レプリカ数> rc <Replication Controller名>
ここでは、Nodeを3つ持っているGuestbookサンプルのレプリカ数を2から5に変更しました。
kubectl resize --replicas=5 rc guestbook-controller guestbook-controller-5gmyw <IP> k8s-guestbook-node-1/<IP> name=guestbook Running About an hour php-redis brendanburns/php-redis Running About an hour guestbook-controller-6ccpe <IP> k8s-guestbook-node-1/<IP> name=guestbook Running 4 seconds php-redis brendanburns/php-redis Running 3 seconds guestbook-controller-6kddh <IP> k8s-guestbook-node-2/<IP> name=guestbook Running 4 seconds php-redis brendanburns/php-redis Running 3 seconds guestbook-controller-g3o65 <IP> k8s-guestbook-node-3/<IP> name=guestbook Running About an hour php-redis brendanburns/php-redis Running About an hour guestbook-controller-ik7ro <IP> k8s-guestbook-node-2/<IP> name=guestbook Running 4 seconds php-redis brendanburns/php-redis Running 3 seconds
GKEでPodのImageを自動アップデートする方法
GKEでは、コマンドでPodのImageの自動アップデートが可能です。このコマンドもGUIからは実行できません。下記のコマンドを実行すると徐々にPodが新しいイメージに入れ替わっていきます。
gcloud alpha container kubectl --cluster <Cluster名> rollingupdate <Replication Contoroller名> --image=<新しいイメージ名> gcloud alpha container kubectl --cluster <Cluster名> rollingupdate <Replication Contoroller名> -f <Replication Contorollerファイル>
下記は実行例です。
# gcloud alpha container kubectl --cluster guestbook rollingupdate guestbook-controller --image=brendanburns/redis-slave WARNING: This command is deprecated. Use kubectl directly with the cluster. kubectl config use-context gke_containertest20150522_asia-east1-b_guestbook kubectl rollingupdate guestbook-controller --image=brendanburns/redis-slave Creating guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 At beginning of loop: guestbook-controller replicas: 2, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 1 Updating guestbook-controller replicas: 2, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 1 At end of loop: guestbook-controller replicas: 2, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 1 At beginning of loop: guestbook-controller replicas: 1, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 2 Updating guestbook-controller replicas: 1, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 2 At end of loop: guestbook-controller replicas: 1, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 2 At beginning of loop: guestbook-controller replicas: 0, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 3 Updating guestbook-controller replicas: 0, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 3 At end of loop: guestbook-controller replicas: 0, guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 replicas: 3 Update succeeded. Deleting old controller: guestbook-controller Renaming guestbook-controller-bb92f86361aa667617bfd5bae6cb5973 to guestbook-controller guestbook-controller
# kubectl get pod | grep php php-redis brendanburns/php-redis Running 3 hours php-redis brendanburns/redis-slave php-redis brendanburns/php-redis Running 3 hours php-redis brendanburns/php-redis Running 3 hours
# kubectl get pod | grep php php-redis brendanburns/redis-slave Running 7 minutes php-redis brendanburns/redis-slave Running 7 minutes php-redis brendanburns/redis-slave Running 8 minutes
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億以上のコンテナを立ち上げているグーグルの経験に基づくサービスだとしている。