GKEでクラスター環境を構築すると自動的にNodeにFluentdのコンテナーがセットアップされます(/etc/kubernetes/manifests/配下にFluentdのマニフェストファイルがあります)。このFluentdによってDockerコンテナーのログなどが取得できます。
Fluentdコンテナー内の「/etc/google-fluentd/google-fluentd.conf」にデフォルトで取得するログの設定があります。
下図は「docker logs」コマンドで取得したログと、Fluentdで取得したログです。
「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で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の自動アップデートが可能です。このコマンドも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.