Узел Calico ничего не возвращает для команды / bin / calico-node -felix-ready

Я начинающий разработчик системы k8s.
Я хочу проверить готовность узла calico, поэтому я отправил на узел команду, как показано ниже.

$kubectl exec calico-node-d4tzk -n kube-system -- /bin/calico-node -felix-ready

Но ничего не возвращается. Я проверил журналы узла, но также нет журналов о команде.
Интересно, что возвращение ничего не означает, что Феликс готов.


person Togomi    schedule 03.11.2020    source источник
comment
Не могли бы вы поделиться некоторыми подробностями о том, как вы настроили свой кластер и узел calico?   -  person Wytrzymały Wiktor    schedule 03.11.2020


Ответы (1)


Я нашел для себя ответ, но не уверен, правильный он или нет.
В projectcaclico / node / cmd / calico-node / main.go Строка 98, там есть команды проверки работоспособности и готовности.

if *felixLive || *birdReady || *bird6Ready || *felixReady || *birdLive || *bird6Live {
        health.Run(*birdReady, *bird6Ready, *felixReady, *felixLive, *birdLive, *bird6Live, *thresholdTime)
        os.Exit(0)
    }

а затем я заглянул в функцию Run (). Там я нашел код чтения .

    if felixReady {
        g.Go(func() error {
            if err := checkFelixHealth(ctx, felixReadinessEp, "readiness"); err != nil {
                return fmt.Errorf("calico/node is not ready: felix is not ready: %+v", err)
            }
            return nil
        })
    }

Как видите, он возвращает nil, если проблем нет. Вот почему я думаю, что отсутствие возврата означает, что Феликс готов.

person Togomi    schedule 05.11.2020