Перезапустите сервер API Kubernetes с различными параметрами.

Я новичок в Kubernetes и кластерах, так что это может быть очень просто.

Я настроил кластер Kubernetes с 5 узлами, используя kubeadm, следуя этому руководству. У меня были некоторые проблемы, но в итоге все заработало. Теперь я хочу установить веб-интерфейс (панель инструментов). Для этого мне нужно настроить аутентификацию:

Обратите внимание, что это работает только в том случае, если на сервере API разрешена аутентификация с использованием имени пользователя и пароля. В настоящее время это не относится к некоторым инструментам настройки (например, kubeadm). Обратитесь к документации администратора проверки подлинности для получения информации о том, как настроить проверку подлинности вручную.

Поэтому мне пришлось прочитать страницу аутентификации документации. И я решил добавить аутентификацию через файл статического пароля. Для этого я должен добавить опцию --basic-auth-file=SOMEFILE к серверу API.

Когда я делаю ps -aux | grep kube-apiserver, это результат, так что он уже запущен. (что имеет смысл, потому что я использую его при вызове kubectl)

kube-apiserver 
  --insecure-bind-address=127.0.0.1
  --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota 
  --service-cluster-ip-range=10.96.0.0/12 
  --service-account-key-file=/etc/kubernetes/pki/apiserver-key.pem 
  --client-ca-file=/etc/kubernetes/pki/ca.pem 
  --tls-cert-file=/etc/kubernetes/pki/apiserver.pem 
  --tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem 
  --token-auth-file=/etc/kubernetes/pki/tokens.csv 
  --secure-port=6443 
  --allow-privileged 
  --advertise-address=192.168.1.137
  --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname 
  --anonymous-auth=false 
  --etcd-servers=http://127.0.0.1:2379

Пара вопросов у меня есть:

  • Итак, где все эти параметры установлены?
  • Могу ли я просто убить этот процесс и перезапустить его с нужным мне параметром?
  • Будет ли он запускаться при перезагрузке системы?

person Ravenix    schedule 10.01.2017    source источник


Ответы (2)


в /etc/kubernetes/manifests есть файл с именем kube-apiserver.json. Это файл JSON и содержит все параметры, которые вы можете установить. Я добавил --basic-auth-file=SOMEFILE и перезагрузил систему (сразу после изменения файла kubectl перестал работать и API закрылся)

После перезагрузки вся система снова заработала.

Обновлять

Мне не удалось запустить панель инструментов, используя это. В конце концов я установил приборную панель на кластер. скопировал ключи с главного узла (/etc/kubernetes/admin.conf) на свой ноутбук и сделал kubectl proxy для прокси-трафика панели управления на мою локальную машину. Теперь я могу получить к нему доступ на своем ноутбуке через 127.0.0.1:8001/ui.

person Ravenix    schedule 10.01.2017
comment
Привет, Ravenix, после перезагрузки сработали ли изменения --basic-auth-file=SOMEFILE? Я сделал то же самое, но для меня изменения не сработали. При использовании kubectl с удаленного компьютера не проверяется пароль, который я передал в файле --basic-auth-file=xx.csv. - person Anumantha Raja; 01.03.2017
comment
@AnumanthaRaja: Нет, в конце концов я установил панель управления в кластере. скопировал ключи с главного узла (/etc/kubernetes/admin.conf) на свой ноутбук и сделал kubectl proxy для прокси-трафика на панель управления на мою локальную машину. Теперь я могу получить к нему доступ через 127.0.0.1:8001/ui. - person Ravenix; 02.03.2017
comment
@Ravenix Вы спасли меня этим вопросом и своим последним комментарием здесь. Я думаю, что редактирование ответа для добавления решения kubectl proxy может еще больше помочь будущим пользователям Google. Спасибо еще раз! - person Bloke; 16.08.2017
comment
@Bloke спасибо за отзыв, я обновил ответ. - person Ravenix; 17.08.2017

Я только что нашел это для аналогичного варианта использования, и сервер API давал сбой после добавления параметра с путем к файлу.

Я смог решить эту проблему, и, возможно, это поможет и другим:

Как описано в https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/#constants-and-well-known-values-and-paths файлы в /etc/kubernetes/manifests являются статическими определениями модулей . Поэтому применяются правила контейнера.

Поэтому, если вы добавляете параметр с путем к файлу, убедитесь, что вы сделали его доступным для модуля с томом hostPath.

person tux-rampage    schedule 05.06.2020