Настройка параметров системы и конфигурация kubeconfig#
Настройка основных параметров системы#
В этом разделе описываются основы системного администрирования в DropApp. Основное внимание уделяется задачам, которые системный администратор должен выполнить сразу после успешной установки и настройки DropApp.
Установка и настройка программного обеспечения осуществляется с помощью утилит управления кластером DropApp, например, kubeadm, kubelet и kubectl.
При развертывании DropApp, осуществляется работа с кластерами. Кластер DropApp состоит из набора узлов, которые запускают контейнерные приложения. Кластер DropApp имеет, как минимум, один рабочий узел. В тестовых или небольших не отказоустойчивых инсталляциях возможна ситуация, когда главные узлы являются рабочими, то есть на них запущена и управляющая и рабочая нагрузка.
В рабочих узлах размещены pod, являющиеся компонентами приложения. Управляющий слой (control plane), представляет собой совокупность главных узлов и управляет рабочими узлами и pods в кластере DropApp.
В данном разделе представлена информация об администрировании компонентов, необходимых для работы кластера DropApp.
Файл kubeconfig#
По умолчанию инструмент командной строки для управления кластерами kubectl задействуется через командную строку (например, через bash) и использует контексты (context) для взаимодействия с кластером DropApp. Контекст DropApp - это набор параметров доступа, содержащий кластер DropApp, пользователя и namespace. Контексты используются для доступа к определенному кластеру и namespace с помощью учетной записи пользователя. Установка того, с каким кластером взаимодействует DropApp и изменение конфигурационной информации осуществляются посредством kubectl.
В каждом контексте есть три ключевых параметра: cluster, namespace и user.
Для выбора контекста введите команду:
kubectl config get-contexts # показать список контекстов
kubectl config current-context # показать текущий контекст (current-context)
kubectl config use-context my-cluster-name # установить my-cluster-name как контекст по умолчанию
Для выбора того, с каким кластером DropApp необходимо взаимодействовать при помощи kubectl, выберите среди следующих команд:
kubectl config view # показать объединенные настройки kubeconfig
# использовать несколько файлов kubeconfig одновременно и посмотреть объединенную конфигурацию из этих файлов
KUBECONFIG=~/.kube/config:~/.kube/kubconfig2
kubectl config view
# получить пароль для пользователя e2e
kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'
# показать первого пользователя
kubectl config view -o jsonpath='{.users[].name}'
# получить список пользователей
kubectl config view -o jsonpath='{.users[*].name}'
# показать список контекстов
kubectl config get-contexts
# показать текущий контекст (current-context)
kubectl config current-context
# установить my-cluster-name как контекст по умолчанию
kubectl config use-context my-cluster-name
# добавить новую конфигурацию для кластера в kubeconf с базовой аутентификацией
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
# сохранить пространство имен для всех последующих команд kubectl в этом контексте.
kubectl config set-context --current --namespace=ggckad-s2
# установить контекст, используя имя пользователя (user) и пространство имен (namespace).
kubectl config set-context gce --user=cluster-admin --namespace=foo \
&& kubectl config use-context gce
# удалить пользователя foo
kubectl config unset users.foo
Переменная среды KUBECONFIG#
Переменная среды KUBECONFIG содержит список файлов kubeconfig (файл YAML со всеми деталями кластера DropApp, сертификатом и секретным токеном для аутентификации кластера). Специальной установки для KUBECONFIG не требуется. Если KUBECONFIG отсутствует, kubectl использует файл kubeconfig по умолчанию. Например, через обращение к конфигурационному файлу: $HOME/.kube/config.
Если KUBECONFIG присутствует, kubectl использует конфигурацию, которая является результатом объединения файлов, перечисленных в KUBECONFIG.
Конфигурация объединения файлов kubeconfig#
Чтобы просмотреть конфигурацию, введите команду:
kubectl config view
Примечание
Выходные данные могут использоваться из одного файла kubeconfig, также выходные данные могут быть результатом объединения нескольких файлов kubeconfig.
Если установлен флаг
--kubeconfig, используйте только указанный файл.Определите первый контекст для взаимодействия с кластером DropApp:
Используйте флаг
--contextкомандной строки, если контекст присутствует.Используйте
current-contextиз объединенных файлов kubeconfig.
На этом этапе допускается незаполненный контекст.
Определите кластер DropApp и пользователя (user). На этом этапе допускается неопределенность контекста.
Определение пользователя к кластеру DropApp выполняется дважды: один раз для пользователя и один раз для кластера DropApp:
Используйте флаг командной строки, если контекст существует:
--userили--cluster.Если контекст уже заполнен, удалите пользователя или кластер DropApp из контекста.
Примечание
Пользователь и кластер DropApp могут быть не заполненными на этом этапе.
Определите актуальную информацию о кластере DropApp для использования. На этом этапе актуальная информация не определена. Создайте атрибуты информации о кластере DropApp при помощи следующих флагов командной строки:
--server,--certificate-authority,--insecure-skip-tls-verify.Если в объединенных файлах kubeconfig существуют какие-либо атрибуты информации о кластере DropApp, используйте их. Если местоположение сервера не определено, происходит сбой.
Определите фактическую информацию о пользователе для использования. Создайте информацию о пользователе, используя те же правила создания информации о кластере DropApp:
Используйте флаги командной строки:
--client-certificate,--client-key,--username,--password --token.Используйте user поля из объединенных файлов kubeconfig.
Примечание
Также можно использовать значения по умолчанию.
Ссылки на файлы#
Ссылки на файлы и пути в файле kubeconfig относятся к расположению файла kubeconfig. Ссылки на файлы в командной строке относятся к текущему рабочему каталогу. Относительные пути $HOME/.kube/config хранятся относительно, а абсолютные пути хранятся абсолютно.
Прокси#
Можно настроить kubectl использование прокси для каждого кластера DropApp, используя proxy-url в файле kubeconfig, например:
apiVersion: v1
kind: Config
clusters:
- cluster:
proxy-url: http://proxy.example.org:3128
server: https://k8s.example.org/k8s/clusters/c-xxyyzz
name: development
users:
- name: developer
contexts:
- context:
name: development
Примечание
Адреса не являются существующими и приведены в качестве примера.