Призначення Podʼів на вузли
Ця сторінка показує, як призначити Pod Kubernetes на певний вузол в кластері Kubernetes.
Перш ніж ви розпочнете
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:
Для перевірки версії введітьkubectl version
.Додайте мітку до вузла
Виведіть список вузлів у вашому кластері разом з їхніми мітками:
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
Виберіть один з ваших вузлів і додайте до нього мітку:
kubectl label nodes <your-node-name> disktype=ssd
де
<your-node-name>
— це імʼя вашого обраного вузла.Перевірте, що ваш обраний вузол має мітку
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
Використайте файл конфігурації, щоб створити Pod, який буде призначений на ваш обраний вузол:
kubectl apply -f https://k8s.io/examples/pods/pod-nginx.yaml
Перевірте, що 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
.
Що далі
- Дізнайтеся більше про мітки та селектори.
- Дізнайтеся більше про вузли.