Вопрос или проблема
- Версия Containerd: 1.6.28-1
- Версия Kubernetes: v1.26.3
- Версия серверной системы: Debian 12.0.0 64bit
- master: 172.16.1.10
- node1: 172.16.1.11
- node2: 172.16.1.12
- node3: 172.16.1.13
- Не используется Docker
Я проверил статус containerd и столкнулся со следующим журналом ошибок:
systemctl status containerd.service
● containerd.service - контейнерная оболочка containerd
Loaded: loaded (/lib/systemd/system/containerd.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-11-27 09:53:41 CST; 1 month 12 days ago
Docs: https://containerd.io
Main PID: 360682 (containerd)
Tasks: 181
Memory: 6.2G
CPU: 18h 23min 7.513s
CGroup: /system.slice/containerd.service
├─ 360682 /usr/bin/containerd
├─ 368562 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id 406a9649f0a91850930c4a47df1e92743f93351717ce5f0c6a85f82cb75eec99 -address /run/containerd/containerd.sock
├─ 368577 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id e5eb2facedb832560602af6953fc8ccc793073a98b8ecf58c58de116f53a087e -address /run/containerd/containerd.sock
├─ 389491 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id d1af2af4a417697337d484f8c8850b25e5177ba34e2ec3b3739c96dc6a6d0f39 -address
Jan 09 10:35:50 real-k8s-master containerd[360682]: 2025/01/09 10:35:50 failed to send traces to https://****.mirror.aliyuncs.com/v1/traces: 403 Forbidden
Jan 09 10:35:55 real-k8s-master containerd[360682]: 2025/01/09 10:35:55 failed to send traces to https://****.mirror.aliyuncs.com/v1/traces: 403 Forbidden
После проверки было подтверждено, что мой /etc/containerd/config.toml неверен:
cat /etc/containerd/config.toml
[plugins."io.containerd.tracing.processor.v1.otlp"]
endpoint = "https://****.mirror.aliyuncs.com"
insecure = false
protocol = ""
Я настроил адрес персонального ускорителя изображений для отправки информации об отслеживании на указанный endpoint OpenTelemetry, и теперь хочу вернуть его на значение по умолчанию:
endpoint=””
Но я не уверен, решит ли это проблему.
И я не нашел способа изменить конфигурацию этого плагина без перезапуска containerd, поэтому я не уверен, повлияет ли один только перезапуск containerd на работу кластера k8s
Ответ или решение
Перезагрузка containerd
в контексте вашего кластера Kubernetes может иметь значительное влияние на работу кластера. Давайте подробно рассмотрим влияние данного действия в вашем конкретном сценарии.
Перезагрузка containerd в вашем окружении
В вашей конфигурации используется containerd
версии 1.6.28-1, который выступает в качестве контейнерного рантайма для Kubernetes версии 1.26.3, на сервере с Debian 12.0.0 64bit. Вы указали, что не используете Docker, что делает containerd критически важным элементом для работы всего кластера. Node’ы (master и 3 рабочих узла) зависят от данного процесса.
Последствия перезапуска
-
Кратковременные простои: При перезагрузке
containerd
, контейнеры, запущенные на этой машине, будут остановлены, что может привести к кратковременным простоям сервисов. Kubernetes сам по себе спроектирован для автоматического восстановления таких ситуаций, однако это может вызвать временные проблемы в доступности сервисов. -
Потеря состояния: Контейнеры могут потерять состояние, поскольку контейнеры, работающие с остановленным containerd, фактически остановятся. Хотя это не затронет данные в постоянных томах, все же может затронуть временные данные.
-
Автоматическое восстановление: Kubernetes имеет встроенные механизмы автоматического восстановления, которые должны реально минимизировать воздействие на клиентов. Работы по пересозданию подов будут стартованы автоматически, но это может занять некоторое время.
Решение проблемы конфигурации
Ваш вопрос касается исправления конфигурации плагина в containerd
, где вы установили неверное значение для трассировки. Исправить данную проблему без перезагрузки скорее всего не получится, так как изменения в config.toml
, как правило, требуют перезапуска containerd
.
Рекомендации
-
Тестовая среда: Рассмотрите возможность изменения и перезапуска
containerd
сначала в тестовой среде, чтобы проверить, как это повлияет на работу без риска для основного кластера. -
План обслуживания: Ознакомьтесь с временем наименьшей загрузки для вашего кластера и выполните обновление в этот период.
-
Мониторинг: После перезапуска containerd, внимательно наблюдайте за состоянием кластера через дашборды или системы мониторинга, такие как Prometheus и Grafana, для определения влияния на производительность вашим бизнес-процессам.
Итак, перезапуск containerd
может временно затронуть ваш Kubernetes кластер. Однако правильное планирование и мониторинг помогут свести эти риски к минимуму.