Я пытаюсь использовать NTP для синхронизации местного времени в контейнерах ECS с помощью ntpdate
команда, но это дает мне эту ошибку:
ntpdate[770]: Can't adjust the time of day: Operation not permitted
Исследуя проблему, я понял, что местное время управляется на хосте, на котором работают контейнеры, но в этом случае контейнер работает как задача ECS в кластере Fargate. Поэтому я не знаю, обрабатывает ли Amazon синхронизацию времени по умолчанию для контейнеров ECS или нет, и как это работает.
Это то, о чем мне не нужно беспокоиться? Есть ли ссылка на AWS, объясняющая это?
Краткая версия: это то, о чем вам не нужно беспокоиться.
Более длинная версия: вы ничего не могли бы с этим поделать, даже если бы захотели, потому что Fargate не допускает привилегированные контейнеры, что необходимо для настройки часов хоста.
Мне не удалось найти какой-либо конкретной документации по этому поводу, но весьма вероятно, что AWS использует собственный сервис NTP для виртуальных машин Firecracker, на которых работают контейнеры Fargate.
Вот тест, который я сделал с ntpdate -d
из контейнера ECS:
10 Mar 23:59:58 ntpdate[6661]: ntpdate 4.2.8p10@1.3728-o (1)
Looking for host 169.254.169.123 and service ntp
transmit(169.254.169.123)
receive(169.254.169.123)
transmit(169.254.169.123)
receive(169.254.169.123)
transmit(169.254.169.123)
receive(169.254.169.123)
transmit(169.254.169.123)
receive(169.254.169.123)
server 169.254.169.123, port 123
stratum 3, precision -26, leap 00, trust 000
refid [169.254.169.123], delay 0.02576, dispersion 0.00000
transmitted 4, in filter 4
reference time: e212a876.488c7014 Tue, Mar 10 2020 23:59:50.283
originate timestamp: e212a885.19ee802f Wed, Mar 11 2020 0:00:05.101
transmit timestamp: e212a885.19e43c89 Wed, Mar 11 2020 0:00:05.101
filter delay: 0.02585 0.02576 0.02582 0.02579
0.00000 0.00000 0.00000 0.00000
filter offset: -0.00000 -0.00004 -0.00005 -0.00003
0.000000 0.000000 0.000000 0.000000
delay 0.02576, dispersion 0.00000
offset -0.000041
11 Mar 00:00:07 ntpdate[6661]: adjust time server 169.254.169.123 offset -0.000041 sec
Как видите, контейнер находится на расстоянии 41 микросекунды от сервера времени, что примерно подходит для хоста, синхронизированного с очень близким источником времени.