--- reviewers: - hw-qiaolei title: Обзор kubectl content_type: concept weight: 20 card: name: reference weight: 20 --- Kubectl — это инструмент командной строки для управления кластерами Kubernetes. `kubectl` ищет файл config в директории $HOME/.kube. Вы можете указать другие файлы [kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/), установив переменную окружения KUBECONFIG или флаг [`--kubeconfig`](/docs/concepts/configuration/organize-cluster-access-kubeconfig/). На этой странице рассматривается синтаксис kubectl, описаны командные операции и приведены распространённые примеры. Подробную информацию о каждой команде, включая все поддерживаемые в ней флаги и подкоманды, смотрите в справочной документации [kubectl](/docs/reference/generated/kubectl/kubectl-commands/). Инструкции по установке находятся на странице [Установка и настройка kubectl](/ru/docs/tasks/kubectl/install/). ## Синтаксис Используйте следующий синтаксис для выполнения команд `kubectl` в терминале: ```shell kubectl [command] [TYPE] [NAME] [flags] ``` где `command`, `TYPE`, `NAME` и `flags`: * `command`: определяет выполняемую операцию с одним или несколькими ресурсами, например, `create`, `get`, `describe`, `delete`. * `TYPE`: определяет [тип ресурса](#типы-ресурсов). Типы ресурсов не чувствительны к регистру, кроме этого вы можете использовать единственную, множественную или сокращенную форму. Например, следующие команды выведут одно и то же. ```shell kubectl get pod pod1 kubectl get pods pod1 kubectl get po pod1 ``` * `NAME`: определяет имя ресурса. Имена чувствительны к регистру. Если имя не указано, то отображаются подробности по всем ресурсам, например, `kubectl get pods`. При выполнении операции с несколькими ресурсами можно выбрать каждый ресурс по типу и имени, либо сделать это в одном или нескольких файлов: * Выбор ресурсов по типу и имени: * Сгруппировать ресурсы, если все они одного типа: `TYPE1 name1 name2 name<#>`.
Пример: `kubectl get pod example-pod1 example-pod2` * Выбор нескольких типов ресурсов по отдельности: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`.
Пример: `kubectl get pod/example-pod1 replicationcontroller/example-rc1` * Выбор ресурсов по одному или нескольким файлов: `-f file1 -f file2 -f file<#>` * [Используйте YAML вместо JSON](/docs/concepts/configuration/overview/#general-configuration-tips), так так YAML удобнее для пользователей, особенно в конфигурационных файлов.
Пример: `kubectl get pod -f ./pod.yaml` * `flags`: определяет дополнительные флаги. Например, вы можете использовать флаги `-s` или `--server`, чтобы указать адрес и порт API-сервера Kubernetes.
{{< caution >}} Указанные вами флаги из командной строки переопределят значения по умолчанию и связанные переменные окружения. {{< /caution >}} Если вам нужна помощь, выполните команду `kubectl help`. ## Операции В следующей таблице приведены краткие описания и общий синтаксис всех операций `kubectl`: Операция | Синтаксис | Описание -------------------- | -------------------- | -------------------- `annotate` | kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] | Добавить или обновить аннотации одного или нескольких ресурсов. `api-versions` | `kubectl api-versions [flags]` | Вывести доступные версии API. `apply` | `kubectl apply -f FILENAME [flags]`| Внести изменения в конфигурацию ресурса из файла или потока stdin. `attach` | `kubectl attach POD -c CONTAINER [-i] [-t] [flags]` | Подключиться к запущенному контейнеру либо для просмотра потока вывода, либо для работы с контейнером (stdin). `autoscale` | kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] | Автоматически промасштабировать набор подов, управляемых контроллером репликации. `cluster-info` | `kubectl cluster-info [flags]` | Показать информацию о главном узле и сервисах в кластере. `config` | `kubectl config SUBCOMMAND [flags]` | Изменить файлы kubeconfig. Подробные сведения смотрите в отдельных подкомандах. `create` | `kubectl create -f FILENAME [flags]` | Создать один или несколько ресурсов из файла или stdin. `delete` | kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags] | Удалить ресурсы из файла, потока stdin, либо с помощью селекторов меток, имен, селекторов ресурсов или ресурсов. `describe` | kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] | Показать подробное состояние одного или нескольких ресурсов. `diff` | `kubectl diff -f FILENAME [flags]`| Diff file or stdin against live configuration (**BETA**) `edit` | kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags] | Отредактировать и обновить определение одного или нескольких ресурсов на сервере, используя редактор по умолчанию. `exec` | `kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]` | Выполнить команду в контейнере пода. `explain` | `kubectl explain [--recursive=false] [flags]` | Посмотреть документацию по ресурсам. Например, поды, узлы, сервисы и т.д. `expose` | kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags] | Создать Kubernetes-сервис из контроллера репликации, сервиса или пода. `get` | kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags] | Вывести один или несколько ресурсов. `label` | kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] | Добавить или обновить метки для одного или нескольких ресурсов. `logs` | `kubectl logs POD [-c CONTAINER] [--follow] [flags]` | Вывести логи контейнера в поде. `patch` | kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags] | Обновить один или несколько полей ресурса, используя стратегию слияния патча. `port-forward` | `kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]` | Переадресовать один или несколько локальных портов в под. `proxy` | `kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]` | Запустить прокси для API Kubernetes. `replace` | `kubectl replace -f FILENAME` | Заменить ресурс из файла или потока stdin. `rolling-update` | kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [flags] | Выполните плавающее обновление, постепенно заменяя указанный контроллер репликации и его поды. `run` | `kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags]` | Запустить указанный образ в кластере. `scale` | kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags] | Обновить размер указанного контроллера репликации. `version` | `kubectl version [--client] [flags]` | Отобразить версию Kubernetes, запущенного на клиенте и сервере. Примечание: подробную информацию о командных операциях смотрите в справочную документацию [kubectl](/ru/docs/user-guide/kubectl/). ## Типы ресурсов В следующей таблице перечислены все доступные типы ресурсов вместе с сокращенными аббревиатурами. (Это актуальный вывод команды `kubectl api-resources` с версии Kubernetes 1.13.3.) | Resource Name | Short Names | API Group | Namespaced | Resource Kind | |---|---|---|---|---| | `bindings` | | | true | Binding| | `componentstatuses` | `cs` | | false | ComponentStatus | | `configmaps` | `cm` | | true | ConfigMap | | `endpoints` | `ep` | | true | Endpoints | | `limitranges` | `limits` | | true | LimitRange | | `namespaces` | `ns` | | false | Namespace | | `nodes` | `no` | | false | Node | | `persistentvolumeclaims` | `pvc` | | true | PersistentVolumeClaim | | `persistentvolumes` | `pv` | | false | PersistentVolume | | `pods` | `po` | | true | Pod | | `podtemplates` | | | true | PodTemplate | | `replicationcontrollers` | `rc` | | true| ReplicationController | | `resourcequotas` | `quota` | | true | ResourceQuota | | `secrets` | | | true | Secret | | `serviceaccounts` | `sa` | | true | ServiceAccount | | `services` | `svc` | | true | Service | | `mutatingwebhookconfigurations` | | admissionregistration.k8s.io | false | MutatingWebhookConfiguration | | `validatingwebhookconfigurations` | | admissionregistration.k8s.io | false | ValidatingWebhookConfiguration | | `customresourcedefinitions` | `crd`, `crds` | apiextensions.k8s.io | false | CustomResourceDefinition | | `apiservices` | | apiregistration.k8s.io | false | APIService | | `controllerrevisions` | | apps | true | ControllerRevision | | `daemonsets` | `ds` | apps | true | DaemonSet | | `deployments` | `deploy` | apps | true | Deployment | | `replicasets` | `rs` | apps | true | ReplicaSet | | `statefulsets` | `sts` | apps | true | StatefulSet | | `tokenreviews` | | authentication.k8s.io | false | TokenReview | | `localsubjectaccessreviews` | | authorization.k8s.io | true | LocalSubjectAccessReview | | `selfsubjectaccessreviews` | | authorization.k8s.io | false | SelfSubjectAccessReview | | `selfsubjectrulesreviews` | | authorization.k8s.io | false | SelfSubjectRulesReview | | `subjectaccessreviews` | | authorization.k8s.io | false | SubjectAccessReview | | `horizontalpodautoscalers` | `hpa` | autoscaling | true | HorizontalPodAutoscaler | | `cronjobs` | `cj` | batch | true | CronJob | | `jobs` | | batch | true | Job | | `certificatesigningrequests` | `csr` | certificates.k8s.io | false | CertificateSigningRequest | | `leases` | | coordination.k8s.io | true | Lease | | `events` | `ev` | events.k8s.io | true | Event | | `ingresses` | `ing` | extensions | true | Ingress | | `networkpolicies` | `netpol` | networking.k8s.io | true | NetworkPolicy | | `poddisruptionbudgets` | `pdb` | policy | true | PodDisruptionBudget | | `podsecuritypolicies` | `psp` | policy | false | PodSecurityPolicy | | `clusterrolebindings` | | rbac.authorization.k8s.io | false | ClusterRoleBinding | | `clusterroles` | | rbac.authorization.k8s.io | false | ClusterRole | | `rolebindings` | | rbac.authorization.k8s.io | true | RoleBinding | | `roles` | | rbac.authorization.k8s.io | true | Role | | `priorityclasses` | `pc` | scheduling.k8s.io | false | PriorityClass | | `csidrivers` | | storage.k8s.io | false | CSIDriver | | `csinodes` | | storage.k8s.io | false | CSINode | | `storageclasses` | `sc` | storage.k8s.io | false | StorageClass | | `volumeattachments` | | storage.k8s.io | false | VolumeAttachment | ## Опции вывода В следующих разделах рассматривается форматирование и сортировка вывода определенных команд. Дополнительные сведения о том, какие команды поддерживают разные варианты вывода, смотрите в справочной документации [kubectl](/ru/docs/user-guide/kubectl/). ### Форматирование вывода Стандартный формат вывода всех команд `kubectl` представлен в человекочитаемом текстовом формате. Чтобы вывести подробности в определенном формате можно добавить флаги `-o` или `--output` к команде `kubectl`. #### Синтаксис ```shell kubectl [command] [TYPE] [NAME] -o ``` В зависимости от операции `kubectl` поддерживаются следующие форматы вывода: Выходной формат | Описание --------------| ----------- `-o custom-columns=` | Вывести таблицу с использованием списка [пользовательских столбцов](#пользовательские-столбцы), разделённого запятыми. `-o custom-columns-file=` | Вывести таблицу с использованием шаблона с [пользовательскими столбцами](#пользовательские-столбцы) в файле ``. `-o json` | Вывести API-объект в формате JSON. `-o jsonpath=