Я согласен с @Bernard. Это не похоже ни на что, специфицирующее от c до kubectx
, поскольку это просто bash скрипт, который под капотом использует kubectl
бинарный . Вы можете увидеть его код здесь . Я полагаю, что он также потерпит неудачу в kubectl
, если вы не предоставите
Но, если попытаетесь достичь того же кластера, передав его непосредственно команде kubectl с параметром --kubeconfig =, это работает .
В способе его тестирования есть некоторая несогласованность, поскольку вы не предоставляете указанный файл c kubeconfig
для обеих команд. Когда вы используете kubectx
, он использует несколько объединенных в память файлов kubeconfig
и сравнивает его с рабочим примером kubectl
, в котором вы непосредственно указываете файл kubeconfig
, который следует использовать. Чтобы сделать это сравнение согласованным, вы также должны использовать kubectx
с этим конкретным kubeconfig
файлом. А что произойдет, если вы запустите команду kubectl
без указания --kubeconfig=<path to the config>
? Я полагаю, вы получаете ошибку, похожую на ту, что вы получаете при запуске kubectx
. Пожалуйста, поправьте меня, если я ошибаюсь.
Есть действительно хорошая статья , написанная Ахметом Альпом Балканом - kubectx
автором, которая хорошо объясняет, как вы можете работать с несколькими kubeconfig
файлы. Как вы можете прочитать в статье :
Совет 2. Использование нескольких kubeconfig одновременно
Иногда у вас есть куча небольших файлов kubeconfig (например, один на кластера), но вы хотите использовать их все сразу, с такими инструментами, как kubectl
или kubectx
, которые работают с несколькими контекстами одновременно.
Для этого вам понадобится « объединенный »файл kubeconfig. Совет № 3 объясняет, как вы можете объединить kubeconfigs в один файл, но вы также можете объединить их в памяти.
Указав несколько файлов в переменной среды KUBECONFIG
, вы можете временно сшить файлы kubeconfig вместе и используйте их все в kubectl.
export KUBECONFIG=file1:file2
kubectl get pods --context=cluster-1
kubectl get pods --context=cluster-2
Совет 3: Объединение файлов kubeconfig
Поскольку файлы kubeconfig являются структурированными YAML-файлами, вы не можете просто добавить их, чтобы получить один большой файл kubeconfig, но kubectl может помочь вам объединить эти файлы:
KUBECONFIG=file1:file2:file3 kubectl config view --merge --flatten > out.txt
Возможные решения:
Попробуйте объединить несколько файлов kubeconfig
в один, как в Приведенный выше пример показывает, возможно ли проблема только со слиянием в памяти:
KUBECONFIG = file1: file2: представление конфигурации kubectl file3 --merge --flatten> out.txt
Просмотрите все свои kubeconfigs
и протестируйте их по отдельности, чтобы убедиться, что они работают правильно, если это указано отдельно в переменной KUBECONFIG
env. В одном из них может быть ошибка, которая вызывает проблему.