Kubernetes管理サービスGoogle Container Engine、Google Container Registryの概要と使い方、Fluentdによるログ監視Docker運用管理製品/サービス大全(4)(4/5 ページ)

» 2015年10月30日 05時00分 公開
[澤井健株式会社NTTデータ]

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で取得したログです。

「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 
コマンド実行中のPod一覧
# 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
コマンド実行後のPod一覧

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。