メインコンテンツまでスキップ

ワーカープールへのアプリケーションのデプロイ

Managed FKEはワーカープールを使用してワーカーを管理しており、ユーザーがリソースのスケーリングを意識せずにアプリケーションをデプロイできます。

アプリケーションデプロイ用マニフェストファイルの設定

例:2つのワーカープールを持つクラスターへのアプリケーションデプロイ:

Userguide M FKE 30

各ワーカープールにはワーカーノードが1つあります:

Userguide M FKE 31

ワーカーノードにはラベルが付与されており、ノードを区別し、共通ラベルを持つワーカーノードへのアプリケーションデプロイを容易にします:

Userguide M FKE 32

worker-1zx5wqduワーカープールのワーカーノードには、worker.fptcloud/pool=worker-1zx5wqduというラベルが付与されています。

ワーカープール名は、ワーカープールの設定詳細をクリックすることでコピーできます:

Userguide M FKE 33

Kubernetes(Pod、Deployment、StatefulSet、DaemonSet、ReplicaSet)でアプリケーションをデプロイする際、設定ファイルのSpecセクションにNode Affinity RuleまたはNode Selectorを追加できます:

Node Affinity Ruleを使用する場合:

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-test
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
resources:
requests:
memory: "700Mi"
cpu: "800m"
limits:
memory: "900Mi"
cpu: "900m"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: worker.fptcloud/pool
operator: In
values:
- worker-1zx5wqdu

Node Selectorを使用する場合:

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-test
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
resources:
requests:
memory: "700Mi"
cpu: "800m"
limits:
memory: "900Mi"
cpu: "900m"
nodeSelector:
worker.fptcloud/pool: worker-1zx5wqdu

valuesセクション(Node Affinity Rule)およびnodeSelectorの値は、アプリケーションをデプロイするワーカープール名を指定します。

アプリケーションのデプロイ

マニフェストファイルを使用してnginxアプリケーションをデプロイする場合:

Userguide M FKE 36

プール内のワーカーノードのリソース不足により、Podがpending状態になっている場合:

Userguide M FKE 37

FPT Cloud管理側のCluster Autoscalerコンポーネントが、pending状態のnginx Podに対応するため、そのプールに追加のワーカーノードを自動的にスケールアウトします。

Userguide M FKE 38

ワーカーノードがワーカープールに追加されると、それまでPending状態だったnginx PodがRunning状態に移行します。

アプリケーションをスケールダウンしてPod数を減らすと、ワーカーノードの利用可能リソースが増加します。CPUとメモリの使用率がノードの最大容量の50%を下回る状態が10分間連続した場合、そのノードは自動的にワーカープールから削除され、コストを節約できます。