Коротко история такова: после деплоя приложения Plex на сервере TrueNAS Scale бибилиотека сервера перестает быть доступной, можно менять настройки, но “подключить” ее нельзя. Получается своеобразный локальный WebUI для Plex, для использования других серверов.

TL;DR: нужно проверить, что бы поле Дополнительные домены было пустым.

Проблема

При первоначальной настройке Plex уже начинают сыпаться ошибки вида “не удалось зарегистрировать сервер”. После чего сервер с библиотекой в WebGUI начинают отображаться так:

Ошибки в боковой панеле Plex

При редактировании боковой панели:

Ошибки в боковой панеле Plex

А в административной части сервера так:

Ошибка в административной части Plex

При этом нажатие на кнопку “Выбрать сервер” ничего не дает. Если глянуть на вкладку Network в devtools браузера, то можно увидеть, что сервер “пятисотит”:

Ошибки при обработке запросов на выбор сервера

Детали ошибки

Если копнуть глубже, зайти в k3s и добраться до логов /config/Library/Application Support/Plex Media Server/Logs/Plex Media Server.log, то можно увидеть следующую картину:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
DEBUG - Request: didn't get any data from [::ffff:192.168.1.2]:33582: End of file
DEBUG - Request: [192.168.2.2:54204 (Allowed Network (Subnet))] GET /:/prefs (8 live) #202 GZIP Token ()
DEBUG - Request: [192.168.2.2:54208 (Allowed Network (Subnet))] GET /accounts/1 (9 live) #207 GZIP Token ()
DEBUG - Request: [192.168.2.2:54212 (Allowed Network (Subnet))] GET /myplex/account (9 live) #208 GZIP Token ()
DEBUG - Completed: [192.168.2.2:54208] 200 GET /accounts/1 (9 live) #207 GZIP 1ms 518 bytes (pipelined: 1)
DEBUG - Completed: [192.168.2.2:54212] 200 GET /myplex/account (9 live) #208 GZIP 1ms 2873 bytes (pipelined: 1)
DEBUG - Completed: [192.168.2.2:54204] 200 GET /:/prefs (9 live) #202 GZIP 12ms 10739 bytes (pipelined: 1)
DEBUG - Request: [192.168.2.2:54204 (Allowed Network (Subnet))] PUT /myplex/refreshReachability (9 live) #20c GZIP Token ()
DEBUG - Completed: [192.168.2.2:54204] 200 PUT /myplex/refreshReachability (9 live) #20c GZIP 0ms 320 bytes (pipelined: 2)
DEBUG - Request: [192.168.2.2:54204 (Allowed Network (Subnet))] POST /myplex/claim?token=xxxxxxxxxxxxxxxxxxxxrXQxxe (9 live) #20d GZIP Token ()
DEBUG - [Req#20d/HCl#43] HTTP requesting POST https://plex.tv/api/claim/exchange?token=xxxxxxxxxxxxxxxxxxxxrXQxxe
WARN - [HttpClient/HCl#43] HTTP error requesting POST https://plex.tv/api/claim/exchange?token=xxxxxxxxxxxxxxxxxxxxrXQxxe (6, Couldn't resolve host name) (Could not resolve host: plex.tv)
DEBUG - [Req#20d] MyPlex: Did token exchange for claim (returnCode: -6)
DEBUG - [Req#20d] MyPlex: Got a token poked, let's act on it.
DEBUG - [Req#20d/HCl#45] HTTP requesting GET https://plex.tv/api/v2/user/privacy?X-Plex-Token=
WARN - [HttpClient/HCl#45] HTTP error requesting GET https://plex.tv/api/v2/user/privacy?X-Plex-Token=xxxxxxxxxxxxxxxxxxxxe host name) (Could not resolve host: plex.tv)
DEBUG - [Req#20d] [Analytics] Using cached data for privacy preferences
DEBUG - [Req#20d/HCl#46] HTTP requesting GET https://plex.tv/api/v2/release_channels?X-Plex-Token=
WARN - [HttpClient/HCl#46] HTTP error requesting GET https://plex.tv/api/v2/release_channels?X-Plex-Token=xxxxxxxxxxxxxxxxxxxxe host name) (Could not resolve host: plex.tv)
DEBUG - [Req#20d] [AutoUpdateRequestHandler] Using cached data for update channels
DEBUG - [Req#20d/HCl#47] HTTP requesting GET https://plex.tv/api/v2/features?X-Plex-Token=
WARN - [HttpClient/HCl#47] HTTP error requesting GET https://plex.tv/api/v2/features?X-Plex-Token=xxxxxxxxxxxxxxxxxxxxe host name) (Could not resolve host: plex.tv)
WARN - [Req#20d] FeatureManager: Couldn't get features. Trying again soon.
DEBUG - Completed: [192.168.2.2:54204] 500 POST /myplex/claim?token=xxxxxxxxxxxxxxxxxxxxrXQxxe (9 live) #20d GZIP 9ms 530 bytes (pipelined: 3)
DEBUG - [Req#20d/MediaProviderManager] we had 0 cloud providers online, we now have 0
DEBUG - Request: didn't get any data from [::ffff:192.168.1.2]:33474: End of file
  • 192.168.1.2 - ip клиента (браузера);
  • 192.168.2.2 - ip пода (pod) в котором крутиться Plex.

Видно, что в контейнере есть проблема, а вот полноценного DNS нету. Для тестов пробовал запускать apt update, с тем же результатом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# apt update
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease                   
  Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://security.ubuntu.com/ubuntu focal-security InRelease         
  Temporary failure resolving 'security.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease           
  Temporary failure resolving 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Reading package lists... Done        
Building dependency tree       
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease  Temporary failure resolving 'security.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.

При этом файл resolv.conf выглядит так:

1
2
3
4
# cat /etc/resolv.conf
search ix-plex.svc.cluster.local svc.cluster.local cluster.local some.domain.tld
nameserver 172.17.0.10
options ndots:5

Решение

Этот самый домен, в конце списка search - это дополнительный домен TrueNAS, задается в настройках сети (Сеть => Общие настройки):

Поле с заполненным дополнительным доменом

По какому-то странному (или может не очень, я с кубером в любом проявление не сильно знаком) стечению обстоятельств, именно заполненное поле Дополнительные домены приводит к такому поведению. Как только это поле очистить и перезапустить приложение Plex - все начинает работать как нужно (в поде появился DNS и запросы к plex.tv пошли).