не удалось распознать файл. Отказ в соединении

Этот ответ является продолжением ответа Жиля.

Дважды записывать адрес не очень-то СУХО, и хотя он отлично работает для этого примера простого удаления первой строки, этот метод становится более проблематичным, если у вас есть более сложный шаблон поиска для строк, которые вы хотите «извлечь». из файла. Вместо того, чтобы писать адрес дважды, вы можете использовать фигурные скобки для выполнения команд wи dпо одному и тому же адресу. Используя исходный пример, это будет выглядеть так:

sed -i -e '1{w /dev/stdout' -e 'd}' file.txt

или, в более общем смысле,:

sed -i -e '/some long regex/{w /dev/stdout' -e 'd}' file.txt
1
30.01.2020, 03:56
1 ответ

Похоже, вы не можете подключиться к серверу API Kubernetes. Это может быть по многим причинам

  • Сервер API kubernetes не запущен
  • Сервер API не прослушивает TCP/8080
  • Сервер API не прослушивает петлевой адрес 127.0.0.1
  • Сервер API прослушивает не HTTP (, а HTTPS )
  • .
  • Локальный брандмауэр (, такой как iptables ), блокирует соединение
  • TCPwrapper блокирует соединение.
  • Система обязательного контроля доступа, такая как SELinux, блокирует соединение, но вы сказали, что это отключено. И если у вас установлен AppArmor на Amazon Linux, то я не знаю, сможет ли кто-нибудь вам помочь.:)
  • и этот список можно продолжить многими более эзотерическими причинами, почему этой связи не произойдет.
некоторые шаги по исправлению/устранению неполадок
  • Убедитесь, что сервер API k8s работает. (Я не знаю, как вы его установили, поэтому не могу предложить, как бы вы проверили, возможно, с помощью systemctl statusилиdocker ps).
  • Запустите ss -lnи проверьте, не прослушивается ли что-нибудь на 127.0.0.1 :8080 или *:8080
  • посмотрите, можете ли вы подключиться к сокету с чем-то еще curl -k https://127.0.0.1:8080для проверки https или curl http://127.0.0.1:8080для HTTP.
  • Если ваш сервер API работает в док-контейнере, убедитесь, что он прослушивает 8080 на хосте. docker psили docker inspect, чтобы увидеть переадресацию портов.
  • Проверьте брандмауэр, iptables -S, это далеко не полный список, нечасто вы увидите правила, блокирующие пакеты, идущие на локальный хост.
  • Проверьте /etc/hosts.deny на наличие всего, что может вас остановить (еще раз, это далеко не полный план, потому что это обычно не настраивается случайно ).

Редактировать

После просмотра некоторых ваших данных по устранению неполадок. Я заметил, что вы используете kubectlкак root. И ваш kubeconfig находится в каталоге пользователя.Вы должны запустить kubectl от имени пользователя «kubernetes -host», просто перетащив sudoв начале вашей команды. Файл kubeconfig направит Kubectl на правильный адрес конечной точки (и порт ), но при работе от имени пользователя root kubectl не будет проверять /home/kubernetes -host/.kube/config.

Так что попробуйkubectl apply -f rbac-kdd.yaml

Если вам по какой-то причине нужно работать от имени пользователя root, вам следует:

1 )Сомневайтесь в жизненном выборе, который привел вас сюда.

2 )запустите sudo kubectl apply --kubeconfig=/home/kubernetes-host/.kube/config -f rbac-kdd.yaml, чтобы явно использовать конфигурацию в домашнем каталоге пользователя узла kubernetes -.

1
28.04.2021, 23:25

Теги

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