Призначення Podʼів на вузли

Ця сторінка показує, як призначити Pod Kubernetes на певний вузол в кластері Kubernetes.

Перш ніж ви розпочнете

Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:

Для перевірки версії введіть kubectl version.

Додайте мітку до вузла

  1. Виведіть список вузлів у вашому кластері разом з їхніми мітками:

    kubectl get nodes --show-labels
    

    Вивід буде схожий на такий:

    NAME      STATUS    ROLES    AGE     VERSION        LABELS
    worker0   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker0
    worker1   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker1
    worker2   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker2
    
  2. Виберіть один з ваших вузлів і додайте до нього мітку:

    kubectl label nodes <your-node-name> disktype=ssd
    

    де <your-node-name> — це імʼя вашого обраного вузла.

  3. Перевірте, що ваш обраний вузол має мітку disktype=ssd:

    kubectl get nodes --show-labels
    

    Вивід буде схожий на такий:

    NAME      STATUS    ROLES    AGE     VERSION        LABELS
    worker0   Ready     <none>   1d      v1.13.0        ...,disktype=ssd,kubernetes.io/hostname=worker0
    worker1   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker1
    worker2   Ready     <none>   1d      v1.13.0        ...,kubernetes.io/hostname=worker2
    

    У попередньому виводі можна побачити, що вузол worker0 має мітку disktype=ssd.

Створіть Pod, який буде призначений на ваш обраний вузол

Цей файл конфігурації Podʼа описує Pod, який має селектор вузла disktype: ssd. Це означає, що Pod буде призначений на вузол, який має мітку disktype=ssd.

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disktype: ssd
  1. Використайте файл конфігурації, щоб створити Pod, який буде призначений на ваш обраний вузол:

    kubectl apply -f https://k8s.io/examples/pods/pod-nginx.yaml
    
  2. Перевірте, що Pod працює на вашому обраному вузлі:

    kubectl get pods --output=wide
    

    Вивід буде схожий на такий:

    NAME     READY     STATUS    RESTARTS   AGE    IP           NODE
    nginx    1/1       Running   0          13s    10.200.0.4   worker0
    

Створіть Pod, який буде призначений на конкретний вузол

Ви також можете призначити Pod на один конкретний вузол, встановивши nodeName.

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  nodeName: foo-node # призначення Podʼу конкретному вузлу
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent

Використовуйте файл конфігурації, щоб створити Pod, який буде призначений тільки на foo-node.

Що далі

Змінено August 10, 2024 at 8:09 PM PST: Local links were prefixed with "uk" (7d9a96f799)