Member-only story

KubernetesでのノードおよびPod Affinity/Anti-Affinityの実装:実用例

gavin.zhou
15 min readApr 30, 2020

--

先週のチュートリアルで、ノードとポッドのアフィニティ/アンチアフィニティの概念を紹介しました。 現実のシナリオを通して、このアイデアをさらに探求します。

Objective

4ノードのKubernetesクラスターに、MySQL、Redis、Python / Flask Webアプリの3つのマイクロサービスをデプロイします。 ノードの1つがSSDディスクに接続されているため、MySQL Podが同じノードでスケジュールされるようにします。 Redisを使用してデータベースクエリをキャッシュし、アプリケーションのパフォーマンスを加速します。

ただし、複数のPod of Redisを実行するノードはありません。 Redisはキャッシュとして使用されるため、ノードごとに複数のポッドを実行することは意味がありません。 次の目標は、WebポッドがRedisポッドと同じノードに配置されるようにすることです。 これにより、Webとキャッシュレイヤー間の低レイテンシーが保証されます。 Webポッドのレプリカの数をスケーリングしても、Redisポッドを持たないノードには配置されません。

Setting up a GKE Cluster and Adding an SSD Disk

GKEクラスターを起動し、SSD永続ディスクをいずれかのノードの一つに追加して、ノードにラベルを付けましょう。

gcloud container clusters create "tns" \--zone "asia-south1-a" \--username "admin" \--cluster-version "1.13.11-gke.14" \--machine-type "n1-standard-4" \--image-type "UBUNTU" \--disk-type "pd-ssd" \--disk-size "50" \--scopes

--

--

No responses yet