Управляйте кластером Kubernetes как профессионал

Kubernetes — это система оркестрации контейнеров, которая используется для автоматизации развертывания, администрирования и масштабирования контейнерных приложений, таких как Docker. Существует чрезмерная зависимость от облачной инфраструктуры, при этом Kubernetes используется, среди прочего, для развертывания и управления программным обеспечением в облаке.

Многочисленные процессы и программы могут быть объединены в один контейнер для улучшения обработки и безопасности, а управление одним контейнером значительно упрощается при работе с несколькими контейнерами.

Когда новый контейнер запускается в Kubernetes, он автоматически добавляется как Node в соответствующий кластер; вот почему он работает в кластерном режиме. В результате в вашем кластере есть только одна машина, которая называется Node.

Узлы служат слоем абстракции. Они могут хранить постоянные или временные данные в виде кэша, а также выполнять другие функции. В результате Kubernetes автоматизирует их контейнеризацию и администрирование.

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

Поскольку Kubernetes обеспечивает такой высокий уровень гибкости для потребителей и организаций, многие организации хотят его использовать.

Основные команды в Kubernetes

Для выполнения команд в Kubernetes необходимо использовать инструмент командной строки под названием Kubectl. Kubectl работает на рабочей станции или любой другой машине, где он был установлен.

С помощью команд разработчики могут выполнять широкий спектр задач, таких как проверка или управление кластером, развертывание приложений или чтение журналов в распределенной системе. Взгляните на следующие команды, полезные для Kubernetes.

Kubectl описать

Пользователь может использовать команду kubectl описать, чтобы получить дополнительную информацию об определенном ресурсе, принадлежащем определенной группе.

kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME)

Используя это поле, вы можете описать имя файла, тип и метку. Возможно получение ошибки, указывающей, что kubelet прекратил публикацию статуса узла, что может быть вызвано неправильной работой процесса kubelet на узле.

Кубектл создать

Чтобы создать ресурс из файла YAML, пользователь должен использовать команду, указанную ниже. Параметр -f указывает имя файла в этой команде.

kubectl create -f Test.yaml

Кубектл бег

Эту команду может использовать пользователь, который хочет создать образ определенного типа в Kubernetes. Развертывание или задание создается для управления подмножеством вновь созданных экземпляров контейнера.

kubectl run Name — image=nginx

Поскольку мы указываем имя «nginx new» для экземпляра, эта команда запустит один экземпляр nginx с «nginx_new» в качестве имени экземпляра и будет выглядеть примерно так:

kubectl run ngnix_new — image=nginx

В этой команде пользователь может указать дополнительные сведения, например, номер порта, если это необходимо. Эти аргументы можно легко передать, и результирующая команда будет выглядеть примерно так:

kubectl run hazelcast — image=hazelcast — port=1111

Когда мы меняем имя образа на hazelcast, создается один экземпляр hazelcast, что позволяет открывать контейнер через порт 1111.

Следовательно, если конечный пользователь хочет дублировать экземпляры любого изображения, для этого можно использовать функцию «реплики». В следующей команде будут реплицированы или развернуты три экземпляра «nginx»:

kubectl run nginx –image=nginx –replicas=3

В результате «kubectl run» можно использовать для выполнения различных задач, таких как изменение переменной среды и вывод соответствующих объектов API без необходимости их создания, что возможно при использовании аргументов «— пробный запуск», когда выполнение этой команды. Кроме того, пользователи могут передавать собственные аргументы, используя синтаксис «— arg1› arg2›…argn›».

Кубектл применять

Если пользователь хочет применить конфигурацию к ресурсу на основе имени файла, он может сделать это с помощью следующей команды:

Kubectl apply -f test.yaml

Аргумент -f указывает, что файл должен использоваться, а имя файла «test.yaml» указывает, что он должен использоваться.

Система создаст ресурс, если он еще не существует, а затем применит политики к вновь созданному ресурсу. Он принимает файлы как в формате JSON, так и в формате YAML.

Относительный URL-адрес файла, к которому пользователь хочет применить изменения конфигурации, может быть указан вместо абсолютного URL-адреса, если у пользователя нет абсолютного URL-адреса.

Кубектл прикрепить

Если пользователь хочет подключиться к процессу, который уже выполняется в существующем контейнере, можно использовать эту команду:

Kubectl attach <Pod> -c <Container>

Параметр «-c» используется для указания имени контейнера, и если пользователь не укажет параметр -c, то по умолчанию в этой команде будет использоваться имя первого контейнера.

Базовая команда показана выше, и пользователь может настроить ее в соответствии со своими требованиями. Например, если пользователь хочет подключить «python-контейнер» из пода «100–1000», следующая команда будет

Kubectl attach 100–10000 -c python-container

Информация о кластере Kubectl

Когда пользователь хочет просмотреть информацию о кластере Kubernetes, можно использовать следующую команду.

Kubectl cluster-info

Эта команда будет отображать только адреса сервисов и главную информацию для кластеров, для которых пользователь установил метку «kubernetes.io/cluster-service» в значение «true».

Если пользователь хочет получить дамп информации о кластере для устранения неполадок и диагностики кластера, он или она может внести небольшие изменения в базовую команду. Обновленная команда выглядит так:

Kubectl cluster-info dump

С помощью приведенной выше команды все сбрасывается в stdout. Если пользователь хотел, чтобы он был сброшен в определенный каталог, он может указать параметр output-directory с путем, который может быть как абсолютным, так и относительным. Ниже приведен пример команды:

Kubectl cluster-info dump –output-directory=/path/to/cluster-state

«Kubectl cluster-info» также может работать с пространствами имен. Значение аргумента «— all-namespace» по умолчанию равно false. Он выведет все пространства имен, если для аргумента «-all-namespaces» установлено значение true; в противном случае будут выведены только перечисленные ниже пространства имен.

Kubectl cluster-info dump –all-namespaces

Конфигурация кубектла

Если пользователь хочет внести изменения в файл kubeconfig, можно использовать команду, показанную ниже.

Kubectl config <SUBCOMMAND> –<Kubeconfig>

Он изменяет файлы Kubeconfig, используя параметр «подкоманды». Такой как

Kubectl config set current contect MY

Эта команда использует флаг kubeconfig, который можно установить только один раз для каждой команды. Если флаг не установлен, файл не может быть загружен. После этого он определяет, установлена ​​ли переменная среды или нет.

Если это так, путь используется; в противном случае это не так. Он добавляется в начало существующего файла первой строкой. Если файл еще не существует, список будет расширен, чтобы включить последний добавленный файл.

Если пользователь хочет использовать опцию «kubeconfig» для определенного файла kubeconfig, этот параметр указывается как таковой.

Заключение

По мере того, как Kubernetes набирал популярность в сфере облачных вычислений, инструмент командной строки Kubectl также набирал популярность, поскольку он позволяет пользователям выполнять широкий спектр операций.

Он прост в использовании, и пользователям не составляет труда его понять, поскольку по этому вопросу доступно большое количество материалов. Большое количество пользователей предпочитают использовать команды, так как они более эффективны и позволяют получать вывод чаще.