172 похожих чатов

Господа, а кто нибудь инитил кубадмом кластер без докера, сразу

с контейнерд? Что имею:
kubeadm, kubelet v 1.22.4
containerd 1.5.8

apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
nodeRegistration:
criSocket: "/run/containerd/containerd.sock"
kubeletExtraArgs:
runtime-cgroups: /system.slice/containerd.service
container-runtime: remote
container-runtime-endpoint: unix:///run/containerd/containerd.sock
cgroup-driver: "systemd"
v: "4"

В процессе инита (kubeadm init --v=2 --config ./kconfig.yaml --node-name k8s-master1) кублет говорит Cannot connect to the Docker daemon at unix:///var/run/docker.sock
Так же в видно, что nodeConfig ContainerRuntime:docker
Пробовал в кублетовый юнит докидывать ключи через енв Environment="KUBELET_EXTRA_ARGS=--container-runtime=remote --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock" тож не помогло. Если запустить кублет руками с ключами - таких ошибок нет

14 ответов

27 просмотров

Я бы посмотрел какие конфиги рендерит кубспрей для контейерд и украл бы, а потом разбирался.

нет необходимости указывать containerd в nodeRegistration. kubeadm сам умеет обнаруживать что у вас containerd. повысьте verbose левел еще больше, до 5 или 7. Он вам подробней напишет почему он хочет докер сокет. Возможно это вообще варнинг в механизме обнаружения (типо пробую докер сокет - его нет, пробую containerd сокет - он есть). У меня тоже containerd. Конфиги для kubeadm выглядят как-то так: https://pastebin.com/X3nXuYzv, нигде containerd явно не указываю

Dmitry Sergeev 🇺🇦
нет необходимости указывать containerd в nodeRegis...

из доки: > By default, Kubernetes uses the Container Runtime Interface (CRI) to interface with your chosen container runtime. If you don't specify a runtime, kubeadm automatically tries to detect an installed container runtime by scanning through a list of well known Unix domain sockets. The following table lists container runtimes and their associated socket paths: Runtime Path to Unix domain socket Docker /var/run/dockershim.sock containerd /run/containerd/containerd.sock CRI-O /var/run/crio/crio.sock If both Docker and containerd are detected, Docker takes precedence. This is needed because Docker 18.09 ships with containerd and both are detectable even if you only installed Docker. If any other two or more runtimes are detected, kubeadm exits with an error. The kubelet integrates with Docker through the built-in dockershim CRI implementation. See container runtimes for more information.

Ну и для точного указания cri я бы реконмедовал использовать не kubeletExtraArgs в InitConfiguration , KubeletConfiguration https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/

Wilderone- Автор вопроса
Dmitry Sergeev 🇺🇦
из доки: > By default, Kubernetes uses the Contai...

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

Wilderone- Автор вопроса
Dmitry Sergeev 🇺🇦
Ну и для точного указания cri я бы реконмедовал ис...

а вот в кублетконфиге не нашел возможности указать кри

Wilderone
да, однако без указания он тоже пытался постучатьс...

ну это норма что он стучится же. Я полагаю в ситуации если у вас есть докер, но вы все равно указали containerd сокет явно. То результат будет непредсказуемый, поскольку докер и kubelet будут делить containerd между собой. Скорее всего именно поэтому при существовании сокета докера выбирается он и пофиг что вы указали containerd сокет явно

Wilderone- Автор вопроса
Dmitry Sergeev 🇺🇦
ну это норма что он стучится же. Я полагаю в ситуа...

но если докера нет, то кублет же и не должен выбирать докеровский сокет?

Wilderone
но если докера нет, то кублет же и не должен выбир...

он его и не выберает. То что он проверяет его существование же не значит что он его выбрал

Wilderone- Автор вопроса
Dmitry Sergeev 🇺🇦
он его и не выберает. То что он проверяет его суще...

но кублет валится с ошибкой "не могу подключиться к докер сокету"

Wilderone- Автор вопроса
Wilderone
именно что валится

тогда увеличивайте verbose и смотрите что там. Можно с чатом поделетися полным выводом, мб поможем

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта