1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ASK で Pod を動かす Node を明示的に設定する

Posted at

前回までの記事で、ACR/AKS デプロイ、リソースの作成、アプリケーションの実行、Pods への Label の割り当てを行いました。基本的に Pods の作成は マニフェストファイルの適用で実施しますが、実際に AKS アプリケーションをデプロイしていくと、Pod を動かす Node を明示的に設定するということが必要です。今回の記事は、その方法を見ていきます。

#クラスター内の Node を確認する
まずは、kubectl get node コマンドを実行して、現在動いている Node を確認します。

$ kubectl get node
NAME                                STATUS   ROLES   AGE   VERSION
aks-nodepool1-XXXXXXXX-vmss000000   Ready    agent   44h   v1.13.12
aks-nodepool1-XXXXXXXX-vmss000001   Ready    agent   44h   v1.13.12
aks-nodepool1-XXXXXXXX-vmss000002   Ready    agent   44h   v1.13.12

上記のコマンドを実行した際に、NAME の列に表示されているものが、Node の名前です。今回は明示的に aks-nodepool1-XXXXXXXX-vmss000002 に Pod を作成したいと思います。

#Node にラベルを割り当てる
kubectl label node aks-nodepool1-XXXXXXXX-vmss000002 server=webapp を実行して、一台の Node にラベルを割り振ります。上記コマンドを実行したあとに、kubectl get node --show-labels を実行することで、Node に割り振られている Label を確認することが可能です。

$ kubectl get node --show-labels
NAME                                STATUS   ROLES   AGE   VERSION    LABELS
aks-nodepool1-20426113-vmss000000   Ready    agent   44h   v1.13.12   XXXXXXXXXXXXXXXXXX
aks-nodepool1-20426113-vmss000001   Ready    agent   44h   v1.13.12   XXXXXXXXXXXXXXXXXX
aks-nodepool1-20426113-vmss000002   Ready    agent   44h   v1.13.12   XXXXXXXXXXXXXX,server=webapp,XXXXXXX

これで Node 側の準備は整いました。あとはマニュフェストファイルを編集して、指定したラベルが張られている Node に Pods を作成します。

#指定したラベルの付いた Node に Pod を作成する
まずは、マニフェストファイルを編集します。Pods を起動する node は spec:nodeSelector:server の部分で設定します。今回は webapp というラベルをしています。

labelsample.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: stage

spec:
  containers:
  - name: nginx
    image: nginx
  nodeSelector:
    server: webapp  # webappというラベルの付いた Node に割り当てる

上記マニュフェスファイルを作成したら、kubectl apply -f labelsample.yaml を実行し、 Pod を作成します。実行後、kubectl get pod --output=wide で実行されている Pod を確認します。

$ kubectl get pods -o=wide
NAME    READY   STATUS    RESTARTS   AGE     IP            NODE                                NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          3m48s   XX.XXX.X.XX   aks-nodepool1-XXXXXXXX-vmss000002   <none>           <none>

これで指定した Node に Pod が割り振られているのが確認できました。
次回はより深いところで、Pod に必要なメモリ / CPU を割り当てる方法についてみていきたいと思います。

#参考 URL
Assigning Pods to Nodes
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?