ワーカープールへのアプリケーションのデプロイ
Managed FKEはワーカープールを使用してワーカーを管理しており、ユーザーがリソースのスケーリングを意識せずにアプリケーションをデプロイできます。
アプリケーションデプロイ用マニフェストファイルの設定
例:2つのワーカープールを持つクラスターへのアプリケーションデプロイ:
各ワーカープールにはワーカーノードが1つあります:
ワーカーノードにはラベルが付与されており、ノードを区別し、共通ラベルを持つワーカーノードへのアプリケーションデプロイを容易にします:
worker-1zx5wqduワーカープールのワーカーノードには、worker.fptcloud/pool=worker-1zx5wqduというラベルが付与されています。
ワーカープール名は、ワーカープールの設定詳細をクリックすることでコピーできます:
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アプリケーションをデプロイする場合:
プール内のワーカーノードのリソース不足により、Podがpending状態になっている場合:
FPT Cloud管理側のCluster Autoscalerコンポーネントが、pending状態のnginx Podに対応するため、そのプールに追加のワーカーノードを自動的にスケールアウトします。
ワーカーノードがワーカープールに追加されると、それまでPending状態だったnginx PodがRunning状態に移行します。
アプリケーションをスケールダウンしてPod数を減らすと、ワーカーノードの利用可能リソースが増加します。CPUとメモリの使用率がノードの最大容量の50%を下回る状態が10分間連続した場合、そのノードは自動的にワーカープールから削除され、コストを節約できます。



