Этот ответ является продолжением ответа Жиля.
Дважды записывать адрес не очень-то СУХО, и хотя он отлично работает для этого примера простого удаления первой строки, этот метод становится более проблематичным, если у вас есть более сложный шаблон поиска для строк, которые вы хотите «извлечь». из файла. Вместо того, чтобы писать адрес дважды, вы можете использовать фигурные скобки для выполнения команд 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
Похоже, вы не можете подключиться к серверу API Kubernetes. Это может быть по многим причинам
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. docker ps
или docker inspect
, чтобы увидеть переадресацию портов. iptables -S
, это далеко не полный список, нечасто вы увидите правила, блокирующие пакеты, идущие на локальный хост. После просмотра некоторых ваших данных по устранению неполадок. Я заметил, что вы используете 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 -.