Рейтинг:0

Pod в ReplicaSet готов только 1

флаг id

Я использую K3S (Debian 10) и я супер нуб для kuber.

Вот проблема:

server:~# kubectl получить модуль 
ИМЯ ГОТОВ СТАТУС ПЕРЕЗАПУСКА ВОЗРАСТ
vlmcsd-server-q4vfv 1/1 Работает 0 15м
vlmcsd-server-b6qmk 0/1 Ожидание 0 3 с
vlmcsd-server-tvsnr 0/1 Ожидание 0 3 с
vlmcsd-server-lg6gw 0/1 Ожидание 0 3 с

Вот k8file:

apiVersion: приложения/v1
вид: набор реплик
метаданные:
  имя: vlmcsd-сервер
спецификация:
  реплики: 4
  селектор:
    метки соответствия:
      роль: сервер

  шаблон:
    метаданные:
      этикетки:
        роль: сервер
    спецификация:
      контейнеры:
      - имя: vlmcsd-1
        изображение: mikolatero/vlmcsd
        порты:
          - имя: сервис-vlmcsd
            контейнерПорт: 1688
            порт хоста: 1688
            протокол: TCP  

Итак, почему только один модуль ГОТОВ? Насколько я понимаю, конфликт портов? И это значит имя порта containerPort hostPort прямое сопоставление портов, а не SLB или что-то в этом роде?

Если это конфликт портов, какую сеть мне следует использовать?

server:~# kubectl описать pod/vlmcsd-server-q4vfv
Имя: vlmcsd-сервер-q4vfv
Пространство имен: по умолчанию
Приоритет: 0
Узел: tower.rczhiyun.local/10.188.180.251
Время начала: Пт, 06 Авг 2021 14:50:44 +0800
Метки: роль=сервер
Аннотации: <нет>
Статус: Работает
IP: 10.42.0.21
IP-адреса:
  IP: 10.42.0.21
Контролируется: ReplicaSet/vlmcsd-сервер
Контейнеры:
  vlmcsd-1:
    Идентификатор контейнера: containerd://f45628cff396ae95a0678c4c5d8160ef83e068f5fbdf2b76f7528404644e588a
    Изображение: Миколатеро/vlmcsd
    Идентификатор изображения: docker.io/mikolatero/vlmcsd@sha256:d4eb626c762780fa37ecdb4e3efabb666b7dbf8355dfebc874e21ba780e3803c
    Порт: 1688/TCP
    Хост-порт: 1688/TCP
    Состояние: работает
      Начато: Пт, 06 Авг 2021 14:50:47 +0800
    Готово: Верно
    Количество перезапусков: 0
    Среда: <нет>
    Маунты:
      /var/run/secrets/kubernetes.io/serviceaccount из kube-api-access-n77c5 (ro)
Условия:
  Тип Статус
  Инициализировано Истинно 
  Готов Верно 
  ContainersReady True 
  PodScheduled True 
Объемы:
  куб-апи-доступ-n77c5:
    Тип: спроецированный (том, который содержит внедренные данные из нескольких источников)
    TokenExpirationSeconds: 3607
    ConfigMapName: kube-root-ca.crt
    ConfigMapOptional: <ноль>
    Нисходящий API: правда
Класс QoS: BestEffort
Селекторы узлов: <нет>
Допуски: node.kubernetes.io/not-ready:NoExecute op=Существует в течение 300 с.
                             node.kubernetes.io/unreachable:NoExecute op=Существует 300 с.
События:
  Тип Причина Возраст от сообщения
  ---- ------ ---- ---- -------
  Предупреждение FailedScheduling Доступно 21 млн узлов планировщика по умолчанию 0/1: 1 узел (узлы) не имеет свободных портов для запрошенных портов модуля.
  Предупреждение FailedScheduling Доступно 21 млн узлов планировщика по умолчанию 0/1: 1 узел (узлы) не имеет свободных портов для запрошенных портов модуля.
  Обычный Запланировано 21 м. default-scheduler Успешно назначено значение default/vlmcsd-server-q4vfv для Tower.rczhiyun.local
  Обычный Pulling 21m kubelet Pulling image "mikolatero/vlmcsd"
  Обычный Получено 21 м kubelet Успешно получено изображение "mikolatero/vlmcsd" за 2.377603969 сек.
  Обычный Создан 21-метровый кублет Создан контейнер vlmcsd-1
  Обычный Запущен 21m kubelet Запущен контейнер vlmcsd-1
server:~# kubectl описать pod/vlmcsd-server-b6qmk
Имя: vlmcsd-сервер-b6qmk
Пространство имен: по умолчанию
Приоритет: 0
Узел: <нет>
Метки: роль=сервер
Аннотации: <нет>
Статус: ожидание
IP:             
IP-адреса: <нет>
Контролируется: ReplicaSet/vlmcsd-сервер
Контейнеры:
  vlmcsd-1:
    Изображение: Миколатеро/vlmcsd
    Порт: 1688/TCP
    Хост-порт: 1688/TCP
    Среда: <нет>
    Маунты:
      /var/run/secrets/kubernetes.io/serviceaccount из kube-api-access-ztdjn (ro)
Условия:
  Тип Статус
  PodScheduled False 
Объемы:
  куб-апи-доступ-ztdjn:
    Тип: спроецированный (том, который содержит внедренные данные из нескольких источников)
    TokenExpirationSeconds: 3607
    ConfigMapName: kube-root-ca.crt
    ConfigMapOptional: <ноль>
    Нисходящий API: правда
Класс QoS: BestEffort
Селекторы узлов: <нет>
Допуски: node.kubernetes.io/not-ready:NoExecute op=Существует в течение 300 с.
                             node.kubernetes.io/unreachable:NoExecute op=Существует 300 с.
События:
  Тип Причина Возраст от сообщения
  ---- ------ ---- ---- -------
  Предупреждение FailedScheduling 6m22s default-scheduler 0/1 узлов доступны: 1 узел (узлы) не имеет свободных портов для запрошенных портов pod.
  Предупреждение FailedScheduling 6m20s планировщик по умолчанию 0/1 доступны узлы: 1 узел (узлы) не имеет свободных портов для запрошенных портов модуля.

Wytrzymały Wiktor avatar
флаг it
Привет @Alceatraz и добро пожаловать в ServerFault! Эта ошибка возникает из-за планировщика kubernetes, но прежде чем мы углубимся, не могли бы вы рассказать мне, почему вы используете «ReplicaSet» вместо «Deployment»?

Ответить или комментировать

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