У меня есть кластер кубернетов, размещенный Google Cloud, на котором я запускаю 4 небольших службы. По какой-то причине некоторые из моих контейнеров просто разбились и не могут быть восстановлены из-за отсутствия доступных IP-адресов в сети. Почему это должно быть?Google Cloud/Kubernetes - Ошибка добавления контейнера в сеть, нет доступных IP-адресов
Глядя на мои квоты Google, у меня достаточно IP-адресов. Это произошло раньше, и единственный способ, которым я смог его решить, - уничтожить кластер и воссоздать его. Это странно, потому что службы работают нормально, а затем эта проблема возникает случайно.
Здесь ошибка:
Error syncing pod, skipping: failed to "SetupNetwork" for "myapp" with SetupNetworkError: "Failed to setup network for pod \"myapp(8ba3a1aa-8ed4-11e6-9d08-42010af0015a)\" using network plugins \"kubenet\": Error adding container to network: no IP addresses available in network: kubenet; Skipping pod"
Стручок, который не удался перезапущен в 70 раз, это может быть возможно, что IP-адрес не отпускается обратно в бассейн? Я не сетевой парень, так что простите мое невежество;)
Спасибо, это определенно похоже на проблему. Вы знаете, есть ли обходной путь? –
Вы можете выполнить итерацию по каждому из этих файлов и подтвердить, что содержимое соответствует текущему запущенному контейнеру докеров. Если нет, удалите их. Изнутри каталога '/ var/lib/cni/networks/kubenet', что-то вроде:' for hash в $ (tail -n +1 * | grep '^ [A-Za-z0-9] * $' | cut -c 1-8); do, если [-z $ (docker ps -a | grep $ hash | awk '{print $ 1}')]; затем grep -ir $ hash ./; Fi; done', чтобы просмотреть все файлы, которые были пропущены. –
Как только вы подтвердите, что список выглядит нормально, вы можете удалить эти файлы: 'для хеша в $ (tail -n +1 * | grep '^ [A-Za-z0-9] * $' | cut -c 1-8); do, если [-z $ (docker ps -a | grep $ hash | awk '{print $ 1}')]; затем grep -irl $ hash ./; Fi; сделано | xargs rm' –