Kubernetes · 2 min read · Dec 14, 2025

Статические поды в Kubernetes

Статические поды управляются непосредственно kubelet, и API сервер не имеет контроля над этими подами. Kubelet отвечает за наблюдение за каждым статическим подом и перезапускает его в случае сбоя. Статические поды, работающие на узле, видны на API сервере, но не могут контролироваться API сервером. Статический под не имеет связанного контроллера репликации, сам сервис kubelet наблюдает за ним и перезапускает его, когда он выходит из строя. Для статических подов нет проверки состояния. Процесс kubelet наблюдает за определенной директорией, предназначенной для статических подов.

Чтобы узнать больше о статических подах, посетите официальную страницу Kubernetes здесь.

В этой статье мы рассмотрим шаги по созданию статического пода из файла, сохраненного в стандартном месте, откуда kubelet считывает манифесты, а также изменим стандартное местоположение на другую директорию и создадим статический под оттуда. Мы создадим статические поды на рабочем узле.

Предварительные требования

  1. Кластер Kubernetes с как минимум 1 рабочим узлом.
    Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Этот гид поможет вам создать кластер Kubernetes с 1 мастером и 2 узлами на AWS Ubuntu 18.04 EC2 Instances.

Что мы будем делать?

  1. Создать статические поды

Создание статических подов

Выполните следующие команды с мастер-узла, чтобы получить информацию о узлах и подах в кластере.

$master kubectl  get nodes
$master kubectl  get pods

get-all-pods

Вы можете проверить контейнеры, работающие в рамках подов

$worker docker ps
$worker docker ps -a

Теперь войдите на рабочий узел и создайте новый файл со следующим содержимым в стандартном пути манифестов статических подов.

$worker vim /etc/kubernetes/manifests/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

static-pod-definition-at-default-location

Как только вы создаете определение пода в стандартном месте манифестов статических подов, под создается, который не контролируется API сервером.

Вы можете проверить вновь созданный под с помощью следующей команды, чтобы перечислить поды из всех пространств имен с мастер-узла.

$master kubectl  get pods
$master kubectl  get pods --all-namespaces

static-pod-created

Чтобы проверить контейнеры, созданные в рамках пода, выполните следующую команду на рабочем узле

$worker docker ps
$worker docker ps -a

Мы также можем изменить стандартное местоположение, откуда kubelet считывает манифесты.

Теперь создайте новую папку, где мы хотели бы хранить манифесты статических подов.

Здесь мы создаем “/etc/kubelet.d/“.

$worker mkdir -p /etc/kubelet.d/

Создайте файл определения пода в директории, которую мы создали.

$worker vim /etc/kubelet.d/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: static-web-2
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

Чтобы изменить стандартный путь, откуда Kubelet считывает манифесты статических подов, отредактируйте файл /var/lib/kubelet/config.yaml и измените значение “staticPodPath” на “staticPodPath=/etc/kubelet.d”.

change-static-pod-path

После того как конфигурация будет установлена, перезапустите службу Kubelet

$worker systemctl restart kubelet

Как только служба будет перезапущена, Kubelet обнаружит новое местоположение и будет считывать манифесты из этого местоположения и создавать поды.

Проверьте, был ли создан под или нет.

$master kubectl  get pods

Проверьте контейнер, созданный в рамках пода на рабочем узле, используя следующую команду.

$worker docker ps

Заключение

В этой статье мы рассмотрели шаги по созданию статических подов, а также изменения конфигурации, необходимые в Kubelet для изменения стандартной директории для манифестов статических подов.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.