Кубектл это утилита командной строки в Кубернетес используется для запуска команд против Кубернетес кластеры. Вы можете использовать его для выполнения широкого круга задач, включая развертывание приложений/микросервисов, просмотр ресурсов и управление ими, проверка лог-файлови многое другое.
В этом уроке мы представляем часто используемые кубектл команды для управления Кубернетес (К8С) кластер.
мы используем Миникуб на Убунту 22.04 как наш местный Кубернетес кластер.
В Кубернетес, объекты — это постоянные сущности, которые гарантируют, что ваш кластер достигнет желаемого состояния. Они являются строительными блоками ваших рабочих нагрузок в кластере. К объектам относятся наборы реплик, развертывания, модули, наборы демонов, службы, пространства имен, карты конфигурации и секреты, а также постоянные тома, и это лишь некоторые из них.
Наиболее распространенным способом создания объектов является использование YAML файл манифеста обычно с .yaml
или .yml
расширение файла.
Чтобы создать объект из YAML файл манифеста, запустите:
$ kubectl apply -f ./file1.yaml.
Для создания ресурсов из нескольких YAML файлы, запустите:
$ kubectl apply -f ./file1.yaml -f ./file2.yaml
Чтобы создать ресурсы из всех файлов манифеста в каталоге, выполните:
$ kubectl apply -f ./dir
Чтобы создать ресурсы из URL-адреса, выполните:
$ kubectl apply -f https://sample-url.io.
А узел — это физическая или виртуальная машина, на которой работают модули и другие ресурсы, лежащие в основе вашей рабочей нагрузки. Каждый узел управляется главным узлом, известным как панель управления который содержит несколько служб, необходимых для запуска модулей. Кластер обычно имеет несколько узлов.
Чтобы получить количество узлов в вашем кластере, выполните:
$ kubectl get nodes.
Чтобы запустить модули на узле, выполните:
$ kubectl get pods -o wide | grep
Чтобы пометить узел как незапланированный, запустите.
$ kubectl cordon minikubenode/minikube cordoned
Чтобы пометить свой узел как планируемый, запустите.
$ kubectl uncordon minikubenode/minikube uncordoned
Для отображения показателей использования ресурсов, таких как БАРАН и Процессор бегать:
$ kubectl top node
Чтобы удалить узел или несколько узлов, выполните команду:
$ kubectl delete node
А Кластер Кубернетес — это группа узлов или серверов, на которых выполняются контейнерные приложения. Узел может запускать один или несколько модулей, содержащих один или несколько работающих контейнеров.
Для перечисления информации о владелец.
$ kubectl cluster-info.
Чтобы проверить кубектл версия.
$ kubectl version --short.
Чтобы отобразить конфигурацию кластера Kubernetes.
$ kubectl config view.
Для отображения контекстов.
$ kubectl config get-contexts.
Список доступных ресурсов API.
$ kubectl api-resources.
Список доступных версий API.
$ kubectl api-versions.
В Кубернетес, а стручок — это наименьшая развертываемая единица, которую вы можете создать и управлять в кластере. Модуль содержит группу контейнеров с общими томами и сетевыми ресурсами, а также инструкции по запуску приложения.
стручки являются эфемерными и одноразовыми, а это означает, что они недолговечны и, следовательно, не сохраняются в течение длительных периодов времени. Таким образом, лучший подход к развертыванию модулей — использование декларативной конфигурации с использованием файла YAML.
Это более воспроизводимо и удобно, поскольку его можно использовать повторно. Кроме того, это гарантирует, что ресурсы, определенные в файле YAML, постоянно отслеживаются Kubernetes и работают в соответствии с указаниями.
Чтобы получить список запущенных модулей в вашем кластере, выполните команду:
$ kubectl get pods.
Чтобы отобразить модули рядом с их метками, запустите:
$ kubectl get pods --show-labels.
Чтобы вывести список всех модулей во всех пространствах имен, выполните:
$ kubectl get pods --all-namespaces.
Чтобы перечислить модули в текущем пространстве имен и получить более подробную информацию, добавьте -o
широкий параметр.
$ kubectl get pods -o wide.
Чтобы отобразить подробное состояние конкретного модуля, запустите:
$ kubectl describe pod
Чтобы добавить метку к поду, выполните команду:
$ kubectl label pods my-pod new-label=awesome.
Чтобы удалить метку, выполните:
$ kubectl label pods my-pod new-label-
Чтобы получить интерактивную оболочку с контейнером, выполните команду:
$ kubectl exec -it/bin/sh.
Чтобы удалить конкретный модуль, выполните следующее:
$ kubectl delete pod
А набор реплик (РС) гарантирует, что в любой момент времени всегда будет стабильное количество запущенных модулей. Это гарантирует доступность определенного количества модулей, как указано в файле манифеста YAML.
Чтобы получить количество наборы реплик в кластере выполните команду:
$ kubectl get replicasets.
Чтобы получить дополнительную информацию о конкретном наборе реплик, выполните команду:
$ kubectl describe replicasets
Сервис — это сетевая абстракция над модулем. Службы обеспечивают обнаружение и маршрутизацию между модулями. Например, служба может соединить внешний интерфейс приложения с его серверной частью, каждая из которых работает в отдельных развертываниях.
Чтобы перечислить запущенные службы:
$ kubectl get services.
Чтобы получить более подробную информацию об услуге, выполните команду:
$ kubectl describe services.
Учетная запись службы — это объект, используемый модулем в кластере для доступа к серверу API Kubernetes.
Чтобы получить список учетных записей служб, запустите:
$ kubectl get serviceaccounts.
Чтобы получить более подробную информацию об учетной записи службы, выполните:
$ kubectl describe serviceaccounts.
Чтобы удалить учетную запись службы, используйте следующий синтаксис.
$ kubectl delete serviceaccounts
Пространства имен представляют собой единицы, которые предоставляют средства, с помощью которых один кластер может быть далее подразделен на несколько подкластеров, которыми затем можно управлять по отдельности.
Чтобы получить список пространств имен, выполните:
$ kubectl get namespaces.
Чтобы отобразить подробную информацию о пространстве имен, используйте синтаксис:
$ kubectl describe namespace
Чтобы создать пространство имен, выполните команду:
$ kubectl create namespace
Чтобы отредактировать или изменить пространство имен, выполните команду:
$ kubectl edit namespace
Чтобы отобразить использование ресурсов пространства имен, выполните:
$ kubectl top namespace
Чтобы удалить пространство имен, выполните команду:
$ kubectl delete namespace
В Кубернетес, секреты это объект, который содержит важную и конфиденциальную информацию, такую как имена пользователей и пароли.
Чтобы просмотреть существующие секреты, выполните команду:
$ kubectl get secret.
Чтобы просмотреть подробную информацию о существующих секретах, выполните:
$ kubectl describe secrets.
Чтобы создать секрет, запустите
$ kubectl create secret [flags] [options]
Чтобы удалить секрет, запустите:
$ kubectl delete secret
А развертывание — это объект, который позволяет вам объявить желаемое состояние вашего приложения. Вы можете определить количество реплик, образ для модулей, количество модулей и другие ресурсы.
Чтобы получить количество развертываний, выполните команду:
$ kubectl get deployment.
Перечислите подробное состояние конкретного развертывания.
$ kubectl describe deployment
Чтобы удалить развертывание, выполните команду:
$ kubectl delete deployment
Чтобы создать новое развертывание, выполните команду:
$ kubectl create deployment
В Кубернетес, ан событие — это объект, который генерируется в ответ на изменение состояния ресурса, такого как модуль, контейнер или узел. Хорошим примером является изменение состояния пода с «ожидание» на «работает» или с «успешно» на «сбой».
Чтобы вывести список всех событий, запустите:
$ kubectl get events.
Чтобы вывести список событий, но исключить события модуля, выполните команду:
$ kubectl get events --field-selector involvedObject.kind!=Pod.
Чтобы перечислить события вместе с их отметками времени и отсортировать по времени создания, запустите:
$ kubectl get events --sort-by=.metadata.creationTimestamp.
Журналы имеют решающее значение для записи событий кластера и помогают в отладке и устранении неполадок. Вы можете просмотреть или настроить детализацию журнала с помощью следующих команд:
Чтобы распечатать журналы для конкретного запуска модуля:
$ kubectl logs
Чтобы распечатать, а также следить за журналами в реальном времени для определенного модуля, выполните:
$ kubectl logs -f
Чтобы распечатать журналы для модуля за последние X часов, скажем, 3 часа, запустите:
$ kubectl logs --since=3h
Чтобы распечатать журналы для определенного контейнера внутри модуля, запустите
$ kubectl logs -c
Создайте последние 20 строк журналов
$ kubectl logs --tail=20
Создайте журналы модуля и сохраните журналы в файле журнала с именем pod.log.
$ kubectl logspod.log.
Это был общий обзор некоторых из наиболее часто используемых кубектл команды для администрирования Кубернетес кластер.