GKEクラスタを作成するときに--no-enable-cloud-loggingオプションが使えなくなったっぽい
前提
自分は格安でGKEを使うために、g1-smallで運用している
GKEでデフォルトのクラスタを作成すると、ログ転送用にfluentdなどのPodが立ち上がってしまう。
このうちfluentdが結構なCPUとMemoryを使用してしまうので、自分は以下にあるような方法で
--no-enable-cloud-logging
を指定することでfluentdを動かないようにさせていた。
Fluentd を使用した Google Kubernetes Engine 用の Cloud Logging ログのカスタマイズ
gcloud beta container clusters create gke-with-custom-fluentd \ --zone us-east1-b \ --no-enable-cloud-logging \ --tags=gke-cluster-with-customized-fluentd \ --scopes=logging-write
これでクラスタを作成すると、以下のようなWarningは出るものの、これまでなんとか使えていた
WARNING: From 1.14, legacy Stackdriver GKE logging is deprecated. Thus, flag `--enable-cloud-logging` is also deprecated. Please use `--enable-stackdriver-kubernetes` instead, to migrate to new Stackdriver Kubernetes Engine monitoring and logging. For more details, please read: https://cloud.google.com/monitoring/kubernetes-engine/migration.
起きたこと
これまではWarningだったけど、ついに完全に使えなくなったっぽい
$gcloud --quiet container clusters create $CLUSTER_NAME \ > --machine-type=$MACHINE_TYPE --disk-size 10 --zone $COMPUTE_ZONE \ > --no-enable-cloud-logging \ > --num-nodes=$NUM_NODES --preemptible WARNING: From 1.14, legacy Stackdriver GKE logging is deprecated. Thus, flag `--enable-cloud-logging` is also deprecated. Please use `--enable-stackdriver-kubernetes` instead, to migrate to new Stackdriver Kubernetes Engine monitoring and logging. For more details, please read: https://cloud.google.com/monitoring/kubernetes-engine/migration. WARNING: Currently VPC-native is not the default mode during cluster creation. In the future, this will become the default mode and can be disabled using `--no-enable-ip-alias` flag. Use `--[no-]enable-ip-alias` flag to suppress this warning. WARNING: Newly created clusters and node-pools will have node auto-upgrade enabled by default. This can be disabled using the `--no-enable-autoupgrade` flag. WARNING: Starting with version 1.18, clusters will have shielded GKE nodes by default. WARNING: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s). This will enable the autorepair feature for nodes. Please see https://cloud.google.com/kubernetes-engine/docs/node-auto-repair for more information on node autorepairs. ERROR: (gcloud.container.clusters.create) ResponseError: code=400, message=Legacy monitoring is not supported in clusters running Kubernetes 1.15 or above.
やったこと
Logging Using Stackdriver | Kubernetes
を参考に
$ kubectl label node <ノード> beta.kubernetes.io/fluentd-ds-ready=false --overwrite
を実行すると、各ノードのfluentd daemonsetが起動しなくなるので試しにこれをやってみた
- 起動後に上書きするためにはoverwriteが必要だった
node名は以下で取得できる
kubectl get nodes
最初からKubernetesのYamlファイルとして定義してデプロイ時に指定してもよさそう。