Skip to main content
  1. Posts/

Deploy Pod ke Node Tertentu

·2 mins·
kubernetes kubernetes
Table of Contents

Panduan ini akan membahas cara membuat pod ke node tertentu di cluster kubernetes. Selain mambuat, Anda juga dapat memindahkan pod yang sudah ada ke node tertentu dengan cara yang sama.

Assign to Node by label
#

List node yang ada di cluster beserta labelnya.

kubectl get node --show-labels
NAME   STATUS   ROLES           AGE   VERSION   LABELS
man    Ready    control-plane   34h   v1.27.3   kubernetes.io/hostname=man
w1     Ready    <none>          23h   v1.27.3   kubernetes.io/hostname=w1
w2     Ready    <none>          23h   v1.27.3   kubernetes.io/hostname=w2

Tambahkan label pada salah satu node worker.

kubectl label nodes w2 disktype=ssd

Cek kembali node beserta labelnya.

# kubectl get node --show-labels
NAME   STATUS   ROLES           AGE   VERSION   LABELS
man    Ready    control-plane   34h   v1.27.3   kubernetes.io/hostname=man
w1     Ready    <none>          24h   v1.27.3   kubernetes.io/hostname=w1
w2     Ready    <none>          23h   v1.27.3   disktype=ssd,kubernetes.io/hostname=w2

Buat konfig deployment nginx.yaml dengan menambahkan label pada bagian nodeSelector.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: site
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginxdemos/hello
        imagePullPolicy: Always
        name: hello
      restartPolicy: Always
      nodeSelector:
        disktype: ssd

Deploy pod.

kubectl apply -f nginx.yaml

Verifikasi pod sudah berjalan pada node yang Anda pilih.

kubectl get pods -n site \
-o custom-columns=NAMA:.metadata.name,NODE:spec.nodeName
NAMA                   NODE
nginx                  w2

Untuk memindahkan pod, Anda dapat mengedit konfigurasi dengan perintah.

kubectl edit -n site pods/nginx
...
  nodeSelector:
    kubernetes.io/hostname: w1
...

Assign to Node by nodeName
#

Untuk men-deploy atau memindahkan pod pada node tertentu dapat juga Anda lakukan dengan menambahkan nodeName.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: site
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginxdemos/hello
        imagePullPolicy: Always
        name: hello
      restartPolicy: Always
      nodeName: w2

Related

Kubectl Cheat Sheet
·14 mins
kubernetes kubernetes
Kubernetes Internal Errors: Failed Calling Webhook
·1 min
kubernetes kubernetes
Setup Kubernetes Cluster dengan Kubeadm dan cri-dockerd
·6 mins
kubernetes docker kubernetes
Setup Kubernetes Cluster dengan Kubeadm dan cri-o
·6 mins
kubernetes kubernetes crio
Setup Nginx Ingress Controller On Kubernetes
·2 mins
kubernetes kubernetes
Cara Menambahkan Command atau Biner ke CageFS
·1 min
cpanel cpanel cagefs