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

А кто знает зачем нужен нод анотейшн node.alpha.kubernetes.io/ttl=0 . Нигде

не нашел документации по нему. Подозреваю, что это как-то связано с nodeInfo кешем и используется kubelet'ом.

Собственно чего спрашиваю, после обновления на 1.11 появилась проблема с kube-scheduler'ом, срабатывает PodFitsHostPorts predicate (FailedScheduling didn't have free ports) при обновлении deployment'а часть подов не скедулится на ноды и висят бесконечное количество времени в статусе Pending пока не ребутнешь kube-scheduler. Собрал свой скедулер, чтобы он выводил дебаг инфо по функции PodFitsHostPorts, вот так:

func PodFitsHostPorts(pod *v1.Pod, meta algorithm.PredicateMetadata, nodeInfo *schedulercache.NodeInfo) (bool, []algorithm.PredicateFailureReason, error) {
var wantPorts []*v1.ContainerPort
if predicateMeta, ok := meta.(*predicateMetadata); ok {
wantPorts = predicateMeta.podPorts
} else {
// We couldn't parse metadata - fallback to computing it.
wantPorts = schedutil.GetContainerPorts(pod)
}
if len(wantPorts) == 0 {
return true, nil, nil
}

existingPorts := nodeInfo.UsedPorts()
// try to see whether existingPorts and wantPorts will conflict or not
if portsConflict(existingPorts, wantPorts) {
fmt.Printf(" nodeInfo: %+v ================ existingPorts: %+v ================ wantPorts: %+v ================ podName: %+v\n\n======================\n\n", nodeInfo.Node().Name, existingPorts["0.0.0.0"], wantPorts, pod.Name)
return false, []algorithm.PredicateFailureReason{ErrPodNotFitsHostPorts}, nil
}

return true, nil, nil
}

Если portsConflict то выводит значения existingPorts на ноде и wantPorts контейнера. Так вот existingPorts выводит закешированые значения, порты давно не слушаются, а он говорит что слушаются. Если поменять версию скедулера на v1.10.5 такой проблемы не возникает.

Kubernetes 1.11.0, calico 3.1 (ibgp full mesh), containerd 1.1.2, ~100 нод в кластере

Мой issuse https://github.com/kubernetes/kubernetes/issues/66568

Может кто-то сталкивался с такой проблемой?

1 ответов

9 просмотров

https://github.com/kubernetes/kubernetes/blob/b6f75ac30e863531ac73cfd02a0edd57983cc5c0/staging/src/k8s.io/api/core/v1/annotation_key_constants.go#L59-L62

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта