⚠️ Эта страница устарела и будет удалена в одном из будущих выпусков.
Используйте новую справочную документацию kubectl. Чтобы просмотреть её на одной странице, см. версию для печати.
НАЧАЛО РАБОТЫ
В этом разделе описаны основные команды для запуска рабочей нагрузки в кластере.
-
runзапустит в кластере один или несколько экземпляров образа контейнера. -
exposeраспределит трафик между запущенными экземплярами и может создать прокси-сервер высокой доступности для доступа к контейнерам извне кластера.
После запуска рабочих нагрузок можно использовать команды из раздела РАБОТА С ПРИЛОЖЕНИЯМИ, чтобы проверить их.
create
Создать pod, используя данные из pod.json
kubectl create -f ./pod.json
Создать pod на основе JSON, переданного через stdin
cat pod.json | kubectl create -f -
Отредактировать данные в registry.yaml в формате JSON, а затем создать ресурс, используя отредактированные данные
kubectl create -f registry.yaml --edit -o json
Создать ресурс из файла или из stdin.
Поддерживаются форматы JSON и YAML.
Использование
$ kubectl create -f FILENAME
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| edit | false | Отредактировать ресурс API перед созданием | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, используемых для создания ресурса |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| raw | Исходный URI для отправки POST-запроса на сервер. Используется транспорт, указанный в файле kubeconfig. | ||
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, команда не записывается. Если задано значение true, команда записывается. Если значение не задано, по умолчанию существующее значение аннотации обновляется, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, организованными в одном каталоге. |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнять kubectl apply для этого объекта. | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются операторы '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Допустимые значения: strict (или true), warn, ignore (или false). Значение "true" или "strict" означает, что для проверки входных данных будет использоваться схема, а при обнаружении ошибки запрос будет отклонён. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" означает, что неизвестные или дублирующиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно будет работать как "ignore". Значение "false" или "ignore" означает, что проверка по схеме не выполняется, а все неизвестные или дублирующиеся поля молча отбрасываются. | |
| windows-line-endings | false | Имеет значение только при --edit=true. По умолчанию используются окончания строк, принятые на вашей платформе. |
clusterrole
Создать роль кластера с именем "pod-reader", которая разрешает пользователю выполнять операции "get", "watch" и "list" над pod
kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods
Создать роль кластера с именем "pod-reader" и указанным ResourceName
kubectl create clusterrole pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod
Создать роль кластера с именем "foo" и указанной группой API
kubectl create clusterrole foo --verb=get,list,watch --resource=rs.apps
Создать роль кластера с именем "foo" и указанным SubResource
kubectl create clusterrole foo --verb=get,list,watch --resource=pods,pods/status
Создать роль кластера с именем "foo" и указанным NonResourceURL
kubectl create clusterrole "foo" --verb=get --non-resource-url=/logs/*
Создать роль кластера с именем "monitoring" и указанным AggregationRule
kubectl create clusterrole monitoring --aggregation-rule="rbac.example.com/aggregate-to-monitoring=true"
Создать роль кластера.
Использование
$ kubectl create clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename] [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| aggregation-rule | Селектор меток для агрегирования ClusterRoles. | ||
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| non-resource-url | [] | Частичный URL, к которому пользователь должен иметь доступ. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| resource | [] | Ресурс, к которому применяется правило | |
| resource-name | [] | Ресурс из списка разрешённых, к которому применяется правило; для нескольких элементов укажите этот флаг несколько раз | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнять kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Допустимые значения: strict (или true), warn, ignore (или false). Значение "true" или "strict" означает, что для проверки входных данных будет использоваться схема, а при обнаружении ошибки запрос будет отклонён. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" означает, что неизвестные или дублирующиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно будет работать как "ignore". Значение "false" или "ignore" означает, что проверка по схеме не выполняется, а все неизвестные или дублирующиеся поля молча отбрасываются. | |
| verb | [] | Действие, применяемое к ресурсам, указанным в правиле |
clusterrolebinding
Создать привязку роли кластера для user1, user2 и group1, используя роль кластера cluster-admin
kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1
Создать привязку роли кластера для указанной роли кластера.
Использование
$ kubectl create clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| clusterrole | ClusterRole, на которую должна ссылаться эта ClusterRoleBinding | ||
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| group | [] | Группы, привязываемые к clusterrole. Чтобы добавить несколько групп, флаг можно указать несколько раз. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнять kubectl apply для этого объекта. | |
| serviceaccount | [] | Учётные записи служб, привязываемые к clusterrole, в формате <namespace>:<name>. Чтобы добавить несколько учётных записей служб, флаг можно указать несколько раз. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| user | [] | Имена пользователей, привязываемых к clusterrole. Чтобы добавить несколько пользователей, флаг можно указать несколько раз. | |
| validate | strict | Допустимые значения: strict (или true), warn, ignore (или false). Значение "true" или "strict" означает, что для проверки входных данных будет использоваться схема, а при обнаружении ошибки запрос будет отклонён. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" означает, что неизвестные или дублирующиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно будет работать как "ignore". Значение "false" или "ignore" означает, что проверка по схеме не выполняется, а все неизвестные или дублирующиеся поля молча отбрасываются. |
configmap
Создать новую карту конфигурации с именем my-config на основе папки bar
kubectl create configmap my-config --from-file=path/to/bar
Создать новую карту конфигурации с именем my-config, указав ключи вместо имён файлов на диске
kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt
Создать новую карту конфигурации с именем my-config и ключами key1=config1 и key2=config2
kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
Создать новую карту конфигурации с именем my-config на основе пар ключ=значение из файла
kubectl create configmap my-config --from-file=path/to/bar
Создать новую карту конфигурации с именем my-config на основе файла окружения
kubectl create configmap my-config --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env
Создать карту конфигурации на основе файла, каталога или указанного литерального значения.
Одна карта конфигурации может содержать одну или несколько пар ключ/значение.
При создании карты конфигурации на основе файла ключем по умолчанию будет имя файла без пути, а значением — содержимое файла. Если имя файла не является допустимым ключом, можно указать другой ключ.
При создании карты конфигурации на основе каталога в неё будут включены все файлы каталога, имена которых без пути являются допустимыми ключами. Все элементы каталога, кроме обычных файлов, игнорируются (например, подкаталоги, символические ссылки, устройства, каналы и т. д.).
Использование
$ kubectl create configmap NAME [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| append-hash | false | Добавить хеш configmap к его имени. | |
| dry-run | none | Должно быть указано одно из значений: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| from-env-file | [] | Укажите путь к файлу, из которого будут прочитаны строки с парами key=val для создания configmap. | |
| from-file | [] | Файл с ключом можно указать, задав путь к нему; в этом случае в качестве ключа configmap будет использовано базовое имя файла. Также можно указать ключ и путь к файлу — тогда будет использован заданный ключ. При указании каталога будут обработаны все файлы в нем, базовые имена которых являются допустимыми ключами configmap. | |
| from-literal | [] | Укажите ключ и буквальное значение для добавления в configmap (например, mykey=somevalue) | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" означают, что для проверки входных данных будет использоваться схема, а при обнаружении ошибок запрос будет отклонен. Если на api-server включена функция ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае поведение будет таким же, как у "ignore". "false" или "ignore" означают, что проверка по схеме выполняться не будет, а все неизвестные или повторяющиеся поля будут молча отбрасываться. |
cronjob
Создать задание cron
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *"
Создать задание cron с командой
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
Создать задание cron с указанным именем.
Использование
$ kubectl create cronjob NAME --image=image --schedule='0/5 * * * ?' -- [COMMAND] [args...]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано одно из значений: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| image | Имя запускаемого образа. | ||
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| restart | Политика перезапуска задания. Допустимые значения: OnFailure, Never | ||
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| schedule | Расписание в формате Cron, по которому должно запускаться задание. | ||
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" означают, что для проверки входных данных будет использоваться схема, а при обнаружении ошибок запрос будет отклонен. Если на api-server включена функция ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае поведение будет таким же, как у "ignore". "false" или "ignore" означают, что проверка по схеме выполняться не будет, а все неизвестные или повторяющиеся поля будут молча отбрасываться. |
deployment
Создать deployment с именем my-dep, запускающий образ busybox
kubectl create deployment my-dep --image=busybox
Создать deployment с командой
kubectl create deployment my-dep --image=busybox -- date
Создать deployment с именем my-dep, запускающий образ nginx с 3 репликами
kubectl create deployment my-dep --image=nginx --replicas=3
Создать deployment с именем my-dep, запускающий образ busybox и открывающий порт 5701
kubectl create deployment my-dep --image=busybox --port=5701
Создать deployment с указанным именем.
Использование
$ kubectl create deployment NAME --image=image -- [COMMAND] [args...]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано одно из значений: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| image | [] | Имена запускаемых образов. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| port | -1 | Порт, который открывает этот контейнер. | |
| replicas | r | 1 | Количество создаваемых реплик. По умолчанию — 1. |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" означают, что для проверки входных данных будет использоваться схема, а при обнаружении ошибок запрос будет отклонен. Если на api-server включена функция ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае поведение будет таким же, как у "ignore". "false" или "ignore" означают, что проверка по схеме выполняться не будет, а все неизвестные или повторяющиеся поля будут молча отбрасываться. |
ingress
Создать один ingress с именем 'simple', который направляет запросы к foo.com/bar на svc # svc1:8080 с TLS-секретом "my-cert"
kubectl create ingress simple --rule="foo.com/bar=svc1:8080,tls=my-cert"
Создать универсальный ingress для пути "/path", направляющий запросы к сервису svc:port, с классом Ingress "otheringress"
kubectl create ingress catch-all --class=otheringress --rule="/path=svc:port"
Создать ingress с двумя аннотациями: ingress.annotation1 и ingress.annotations2
kubectl create ingress annotated --class=default --rule="foo.com/bar=svc:port" \ --annotation ingress.annotation1=foo \ --annotation ingress.annotation2=bla
Создать ingress с одним хостом и несколькими путями
kubectl create ingress multipath --class=default \ --rule="foo.com/=svc:port" \ --rule="foo.com/admin/=svcadmin:portadmin"
Создать ingress с несколькими хостами и типом пути Prefix
kubectl create ingress ingress1 --class=default \ --rule="foo.com/path*=svc:8080" \ --rule="bar.com/admin*=svc2:http"
Создать ingress с включенным TLS, используя сертификат ingress по умолчанию и разные типы путей
kubectl create ingress ingtls --class=default \ --rule="foo.com/=svc:https,tls" \ --rule="foo.com/path/subpath*=othersvc:8080"
Создать ingress с включенным TLS, используя конкретный секрет и тип пути Prefix
kubectl create ingress ingsecret --class=default \ --rule="foo.com/*=svc:8080,tls=secret1"
Создать ingress с backend по умолчанию
kubectl create ingress ingdefault --class=default \ --default-backend=defaultsvc:http \ --rule="foo.com/*=svc:8080,tls=secret1"
Создать ingress с указанным именем.
Использование
$ kubectl create ingress NAME --rule=host/path=service:port[,tls[=secret]]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| annotation | [] | Аннотация для добавления в объект ingress в формате annotation=value | |
| class | Используемый класс Ingress | ||
| default-backend | Сервис по умолчанию для backend в формате svcname:port | ||
| dry-run | none | Должно быть указано одно из значений: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| rule | [] | Правило в формате host/path=service:port[,tls=secretname]. Пути, начинающиеся с символа '*', считаются pathType=Prefix. Аргумент tls необязателен. | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" означают, что для проверки входных данных будет использоваться схема, а при обнаружении ошибок запрос будет отклонен. Если на api-server включена функция ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае поведение будет таким же, как у "ignore". "false" или "ignore" означают, что проверка по схеме выполняться не будет, а все неизвестные или повторяющиеся поля будут молча отбрасываться. |
job
Создать задание
kubectl create job my-job --image=busybox
Создать задание с командой
kubectl create job my-job --image=busybox -- date
Создать задание на основе cron job с именем "a-cronjob"
kubectl create job test-job --from=cronjob/a-cronjob
Создать задание с указанным именем.
Использование
$ kubectl create job NAME --image=image [--from=cronjob/name] -- [COMMAND] [args...]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| from | Имя ресурса, на основе которого нужно создать Job (поддерживается только cronjob). | ||
| image | Имя запускаемого образа. | ||
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть задано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" используют схему для проверки входных данных и завершают запрос с ошибкой, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". "false" или "ignore" отключают проверку по схеме, незаметно отбрасывая все неизвестные или повторяющиеся поля. |
namespace
Создать пространство имен с именем my-namespace
kubectl create namespace my-namespace
Создать пространство имен с указанным именем.
Использование
$ kubectl create namespace NAME [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть задано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" используют схему для проверки входных данных и завершают запрос с ошибкой, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". "false" или "ignore" отключают проверку по схеме, незаметно отбрасывая все неизвестные или повторяющиеся поля. |
poddisruptionbudget
Создать бюджет disruption pod с именем my-pdb, который выберет все pod с меткой app=rails и потребует, чтобы хотя бы один из них был доступен в любой момент времени
kubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1
Создать бюджет disruption pod с именем my-pdb, который выберет все pod с меткой app=nginx и потребует, чтобы в любой момент времени были доступны не менее половины выбранных pod
kubectl create pdb my-pdb --selector=app=nginx --min-available=50%
Создать бюджет disruption pod с указанными именем, селектором и минимальным количеством доступных pod.
Использование
$ kubectl create poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| max-unavailable | Максимальное количество или процент недоступных pod, допускаемых этим бюджетом. | ||
| min-available | Минимальное количество или процент доступных pod, требуемых этим бюджетом. | ||
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| selector | Селектор меток для этого бюджета. Поддерживаются только требования селектора на основе равенства. | ||
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть задано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" используют схему для проверки входных данных и завершают запрос с ошибкой, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". "false" или "ignore" отключают проверку по схеме, незаметно отбрасывая все неизвестные или повторяющиеся поля. |
priorityclass
Создать класс приоритета с именем high-priority
kubectl create priorityclass high-priority --value=1000 --description="high priority"
Создать класс приоритета с именем default-priority, который будет считаться глобальным приоритетом по умолчанию
kubectl create priorityclass default-priority --value=1000 --global-default=true --description="default priority"
Создать класс приоритета с именем high-priority, который не может вытеснять pod с более низким приоритетом
kubectl create priorityclass high-priority --value=1000 --description="high priority" --preemption-policy="Never"
Создать класс приоритета с указанными именем, значением, параметром globalDefault и описанием.
Использование
$ kubectl create priorityclass NAME --value=VALUE --global-default=BOOL [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| description | description — произвольная строка, обычно содержащая рекомендации о том, когда следует использовать этот класс приоритета. | ||
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| global-default | false | global-default указывает, следует ли считать этот PriorityClass приоритетом по умолчанию. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| preemption-policy | PreemptLowerPriority | preemption-policy — политика вытеснения pod с более низким приоритетом. | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть задано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" используют схему для проверки входных данных и завершают запрос с ошибкой, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". "false" или "ignore" отключают проверку по схеме, незаметно отбрасывая все неизвестные или повторяющиеся поля. | |
| value | 0 | Значение этого класса приоритета. |
quota
Создать квоту ресурсов с именем my-quota
kubectl create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10
Создать квоту ресурсов с именем best-effort
kubectl create quota best-effort --hard=pods=100 --scopes=BestEffort
Создать квоту ресурсов с указанными именем, жесткими ограничениями и необязательными областями действия.
Использование
$ kubectl create quota NAME [--hard=key1=value1,key2=value2] [--scopes=Scope1,Scope2] [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| hard | Набор пар resource=quantity, разделенных запятыми, которые задают жесткое ограничение. | ||
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| scopes | Набор областей действия квоты, разделенных запятыми. Все они должны соответствовать каждому объекту, отслеживаемому квотой. | ||
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть задано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" используют схему для проверки входных данных и завершают запрос с ошибкой, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". "false" или "ignore" отключают проверку по схеме, незаметно отбрасывая все неизвестные или повторяющиеся поля. |
role
Создать роль с именем "pod-reader", которая разрешает пользователю выполнять для pod операции "get", "watch" и "list"
kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods
Создать роль с именем "pod-reader" с указанным ResourceName
kubectl create role pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod
Создать роль с именем "foo" с указанной группой API
kubectl create role foo --verb=get,list,watch --resource=rs.apps
Создать роль с именем "foo" с указанным SubResource
kubectl create role foo --verb=get,list,watch --resource=pods,pods/status
Создать роль с одним правилом.
Использование
$ kubectl create role NAME --verb=verb --resource=resource.group/subresource [--resource-name=resourcename] [--dry-run=server|client|none]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать все ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| resource | [] | Ресурс, к которому применяется правило | |
| resource-name | [] | Ресурс из белого списка, к которому применяется правило; укажите этот флаг несколько раз для нескольких элементов | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" означает, что для проверки входных данных будет использоваться схема и запрос будет отклонён, если данные недействительны. Если на api-server включена ServerSideFieldValidation, будет выполняться проверка на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае поведение будет таким же, как при "ignore". "false" или "ignore" означает, что проверка по схеме выполняться не будет, а неизвестные или повторяющиеся поля будут молча отбрасываться. | |
| verb | [] | Глагол, применяемый к ресурсам, содержащимся в правиле |
rolebinding
Создать привязку роли для user1, user2 и group1, используя кластерную роль admin
kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
Создать привязку роли для определённой роли или кластерной роли.
Использование
$ kubectl create rolebinding NAME --clusterrole=NAME|--role=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать все ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| clusterrole | ClusterRole, на которую должна ссылаться эта RoleBinding | ||
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| group | [] | Группы, которым назначается роль. Чтобы добавить несколько групп, флаг можно указать несколько раз. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| role | Role, на которую должна ссылаться эта RoleBinding | ||
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| serviceaccount | [] | Сервисные учётные записи, которым назначается роль; формат: <namespace>:<name>. Чтобы добавить несколько сервисных учётных записей, флаг можно указать несколько раз. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| user | [] | Имена пользователей, которым назначается роль. Чтобы добавить несколько пользователей, флаг можно указать несколько раз. | |
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" означает, что для проверки входных данных будет использоваться схема и запрос будет отклонён, если данные недействительны. Если на api-server включена ServerSideFieldValidation, будет выполняться проверка на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае поведение будет таким же, как при "ignore". "false" или "ignore" означает, что проверка по схеме выполняться не будет, а неизвестные или повторяющиеся поля будут молча отбрасываться. |
secret
Создать секрет с помощью указанной подкоманды.
Использование
$ kubectl create secret
secret docker-registry
Если у вас ещё нет файла .dockercfg, вы можете создать секрет dockercfg напрямую с помощью следующей команды:
kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
Создать секрет с именем my-secret из ~/.docker/config.json
kubectl create secret docker-registry my-secret --from-file=.dockerconfigjson=path/to/.docker/config.json
Создать новый секрет для использования с реестрами Docker.
Секреты Dockercfg используются для аутентификации в реестрах Docker.
При отправке образов с помощью командной строки Docker для аутентификации в определённом реестре выполните: '$ docker login DOCKER_REGISTRY_SERVER --username=DOCKER_USER --password=DOCKER_PASSWORD --email=DOCKER_EMAIL'.
В результате будет создан файл ~/.dockercfg, который используется последующими командами 'docker push' и 'docker pull' для аутентификации в реестре. Адрес электронной почты указывать необязательно.
При создании приложений может потребоваться использовать реестр Docker, для которого нужна аутентификация. Чтобы узлы могли загружать образы от вашего имени, им необходимы учётные данные. Эту информацию можно предоставить, создав секрет dockercfg и добавив его в сервисную учётную запись.
Использование
$ kubectl create secret docker-registry NAME --docker-username=user --docker-password=password --docker-email=email [--docker-server=string] [--from-file=[key=]source] [--dry-run=server|client|none]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать все ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| append-hash | false | Добавить хеш секрета к его имени. | |
| docker-email | Адрес электронной почты для реестра Docker | ||
| docker-password | Пароль для аутентификации в реестре Docker | ||
| docker-server | https://index.docker.io/v1/ | Адрес сервера реестра Docker | |
| docker-username | Имя пользователя для аутентификации в реестре Docker | ||
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| from-file | [] | Файлы ключей можно указать с помощью пути к файлу; в этом случае им будет присвоено имя по умолчанию. Также можно указать имя и путь к файлу — тогда будет использовано заданное имя. При указании каталога будут обработаны все находящиеся в нём файлы с допустимыми ключами секрета. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). "true" или "strict" означает, что для проверки входных данных будет использоваться схема и запрос будет отклонён, если данные недействительны. Если на api-server включена ServerSideFieldValidation, будет выполняться проверка на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае поведение будет таким же, как при "ignore". "false" или "ignore" означает, что проверка по схеме выполняться не будет, а неизвестные или повторяющиеся поля будут молча отбрасываться. |
secret generic
Создать секрет с именем my-secret, добавив в него ключ для каждого файла в каталоге bar
kubectl create secret generic my-secret --from-file=path/to/bar
Создать секрет с именем my-secret, указав ключи вместо имён файлов на диске
kubectl create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-file=ssh-publickey=path/to/id_rsa.pub
Создать секрет с именем my-secret с key1=supersecret и key2=topsecret
kubectl create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret
Создать секрет с именем my-secret, используя сочетание файла и литерального значения
kubectl create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-literal=passphrase=topsecret
Создать секрет с именем my-secret из файлов окружения
kubectl create secret generic my-secret --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env
Создать секрет на основе файла, каталога или заданного литерального значения.
Один секрет может содержать одну или несколько пар ключ/значение.
При создании секрета на основе файла ключем по умолчанию будет базовое имя файла, а значением — его содержимое. Если базовое имя недопустимо в качестве ключа или вы хотите задать собственное имя, можно указать другой ключ.
При создании секрета на основе каталога в секрет будут включены все файлы каталога, базовые имена которых являются допустимыми ключами. Все элементы каталога, кроме обычных файлов, игнорируются (например, подкаталоги, символические ссылки, устройства, каналы и т. д.).
Использование
$ kubectl create secret generic NAME [--type=string] [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run=server|client|none]
Флаги
| Название | Краткое имя | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| append-hash | false | Добавить хеш секрета к его имени. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| from-env-file | [] | Указать путь к файлу, из которого будут прочитаны строки с парами key=val для создания секрета. | |
| from-file | [] | Файлы ключей можно указать по их пути: в этом случае им будет присвоено имя по умолчанию. При желании можно указать имя и путь к файлу — тогда будет использоваться заданное имя. Если указать каталог, будут обработаны все именованные файлы в нём, которые являются допустимыми ключами секрета. | |
| from-literal | [] | Указать ключ и буквальное значение для добавления в секрет (например, mykey=somevalue) | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| type | Тип создаваемого секрета | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). Значение "true" или "strict" использует схему для проверки входных данных и отклоняет запрос, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера, в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно действует как "ignore". Значение "false" или "ignore" отключает проверку по схеме и без предупреждения отбрасывает неизвестные или повторяющиеся поля. |
secret tls
Создать новый TLS-секрет с именем tls-secret из указанной пары ключей
kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key
Создать TLS-секрет из указанной пары открытого и закрытого ключей.
Пара открытого и закрытого ключей должна существовать заранее. Сертификат открытого ключа должен быть закодирован в формате .PEM и соответствовать указанному закрытому ключу.
Использование
$ kubectl create secret tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run=server|client|none]
Флаги
| Название | Краткое имя | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| append-hash | false | Добавить хеш секрета к его имени. | |
| cert | Путь к сертификату открытого ключа в формате PEM. | ||
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| key | Путь к закрытому ключу, соответствующему указанному сертификату. | ||
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). Значение "true" или "strict" использует схему для проверки входных данных и отклоняет запрос, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера, в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно действует как "ignore". Значение "false" или "ignore" отключает проверку по схеме и без предупреждения отбрасывает неизвестные или повторяющиеся поля. |
service
Создать сервис с помощью указанной подкоманды.
Использование
$ kubectl create service
service clusterip
Создать новый сервис ClusterIP с именем my-cs
kubectl create service clusterip my-cs --tcp=5678:8080
Создать новый сервис ClusterIP с именем my-cs (в режиме без головного узла)
kubectl create service clusterip my-cs --clusterip="None"
Создать сервис ClusterIP с указанным именем.
Использование
$ kubectl create service clusterip NAME [--tcp=<port>:<targetPort>] [--dry-run=server|client|none]
Флаги
| Название | Краткое имя | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| clusterip | Назначить собственный ClusterIP или указать 'None' для сервиса без головного узла (без балансировки нагрузки). | ||
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| tcp | [] | Пары портов можно указать в формате '<port>:<targetPort>'. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). Значение "true" или "strict" использует схему для проверки входных данных и отклоняет запрос, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера, в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно действует как "ignore". Значение "false" или "ignore" отключает проверку по схеме и без предупреждения отбрасывает неизвестные или повторяющиеся поля. |
service externalname
Создать новый сервис ExternalName с именем my-ns
kubectl create service externalname my-ns --external-name bar.com
Создать сервис ExternalName с указанным именем.
Сервис ExternalName ссылается на внешний DNS-адрес, а не только на поды, что позволяет авторам приложений обращаться к сервисам, размещённым вне платформы, в других кластерах или локально.
Использование
$ kubectl create service externalname NAME --external-name external.name [--dry-run=server|client|none]
Флаги
| Название | Краткое имя | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| external-name | Внешнее имя сервиса | ||
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| tcp | [] | Пары портов можно указать в формате '<port>:<targetPort>'. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). Значение "true" или "strict" использует схему для проверки входных данных и отклоняет запрос, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера, в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно действует как "ignore". Значение "false" или "ignore" отключает проверку по схеме и без предупреждения отбрасывает неизвестные или повторяющиеся поля. |
service loadbalancer
Создать новый сервис LoadBalancer с именем my-lbs
kubectl create service loadbalancer my-lbs --tcp=5678:8080
Создать сервис LoadBalancer с указанным именем.
Использование
$ kubectl create service loadbalancer NAME [--tcp=port:targetPort] [--dry-run=server|client|none]
Флаги
| Название | Краткое имя | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| tcp | [] | Пары портов можно указать в формате '<port>:<targetPort>'. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). Значение "true" или "strict" использует схему для проверки входных данных и отклоняет запрос, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера, в противном случае будет использоваться менее надёжная проверка на стороне клиента. Значение "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае оно действует как "ignore". Значение "false" или "ignore" отключает проверку по схеме и без предупреждения отбрасывает неизвестные или повторяющиеся поля. |
service nodeport
Создать новый сервис NodePort с именем my-ns
kubectl create service nodeport my-ns --tcp=5678:8080
Создайте службу NodePort с указанным именем.
Использование
$ kubectl create service nodeport NAME [--tcp=port:targetPort] [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано «none», «server» или «client». При стратегии client вывести только объект, который был бы отправлен, не отправляя его. При стратегии server отправить запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя диспетчера, используемого для отслеживания владения полями. | |
| node-port | 0 | Порт, используемый для доступа к службе на каждом узле кластера. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| tcp | [] | Пары портов можно указать в формате «<port>:<targetPort>». | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template или -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). «true» или «strict» означает, что для проверки входных данных будет использоваться схема, а запрос с недопустимыми данными завершится ошибкой. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. «warn» означает, что при включённой проверке полей на стороне сервера API-сервер выдаст предупреждение о неизвестных или повторяющихся полях, не блокируя запрос; в противном случае поведение будет таким же, как при значении «ignore». «false» или «ignore» означает, что проверка по схеме выполняться не будет, а все неизвестные или повторяющиеся поля будут молча отброшены. |
serviceaccount
Создайте учётную запись службы с именем my-service-account
kubectl create serviceaccount my-service-account
Создайте учётную запись службы с указанным именем.
Использование
$ kubectl create serviceaccount NAME [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано «none», «server» или «client». При стратегии client вывести только объект, который был бы отправлен, не отправляя его. При стратегии server отправить запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-create | Имя диспетчера, используемого для отслеживания владения полями. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы захотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template или -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть указано одно из значений: strict (или true), warn, ignore (или false). «true» или «strict» означает, что для проверки входных данных будет использоваться схема, а запрос с недопустимыми данными завершится ошибкой. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. «warn» означает, что при включённой проверке полей на стороне сервера API-сервер выдаст предупреждение о неизвестных или повторяющихся полях, не блокируя запрос; в противном случае поведение будет таким же, как при значении «ignore». «false» или «ignore» означает, что проверка по схеме выполняться не будет, а все неизвестные или повторяющиеся поля будут молча отброшены. |
token
Запросите токен для аутентификации в kube-apiserver от имени учётной записи службы «myapp» в текущем пространстве имён
kubectl create token myapp
Запросите токен для учётной записи службы в пользовательском пространстве имён
kubectl create token myapp --namespace myns
Запросите токен с пользовательским сроком действия
kubectl create token myapp --duration 10m
Запросите токен с пользовательской аудиторией
kubectl create token myapp --audience https://example.com
Запросите токен, связанный с экземпляром объекта Secret
kubectl create token myapp --bound-object-kind Secret --bound-object-name mysecret
Запросите токен, связанный с экземпляром объекта Secret с определённым uid
kubectl create token myapp --bound-object-kind Secret --bound-object-name mysecret --bound-object-uid 0d4691ed-659b-4935-a832-355f77ee47cc
Запросите токен учётной записи службы.
Использование
$ kubectl create token SERVICE_ACCOUNT_NAME
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| audience | [] | Аудитория запрашиваемого токена. Если не задана, по умолчанию запрашивается токен для использования с сервером API Kubernetes. Можно указать несколько значений, чтобы запросить токен, действительный для нескольких аудиторий. | |
| bound-object-kind | Тип объекта, с которым связывается токен. Поддерживаются типы Pod и Secret. Если указано это значение, необходимо задать --bound-object-name. | ||
| bound-object-name | Имя объекта, с которым связывается токен. Срок действия токена истечёт при удалении объекта. Требуется --bound-object-kind. | ||
| bound-object-uid | UID объекта, с которым связывается токен. Требуются --bound-object-kind и --bound-object-name. Если значение не задано, используется UID существующего объекта. | ||
| duration | 0s | Запрашиваемый срок действия выданного токена. Сервер может вернуть токен с более длительным или коротким сроком действия. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template или -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
get
Выведите список всех pod в формате вывода ps
kubectl get pods
Выведите список всех pod в формате вывода ps с дополнительной информацией (например, именем узла)
kubectl get pods -o wide
Выведите список одного контроллера репликации с указанным NAME в формате вывода ps
kubectl get replicationcontroller web
Выведите список развёртываний в формате JSON, в версии «v1» группы API «apps»
kubectl get deployments.v1.apps -o json
Выведите один pod в формате JSON
kubectl get -o json pod web-pod-13je7
Выведите ресурс типа pod с именем, указанным в «pod.yaml», в формате JSON
kubectl get -f pod.yaml -o json
Выведите список ресурсов из каталога с файлом kustomization.yaml, например dir/kustomization.yaml
kubectl get -k dir/
Выведите только значение фазы указанного pod
kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}} Выведите сведения о ресурсах в пользовательских столбцах
kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image
Выведите список всех контроллеров репликации и служб вместе в формате вывода ps
kubectl get rc,services
Выведите список одного или нескольких ресурсов по их типу и именам
kubectl get rc/web service/frontend pods/web-pod-13je7
Выведите подресурс status для одного pod.
kubectl get pod web-pod-13je7 --subresource status
Отобразите один или несколько ресурсов.
Выводит таблицу с наиболее важной информацией об указанных ресурсах. Список можно отфильтровать с помощью селектора меток и флага --selector. Если указанный тип ресурса относится к пространству имён, вы увидите результаты только для текущего пространства имён, если не укажете --all-namespaces.
Указав формат вывода «template» и передав шаблон Go в качестве значения флага --template, можно отфильтровать атрибуты полученных ресурсов.
Используйте «kubectl api-resources», чтобы просмотреть полный список поддерживаемых ресурсов.
Использование
$ kubectl get [(-o|--output=)json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file|custom-columns|custom-columns-file|wide] (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| all-namespaces | A | false | Если указан этот параметр, вывести запрошенный объект или объекты во всех пространствах имён. Пространство имён в текущем контексте игнорируется, даже если указано с помощью --namespace. |
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии в шаблоне поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| chunk-size | 500 | Возвращать большие списки частями, а не целиком. Передайте 0, чтобы отключить эту функцию. Этот параметр находится на стадии бета-тестирования и может измениться в будущем. | |
| field-selector | Селектор (запрос по полям) для фильтрации; поддерживаются '=', '==' и '!=' (например, --field-selector key1=value1,key2=value2). Сервер поддерживает лишь ограниченное количество запросов по полям для каждого типа. | ||
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, который нужно получить с сервера. |
| ignore-not-found | false | Если запрошенный объект не существует, команда вернёт код завершения 0. | |
| kustomize | k | Обработать каталог kustomization. Этот параметр нельзя использовать вместе с -f или -R. | |
| label-columns | L | [] | Принимает список меток, разделённых запятыми, которые будут отображаться в виде столбцов. Имена чувствительны к регистру. Можно также указать несколько параметров, например -L label1 -L label2... |
| no-headers | false | При использовании формата вывода по умолчанию или формата с пользовательскими столбцами не выводить заголовки (по умолчанию заголовки выводятся). | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file, custom-columns, custom-columns-file, wide). См. пользовательские столбцы [https://kubernetes.io/docs/reference/kubectl/#custom-columns], шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview] и шаблоны jsonpath [https://kubernetes.io/docs/reference/kubectl/jsonpath/]. | |
| output-watch-events | false | Выводить объекты событий наблюдения при использовании --watch или --watch-only. Существующие объекты выводятся как начальные события ADDED. | |
| raw | URI запроса к серверу без обработки. Используется транспорт, указанный в файле kubeconfig. | ||
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Все подходящие объекты должны удовлетворять всем заданным ограничениям меток. | |
| server-print | true | Если значение true, сервер возвращает соответствующий вывод в виде таблицы. Поддерживаются API расширений и CRD. | |
| show-kind | false | Если указан этот параметр, вывести тип запрошенного объекта или объектов. | |
| show-labels | false | При выводе отображать все метки в последнем столбце (по умолчанию столбец с метками скрыт). | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| sort-by | Если значение не пустое, сортировать списки по заданной спецификации поля. Спецификация поля задаётся выражением JSONPath (например, '{.metadata.name}'). Поле ресурса API, указанное этим выражением JSONPath, должно быть целым числом или строкой. | ||
| subresource | Если указан этот параметр, получить подресурс запрошенного объекта. Допустимые значения: [status scale]. Этот параметр находится на стадии альфа-тестирования и может измениться в будущем. | ||
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| use-openapi-print-columns | false | Если значение true, использовать метаданные x-kubernetes-print-column (если они есть) из схемы OpenAPI для отображения ресурса. | |
| watch | w | false | После вывода списка или получения запрошенного объекта отслеживать изменения. |
| watch-only | false | Отслеживать изменения запрошенного объекта или объектов, не выводя список и не получая их предварительно. |
run
Запустить pod nginx
kubectl run nginx --image=nginx
Запустить pod hazelcast и открыть порт 5701 контейнера
kubectl run hazelcast --image=hazelcast/hazelcast --port=5701
Запустить pod hazelcast и задать в контейнере переменные окружения "DNS_DOMAIN=cluster" и "POD_NAMESPACE=default"
kubectl run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"
Запустить pod hazelcast и задать в контейнере метки "app=hazelcast" и "env=prod"
kubectl run hazelcast --image=hazelcast/hazelcast --labels="app=hazelcast,env=prod"
Выполнить пробный запуск; вывести соответствующие объекты API, не создавая их
kubectl run nginx --image=nginx --dry-run=client
Запустить pod nginx, переопределив спецификацию частичным набором значений, разобранных из JSON
kubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }' Запустить pod busybox в интерактивном режиме и не перезапускать его при завершении работы
kubectl run -i -t busybox --image=busybox --restart=Never
Запустить pod nginx с командой по умолчанию, но использовать для неё пользовательские аргументы (arg1 .. argN)
kubectl run nginx --image=nginx -- <arg1> <arg2> ... <argN>
Запустить pod nginx с другой командой и пользовательскими аргументами
kubectl run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
Создать и запустить указанный образ в pod.
Использование
$ kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
Параметры
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии в шаблоне поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| annotations | [] | Аннотации, применяемые к pod. | |
| attach | false | Если значение true, дождаться запуска Pod, а затем подключиться к нему, как если бы была вызвана команда 'kubectl attach ...'. По умолчанию false, если только не задан '-i/--stdin'; в этом случае по умолчанию используется true. При '--restart=Never' возвращается код завершения процесса контейнера. | |
| cascade | background | Допустимые значения: "background", "orphan" или "foreground". Выбирает стратегию каскадного удаления зависимых объектов (например, Pod, созданных ReplicationController). По умолчанию используется background. | |
| command | false | Если значение true и указаны дополнительные аргументы, использовать их как поле 'command' контейнера вместо поля 'args', используемого по умолчанию. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| env | [] | Переменные окружения, задаваемые в контейнере. | |
| expose | false | Если значение true, создать связанный с pod сервис ClusterIP. Требуется --port. | |
| field-manager | kubectl-run | Имя менеджера, используемое для отслеживания владения полями. | |
| filename | f | [] | для замены ресурса. |
| force | false | Если значение true, немедленно удалить ресурсы из API, пропустив плавное удаление. Учтите, что немедленное удаление некоторых ресурсов может привести к несогласованности данных или их потере и требует подтверждения. | |
| grace-period | -1 | Время в секундах, предоставляемое ресурсу для плавного завершения работы. Отрицательное значение игнорируется. Укажите 1 для немедленного завершения. Значение 0 можно задать только при --force=true (принудительное удаление). | |
| image | Образ для запуска контейнера. | ||
| image-pull-policy | Политика загрузки образа для контейнера. Если значение не задано, клиент не указывает его, а сервер использует значение по умолчанию. | ||
| kustomize | k | Обработать каталог kustomization. Этот параметр нельзя использовать вместе с -f или -R. | |
| labels | l | Метки, применяемые к pod и разделённые запятыми. Переопределяют предыдущие значения. | |
| leave-stdin-open | false | Если pod запущен в интерактивном режиме или со stdin, оставить stdin открытым после первого завершения подключения. По умолчанию stdin закрывается после первого завершения подключения. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| override-type | merge | Метод переопределения созданного объекта: json, merge или strategic. | |
| overrides | Встроенное переопределение созданного объекта в формате JSON. Если значение не пустое, оно используется для переопределения созданного объекта. Объект должен содержать допустимое поле apiVersion. | ||
| pod-running-timeout | 1m0s | Время ожидания запуска хотя бы одного pod (например, 5s, 2m или 3h; значение должно быть больше нуля). | |
| port | Порт, открываемый этим контейнером. | ||
| privileged | false | Если значение true, запустить контейнер в привилегированном режиме. | |
| quiet | q | false | Если значение true, не выводить сообщения-приглашения. |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, команда не записывается. Если задано значение true, команда записывается. Если параметр не задан, существующее значение аннотации обновляется только в том случае, если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| restart | Always | Политика перезапуска этого Pod. Допустимые значения: [Always, OnFailure, Never]. | |
| rm | false | Если значение true, удалить pod после его завершения. Допустимо только при подключении к контейнеру, например с помощью '--attach' или '-i/--stdin'. | |
| save-config | false | Если значение true, конфигурация текущего объекта сохраняется в его аннотации. В противном случае аннотация не изменяется. Этот параметр полезен, если в будущем нужно будет выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| stdin | i | false | Оставить stdin открытым в контейнере pod, даже если к нему никто не подключён. |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| timeout | 0s | Время ожидания перед отменой удаления; ноль означает, что время ожидания определяется исходя из размера объекта. | |
| tty | t | false | Выделить TTY для контейнера в pod. |
| wait | false | Если значение true, дождаться удаления ресурсов перед возвратом. Ожидание включает выполнение финализаторов. |
expose
Создать сервис для реплицированного nginx, который обслуживает порт 80 и подключается к контейнерам через порт 8000
kubectl expose rc nginx --port=80 --target-port=8000
Создать сервис для контроллера репликации, тип и имя которого указаны в "nginx-controller.yaml", который обслуживает порт 80 и подключается к контейнерам через порт 8000
kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000
Создать сервис для pod valid-pod, который обслуживает порт 444 под именем "frontend"
kubectl expose pod valid-pod --port=444 --name=frontend
Создать второй сервис на основе сервиса выше, открыв порт контейнера 8443 как порт 443 под именем "nginx-https"
kubectl expose service nginx --port=443 --target-port=8443 --name=nginx-https
Создать сервис для реплицированного потокового приложения на порту 4100, распределяющий трафик UDP и имеющий имя 'video-stream'.
kubectl expose rc streamer --port=4100 --protocol=UDP --name=video-stream
Создать сервис для реплицированного nginx с использованием ReplicaSet, который обслуживает порт 80 и подключается к контейнерам через порт 8000
kubectl expose rs nginx --port=80 --target-port=8000
Создать сервис для deployment nginx, который обслуживает порт 80 и подключается к контейнерам через порт 8000
kubectl expose deployment nginx --port=80 --target-port=8000
Предоставить ресурс как новый сервис Kubernetes.
Найти deployment, service, replica set, replication controller или pod по имени и использовать селектор этого ресурса в качестве селектора нового сервиса на указанном порту. Deployment или replica set будет предоставлен как сервис только в том случае, если его селектор можно преобразовать в селектор, поддерживаемый сервисом, то есть когда селектор содержит только компонент matchLabels. Обратите внимание: если параметр --port не задан, а у предоставляемого ресурса несколько портов, новый сервис повторно использует их все. Кроме того, если метки не указаны, новый сервис повторно использует метки предоставляемого ресурса.
Возможные ресурсы (без учёта регистра):
pod (po), service (svc), replicationcontroller (rc), deployment (deploy), replicaset (rs)
Использование
$ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP|SCTP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type]
Параметры
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение равно true, игнорировать любые ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| cluster-ip | ClusterIP, который будет назначен сервису. Оставьте значение пустым для автоматического выделения или укажите 'None', чтобы создать headless-сервис. | ||
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| external-ip | Дополнительный внешний IP-адрес (не управляемый Kubernetes), на котором сервис будет принимать запросы. Если этот IP маршрутизируется на узел, к сервису можно обращаться по этому IP в дополнение к сгенерированному IP-адресу сервиса. | ||
| field-manager | kubectl-expose | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс, для которого нужно открыть доступ через сервис |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| labels | l | Метки, которые будут применены к сервису, созданному этим вызовом. | |
| load-balancer-ip | IP-адрес, назначаемый LoadBalancer. Если значение пустое, будет создан и использован временный IP-адрес (зависит от облачного провайдера). | ||
| name | Имя создаваемого объекта. | ||
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| override-type | merge | Метод переопределения сгенерированного объекта: json, merge или strategic. | |
| overrides | Встроенное переопределение сгенерированного объекта в формате JSON. Если значение не пустое, оно используется для переопределения сгенерированного объекта. Необходимо, чтобы в объекте было допустимое поле apiVersion. | ||
| port | Порт, на котором должен работать сервис. Если не указан, копируется из открываемого ресурса | ||
| protocol | Сетевой протокол создаваемого сервиса. По умолчанию — 'TCP'. | ||
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, команда не записывается. Если задано значение true, команда записывается. Если значение не задано, существующее значение аннотации обновляется, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный с помощью -f, --filename. Это полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| save-config | false | Если значение равно true, конфигурация текущего объекта сохраняется в его аннотации. В противном случае аннотация остается без изменений. Этот флаг полезен, если в будущем вы хотите выполнить kubectl apply для этого объекта. | |
| selector | Селектор меток для этого сервиса. Поддерживаются только требования к селектору, основанные на равенстве. Если значение пустое (по умолчанию), селектор определяется по контроллеру репликации или набору реплик.) | ||
| session-affinity | Если значение не пустое, задать для сервиса указанную привязку сеанса; допустимые значения: 'None', 'ClientIP' | ||
| show-managed-fields | false | Если значение равно true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| target-port | Имя или номер порта контейнера, на который сервис должен направлять трафик. Необязательный параметр. | ||
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| type | Тип сервиса: ClusterIP, NodePort, LoadBalancer или ExternalName. По умолчанию — 'ClusterIP'. |
delete
Удалить pod, используя тип и имя, указанные в pod.json
kubectl delete -f ./pod.json
Удалить ресурсы из каталога, содержащего kustomization.yaml, например dir/kustomization.yaml
kubectl delete -k dir
Удалить ресурсы из всех файлов с расширением '.json', то есть раскрыть подстановочные символы в именах файлов
kubectl delete -f '*.json'
Удалить pod на основе типа и имени в JSON, переданном через stdin
cat pod.json | kubectl delete -f -
Удалить pods и services с одинаковыми именами "baz" и "foo"
kubectl delete pod,service baz foo
Удалить pods и services с меткой name=myLabel
kubectl delete pods,services -l name=myLabel
Удалить pod с минимальной задержкой
kubectl delete pod foo --now
Принудительно удалить pod на неработающем узле
kubectl delete pod foo --force
Удалить все pods
kubectl delete pods --all
Удалить ресурсы по именам файлов, из stdin, по типам ресурсов и именам либо по типам ресурсов и селектору меток.
Допускаются форматы JSON и YAML. Можно указать только один тип аргументов: имена файлов, типы ресурсов и имена либо типы ресурсов и селектор меток.
Некоторые ресурсы, например pods, поддерживают корректное удаление. Для таких ресурсов задан период ожидания по умолчанию перед принудительным завершением (период ожидания), но это значение можно переопределить с помощью флага --grace-period или передать --now, чтобы установить период ожидания, равный 1. Поскольку такие ресурсы часто представляют сущности в кластере, подтверждение удаления может прийти не сразу. Если узел, на котором размещен pod, не работает или не может связаться с API-сервером, завершение может занять значительно больше времени, чем период ожидания. Чтобы принудительно удалить ресурс, необходимо указать флаг --force. Примечание: корректное удаление поддерживается только некоторыми ресурсами. Если поддержка отсутствует, флаг --grace-period игнорируется.
ВАЖНО: принудительное удаление pods не ожидает подтверждения завершения процессов pod, поэтому эти процессы могут продолжать работать, пока узел не обнаружит удаление и не завершит корректное удаление. Если процессы используют общее хранилище или обращаются к удаленному API и идентифицируют себя по имени pod, принудительное удаление таких pods может привести к тому, что на разных машинах будут работать несколько процессов с одним и тем же идентификатором, что может вызвать повреждение или несогласованность данных. Принудительно удаляйте pods, только если уверены, что pod завершен, или если ваше приложение может допустить одновременную работу нескольких копий одного pod. Кроме того, если принудительно удалить pods, планировщик может разместить новые pods на этих узлах до того, как узел освободит ресурсы, и эти pods будут немедленно вытеснены.
Обратите внимание, что команда delete НЕ выполняет проверку версии ресурса, поэтому, если кто-либо отправит обновление ресурса одновременно с вашей командой удаления, это обновление будет потеряно вместе с остальной частью ресурса.
После удаления CustomResourceDefinition инвалидация кэша обнаружения может занять до 6 часов. Если вы не хотите ждать, можно выполнить "kubectl api-resources", чтобы обновить кэш обнаружения.
Использование
$ kubectl delete ([-f FILENAME] | [-k DIRECTORY] | TYPE [(NAME | -l label | --all)])
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| all | false | Удалить все ресурсы указанных типов в пространстве имен указанного ресурса. | |
| all-namespaces | A | false | Если указан, вывести запрошенные объекты во всех пространствах имен. Пространство имен в текущем контексте игнорируется, даже если оно указано с помощью --namespace. |
| cascade | background | Должно быть указано "background", "orphan" или "foreground". Выбирает стратегию каскадного удаления зависимых объектов (например, Pods, созданных ReplicationController). По умолчанию используется background. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-selector | Селектор (запрос по полям) для фильтрации; поддерживаются '=', '==' и '!=' (например, --field-selector key1=value1,key2=value2). Сервер поддерживает только ограниченное число запросов по полям для каждого типа. | ||
| filename | f | [] | содержащий удаляемый ресурс. |
| force | false | Если значение равно true, немедленно удалить ресурсы из API, минуя корректное удаление. Обратите внимание, что немедленное удаление некоторых ресурсов может привести к несогласованности или потере данных и требует подтверждения. | |
| grace-period | -1 | Период времени в секундах, предоставляемый ресурсу для корректного завершения. Отрицательное значение игнорируется. Укажите 1 для немедленного завершения. Значение 0 можно указать только при --force=true (принудительное удаление). | |
| ignore-not-found | false | Считать ответ "resource not found" успешным удалением. По умолчанию значение равно "true", если указан --all. | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| now | false | Если значение равно true, отправить ресурсам сигнал о немедленном завершении (то же, что и --grace-period=1). | |
| output | o | Режим вывода. Используйте "-o name" для более краткого вывода (resource/name). | |
| raw | URI запроса DELETE к серверу без обработки. Используется транспорт, указанный в файле kubeconfig. | ||
| recursive | R | false | Рекурсивно обработать каталог, указанный с помощью -f, --filename. Это полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| timeout | 0s | Время ожидания перед прекращением попытки удаления; ноль означает, что время ожидания определяется по размеру объекта | |
| wait | true | Если значение равно true, дождаться удаления ресурсов перед возвратом. Ожидание учитывает финализаторы. |
УПРАВЛЕНИЕ ПРИЛОЖЕНИЯМИ
В этом разделе описаны команды для создания, обновления, удаления и просмотра рабочих нагрузок в кластере Kubernetes.
apply
Применить конфигурацию из pod.json к pod
kubectl apply -f ./pod.json
Применить ресурсы из каталога, содержащего kustomization.yaml, например dir/kustomization.yaml
kubectl apply -k dir/
Применить к pod JSON, переданный через stdin
cat pod.json | kubectl apply -f -
Применить конфигурацию из всех файлов с расширением '.json', то есть раскрыть подстановочные символы в именах файлов
kubectl apply -f '*.json'
Примечание: --prune все еще находится на стадии Alpha # Применить конфигурацию из manifest.yaml, соответствующую метке app=nginx, и удалить все остальные ресурсы, которых нет в файле и которые соответствуют метке app=nginx
kubectl apply --prune -f manifest.yaml -l app=nginx
Применить конфигурацию из manifest.yaml и удалить все остальные config maps, которых нет в файле
kubectl apply --prune -f manifest.yaml --all --prune-allowlist=core/v1/ConfigMap
Применить конфигурацию к ресурсу по имени файла или из stdin. Необходимо указать имя ресурса. Если ресурса еще нет, он будет создан. Для использования 'apply' сначала всегда создавайте ресурс с помощью 'apply' или 'create --save-config'.
Допускаются форматы JSON и YAML.
Отказ от ответственности для Alpha: функциональность --prune еще не завершена. Не используйте ее, если не знаете о ее текущем состоянии. См. https://issues.k8s.io/34274.
Использование
$ kubectl apply (-f FILENAME | -k DIRECTORY)
Флаги
| Название | Краткая форма | По умолчанию | Использование |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имён ресурса. | |
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| cascade | background | Допустимые значения: "background", "orphan" или "foreground". Выбирает стратегию каскадного удаления зависимых ресурсов (например, Pod, созданных ReplicationController). По умолчанию используется background. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-client-side-apply | Имя диспетчера, используемого для отслеживания владения полями. | |
| filename | f | [] | Файлы с конфигурациями для применения. |
| force | false | Если true, немедленно удалить ресурсы из API, минуя плавное удаление. Обратите внимание: немедленное удаление некоторых ресурсов может привести к несогласованности данных или их потере и требует подтверждения. | |
| force-conflicts | false | Если true, при применении на стороне сервера изменения будут принудительно применены при конфликтах. | |
| grace-period | -1 | Время в секундах, предоставляемое ресурсу для плавного завершения работы. Отрицательное значение игнорируется. Укажите 1 для немедленного завершения. Значение 0 можно задать, только если указано --force (принудительное удаление). | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| openapi-patch | true | Если true, использовать openapi для вычисления различий, когда спецификация openapi доступна и ресурс в ней найден. В противном случае использовать встроенные типы. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| overwrite | true | Автоматически разрешать конфликты между изменённой и действующей конфигурацией, используя значения из изменённой конфигурации | |
| prune | false | Автоматически удалять объекты ресурсов, отсутствующие в конфигурациях и созданные с помощью apply или create --save-config. Следует использовать вместе с -l или --all. | |
| prune-allowlist | [] | Заменить список разрешённых по умолчанию значениями <group/version/kind> для --prune | |
| prune-whitelist | [] | Заменить белый список по умолчанию значениями <group/version/kind> для --prune | |
| record | false | Записывать текущую команду kubectl в аннотацию ресурса. Если задано false, команду не записывать. Если задано true, записывать команду. Если значение не задано, по умолчанию обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный с помощью -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным условиям для меток. | |
| server-side | false | Если true, команда apply выполняется на сервере, а не на клиенте. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| timeout | 0s | Время ожидания перед отказом от удаления; ноль означает, что время ожидания определяется по размеру объекта | |
| validate | strict | Допустимые значения: strict (или true), warn, ignore (или false). "true" или "strict" означает, что для проверки входных данных будет использоваться схема, а запрос с недопустимыми данными будет отклонён. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". "false" или "ignore" означает, что проверка по схеме выполняться не будет, а неизвестные или повторяющиеся поля будут молча отбрасываться. | |
| wait | false | Если true, дождаться удаления ресурсов, прежде чем вернуть управление. Ожидание учитывает финализаторы. |
edit-last-applied
Изменить аннотации last-applied-configuration ресурса, указав его тип и имя; формат YAML
kubectl apply edit-last-applied deployment/nginx
Изменить аннотации last-applied-configuration ресурса из файла; формат JSON
kubectl apply edit-last-applied -f deploy.yaml -o json
Изменить последние аннотации last-applied-configuration ресурсов с помощью редактора по умолчанию.
Команда edit-last-applied позволяет напрямую изменять любые ресурсы API, которые можно получить с помощью инструментов командной строки. Она откроет редактор, заданный переменными среды KUBE_EDITOR или EDITOR, либо, если они не заданы, использует 'vi' в Linux или 'notepad' в Windows. Можно редактировать несколько объектов, однако изменения применяются по одному. Команда принимает имена файлов, а также аргументы командной строки, но указанные файлы должны содержать ранее сохранённые версии ресурсов.
По умолчанию используется формат YAML. Чтобы редактировать в формате JSON, укажите "-o json".
Флаг --windows-line-endings можно использовать для принудительного задания окончаний строк Windows; в противном случае будут использоваться окончания строк, принятые в вашей операционной системе.
Если при обновлении возникает ошибка, на диске будет создан временный файл с изменениями, которые не удалось применить. Чаще всего ошибка при обновлении ресурса возникает, когда другой редактор изменяет ресурс на сервере. В этом случае необходимо применить изменения к более новой версии ресурса либо обновить временную сохранённую копию, добавив в неё последнюю версию ресурса.
Использование
$ kubectl apply edit-last-applied (RESOURCE/NAME | -f FILENAME)
Флаги
| Название | Краткая форма | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| field-manager | kubectl-client-side-apply | Имя диспетчера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, используемых для изменения ресурса |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| record | false | Записывать текущую команду kubectl в аннотацию ресурса. Если задано false, команду не записывать. Если задано true, записывать команду. Если значение не задано, по умолчанию обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный с помощью -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Допустимые значения: strict (или true), warn, ignore (или false). "true" или "strict" означает, что для проверки входных данных будет использоваться схема, а запрос с недопустимыми данными будет отклонён. Если на api-server включена ServerSideFieldValidation, проверка будет выполняться на стороне сервера; в противном случае будет использоваться менее надёжная проверка на стороне клиента. "warn" означает, что неизвестные или повторяющиеся поля будут вызывать предупреждения, но не блокировать запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". "false" или "ignore" означает, что проверка по схеме выполняться не будет, а неизвестные или повторяющиеся поля будут молча отбрасываться. | |
| windows-line-endings | false | По умолчанию используются окончания строк, принятые на вашей платформе. |
set-last-applied
Задать для ресурса last-applied-configuration в соответствии с содержимым файла
kubectl apply set-last-applied -f deploy.yaml
Выполнить set-last-applied для каждого файла конфигурации в каталоге
kubectl apply set-last-applied -f path/
Задать для ресурса last-applied-configuration в соответствии с содержимым файла; создать аннотацию, если она ещё не существует
kubectl apply set-last-applied -f deploy.yaml --create-annotation=true
Задать последние аннотации last-applied-configuration, приведя их в соответствие с содержимым файла. В результате last-applied-configuration обновится так, как если бы была выполнена команда 'kubectl apply -f
Использование
$ kubectl apply set-last-applied -f FILENAME
Флаги
| Название | Краткая форма | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| create-annotation | false | Создать аннотации 'last-applied-configuration', если у текущих объектов их нет | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| filename | f | [] | Имя файла, каталог или URL файлов, содержащих аннотации last-applied-configuration |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
view-last-applied
Просмотреть аннотации last-applied-configuration ресурса, указав его тип и имя; формат YAML
kubectl apply view-last-applied deployment/nginx
Просмотреть аннотации last-applied-configuration ресурса из файла; формат JSON
kubectl apply view-last-applied -f deploy.yaml -o json
Просмотреть последние аннотации last-applied-configuration, указав тип и имя ресурса или файл.
По умолчанию вывод будет направлен в stdout в формате YAML. Чтобы изменить формат вывода, используйте параметр -o.
Использование
$ kubectl apply view-last-applied (TYPE [NAME | -l label] | TYPE/NAME | -f FILENAME)
Флаги
| Название | Краткая форма | По умолчанию | Использование |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имён ресурса | |
| filename | f | [] | Имя файла, каталог или URL файлов, содержащих аннотации last-applied-configuration |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | yaml | Формат вывода. Допустимые значения: (yaml, json) |
| recursive | R | false | Рекурсивно обработать каталог, указанный с помощью -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным условиям для меток. |
annotate
Обновить Pod 'foo', добавив аннотацию 'description' со значением 'my frontend' # Если одна и та же аннотация задана несколько раз, будет применено только последнее значение
kubectl annotate pods foo description='my frontend'
Обновить Pod, указанный типом и именем в файле "pod.json"
kubectl annotate -f pod.json description='my frontend'
Обновить Pod 'foo', задав для аннотации 'description' значение 'my frontend running nginx' и перезаписав существующее значение
kubectl annotate --overwrite pods foo description='my frontend running nginx'
Обновить все Pod в пространстве имён
kubectl annotate pods --all description='my frontend running nginx'
Обновить Pod 'foo' только в том случае, если ресурс не изменился с версии 1
kubectl annotate pods foo description='my frontend running nginx' --resource-version=1
Обновить Pod 'foo', удалив аннотацию с именем 'description', если она существует # Флаг --overwrite не требуется
kubectl annotate pods foo description-
Обновляет аннотации одного или нескольких ресурсов.
Все объекты Kubernetes поддерживают возможность хранения дополнительных данных в виде аннотаций. Аннотации — это пары «ключ/значение», которые могут быть больше меток и содержать произвольные строковые значения, например структурированный JSON. Инструменты и системные расширения могут использовать аннотации для хранения собственных данных.
Попытка задать уже существующую аннотацию завершится ошибкой, если не указан флаг --overwrite. Если указан флаг --resource-version, но его значение не совпадает с текущей версией ресурса на сервере, команда завершится ошибкой.
Используйте «kubectl api-resources», чтобы получить полный список поддерживаемых ресурсов.
Использование
$ kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы в пространстве имён указанных типов ресурсов. | |
| all-namespaces | A | false | Если true, проверить указанное действие во всех пространствах имён. |
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-annotate | Имя менеджера, используемое для отслеживания владения полями. | |
| field-selector | Селектор (запрос по полям) для фильтрации. Поддерживает '=', '==' и '!=' (например, --field-selector key1=value1,key2=value2). Сервер поддерживает лишь ограниченное число запросов по полям для каждого типа. | ||
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс, аннотацию которого нужно обновить |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| list | false | Если true, отобразить аннотации указанного ресурса. | |
| local | false | Если true, команда annotation НЕ будет обращаться к api-server, а выполнится локально. | |
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| overwrite | false | Если true, разрешить перезапись аннотаций; в противном случае отклонять обновления аннотаций, которые перезаписывают существующие. | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, команду не записывать. Если задано значение true, команду записать. Если значение не задано, по умолчанию обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, когда нужно управлять связанными манифестами, хранящимися в одном каталоге. |
| resource-version | Если значение не пустое, обновление аннотации будет выполнено успешно, только если оно совпадает с текущей версией ресурса объекта. Допустимо только при указании одного ресурса. | ||
| selector | l | Селектор (запрос по меткам) для фильтрации. Поддерживает '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемому при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
autoscale
Автоматически масштабировать развёртывание "foo", задав число подов от 2 до 10. Целевая загрузка ЦП не указана, поэтому будет применена политика автомасштабирования по умолчанию
kubectl autoscale deployment foo --min=2 --max=10
Автоматически масштабировать контроллер репликации "foo", задав число подов от 1 до 5 и целевую загрузку ЦП 80%
kubectl autoscale rc foo --max=5 --cpu-percent=80
Создаёт автомасштабировщик, который автоматически выбирает и задаёт число подов, работающих в кластере Kubernetes.
Находит развёртывание, набор реплик, stateful-набор или контроллер репликации по имени и создаёт автомасштабировщик, использующий указанный ресурс в качестве ссылки. При необходимости автомасштабировщик может автоматически увеличивать или уменьшать число подов, развёрнутых в системе.
Использование
$ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| cpu-percent | -1 | Целевая средняя загрузка ЦП (в процентах от запрошенного ресурса ЦП) для всех подов. Если значение не указано или отрицательное, будет применена политика автомасштабирования по умолчанию. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-autoscale | Имя менеджера, используемое для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс для автомасштабирования. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| max | -1 | Верхний предел числа подов, которое может установить автомасштабировщик. Обязательный параметр. | |
| min | -1 | Нижний предел числа подов, которое может установить автомасштабировщик. Если значение не указано или отрицательное, сервер применит значение по умолчанию. | |
| name | Имя создаваемого объекта. Если не указано, будет использовано имя входного ресурса. | ||
| output | o | Формат вывода. Один из следующих: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, команду не записывать. Если задано значение true, команду записать. Если значение не задано, по умолчанию обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, когда нужно управлять связанными манифестами, хранящимися в одном каталоге. |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы хотите выполнить для этого объекта команду kubectl apply. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемому при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
debug
Создать интерактивный сеанс отладки в поде mypod и сразу подключиться к нему. # (требуется включить функцию EphemeralContainers в кластере)
kubectl debug mypod -it --image=busybox
Создать контейнер отладки с именем debugger, используя пользовательский образ для автоматизированной отладки. # (требуется включить функцию EphemeralContainers в кластере)
kubectl debug --image=myproj/debug-tools -c debugger mypod
Создать копию mypod, добавив контейнер отладки, и подключиться к ней
kubectl debug mypod -it --image=busybox --copy-to=my-debugger
Создать копию mypod, изменив команду контейнера mycontainer
kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh
Создать копию mypod, заменив образы всех контейнеров на busybox
kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox
Создать копию mypod, добавив контейнер отладки и изменив образы контейнеров
kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug
Создать интерактивный сеанс отладки на узле и сразу подключиться к нему. # Контейнер будет работать в пространствах имён хоста, а файловая система хоста будет подключена в /host
kubectl debug node/mynode -it --image=busybox
Отладка ресурсов кластера с помощью интерактивных контейнеров отладки.
Команда 'debug' автоматизирует распространённые задачи отладки объектов кластера, указанных по ресурсу и имени. Если ресурс не указан, по умолчанию используются поды.
Действие команды 'debug' зависит от указанного ресурса. Поддерживаются следующие действия:
Рабочая нагрузка: создать копию существующего пода с изменёнными атрибутами, например заменить тег образа на новую версию.
Рабочая нагрузка: добавить эфемерный контейнер в уже работающий под, например добавить средства отладки без перезапуска пода.
* Узел: создать новый под, работающий в пространствах имён хоста узла и имеющий доступ к файловой системе узла.
Использование
$ kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| arguments-only | false | Если указано, всё после -- будет передано новому контейнеру как Args, а не как Command. | |
| attach | false | Если true, дождаться запуска контейнера, а затем подключиться к нему, как если бы была вызвана команда 'kubectl attach ...'. По умолчанию false, если не задан '-i/--stdin'; в этом случае по умолчанию используется true. | |
| container | c | Имя контейнера, используемое для контейнера отладки. | |
| copy-to | Создать копию целевого пода с этим именем. | ||
| env | [] | Переменные окружения, задаваемые в контейнере. | |
| image | Образ контейнера, используемый для контейнера отладки. | ||
| image-pull-policy | Политика загрузки образа для контейнера. Если оставить значение пустым, клиент не будет его указывать, и сервер задаст значение по умолчанию. | ||
| profile | legacy | Профиль отладки. | |
| quiet | q | false | Если true, скрыть информационные сообщения. |
| replace | false | При использовании с '--copy-to' удалить исходный под. | |
| same-node | false | При использовании с '--copy-to' запланировать копию целевого пода на том же узле. | |
| set-image | [] | При использовании с '--copy-to' список пар имя=образ для изменения образов контейнеров, аналогично команде 'kubectl set image'. | |
| share-processes | true | При использовании с '--copy-to' включить совместное использование пространства имён процессов в копии. | |
| stdin | i | false | Оставить stdin открытым для контейнера или контейнеров в поде, даже если к ним никто не подключён. |
| target | При использовании эфемерного контейнера указать имя контейнера, процессы которого нужно отслеживать. | ||
| tty | t | false | Выделить TTY для контейнера отладки. |
diff
Сравнить ресурсы, содержащиеся в pod.json
kubectl diff -f pod.json
Сравнить файл, прочитанный из stdin
cat service.yaml | kubectl diff -f -
Сравнивает конфигурации, указанные именем файла или через stdin, с текущей конфигурацией в сети и конфигурацией, которая была бы применена.
Результат всегда выводится в формате YAML.
Для выбора собственной команды diff можно использовать переменную окружения KUBECTL_EXTERNAL_DIFF. Также можно использовать внешние команды с параметрами, например: KUBECTL_EXTERNAL_DIFF="colordiff -N -u"
По умолчанию запускается команда "diff", доступная в PATH, с параметрами "-u" (унифицированный формат diff) и "-N" (считать отсутствующие файлы пустыми).
Код завершения: 0 — различий не найдено. 1 — найдены различия. >1 — Kubectl или diff завершилась с ошибкой.
Примечание: если используется KUBECTL_EXTERNAL_DIFF, ожидается, что она будет следовать этому соглашению.
Использование
$ kubectl diff -f FILENAME
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| field-manager | kubectl-client-side-apply | Имя менеджера, используемое для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов с конфигурацией для сравнения |
| force-conflicts | false | Если true, server-side apply принудительно применит изменения при конфликтах. | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| prune | false | Включить ресурсы, которые были бы удалены при очистке. Можно использовать с -l; по умолчанию отображаются все ресурсы, которые будут удалены. | |
| prune-allowlist | [] | Заменить белый список по умолчанию значениями <group/version/kind> для --prune | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, когда нужно управлять связанными манифестами, хранящимися в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации. Поддерживает '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| server-side | false | Если true, apply выполняется на сервере, а не на клиенте. | |
| show-managed-fields | false | Если true, включить управляемые поля в вывод diff. |
edit
Изменить сервис с именем 'registry'
kubectl edit svc/registry
Использовать другой редактор
KUBE_EDITOR="nano" kubectl edit svc/registry
Изменить задание 'myjob' в формате JSON, используя формат API v1
kubectl edit job.v1.batch/myjob -o json
Изменить развёртывание 'mydeployment' в формате YAML и сохранить изменённую конфигурацию в его аннотации
kubectl edit deployment/mydeployment -o yaml --save-config
Изменить субресурс status для deployment/mydeployment
kubectl edit deployment mydeployment --subresource='status'
Изменить ресурс в редакторе по умолчанию.
Команда edit позволяет напрямую изменять любые ресурсы API, которые можно получить с помощью инструментов командной строки. Она откроет редактор, заданный переменными среды KUBE_EDITOR или EDITOR, либо использует 'vi' в Linux или 'notepad' в Windows. Можно изменять несколько объектов, хотя изменения применяются по одному. Команда принимает имена файлов, а также аргументы командной строки, однако указанные файлы должны быть ранее сохранёнными версиями ресурсов.
Редактирование выполняется с использованием версии API, применённой для получения ресурса. Чтобы редактировать ресурс с помощью определённой версии API, укажите полные имена ресурса, версии и группы.
Формат по умолчанию — YAML. Чтобы редактировать в формате JSON, укажите "-o json".
Флаг --windows-line-endings можно использовать для принудительного применения окончаний строк Windows; в противном случае будут использоваться окончания строк по умолчанию для вашей операционной системы.
Если при обновлении возникает ошибка, на диске будет создан временный файл с неприменёнными изменениями. Наиболее распространённая ошибка при обновлении ресурса возникает, когда другой редактор изменяет ресурс на сервере. В этом случае необходимо применить изменения к более новой версии ресурса либо обновить временную сохранённую копию, добавив в неё последнюю версию ресурса.
Использование
$ kubectl edit (RESOURCE/NAME | -f FILENAME)
Флаги
| Имя | Краткое имя | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| field-manager | kubectl-edit | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, используемых для изменения ресурса |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| output-patch | false | Вывести патч, если ресурс изменён. | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, не записывать команду. Если задано значение true, записать команду. Если значение не задано, обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| save-config | false | Если значение true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы хотите выполнить kubectl apply для этого объекта. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| subresource | Если задано, команда edit будет работать с субресурсом запрошенного объекта. Допустимое значение: [status]. Этот флаг имеет альфа-статус и может измениться в будущем. | ||
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Допустимые значения: strict (или true), warn, ignore (или false). Значение "true" или "strict" включает проверку входных данных по схеме и приводит к ошибке запроса, если данные недопустимы. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надёжная проверка на стороне клиента. Значение "warn" предупреждает о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае действует как "ignore". Значение "false" или "ignore" отключает проверку по схеме; все неизвестные или повторяющиеся поля молча отбрасываются. | |
| windows-line-endings | false | По умолчанию используются окончания строк, принятые на вашей платформе. |
kustomize
Собрать ресурсы из текущего рабочего каталога
kubectl kustomize
Собрать ресурсы из общего каталога конфигурации
kubectl kustomize /home/config/production
Собрать ресурсы из GitHub
kubectl kustomize https://github.com/kubernetes-sigs/kustomize.git/examples/helloWorld?ref=v1.0.6
Собрать набор ресурсов KRM с помощью файла 'kustomization.yaml'. Аргумент DIR должен быть путём к каталогу, содержащему 'kustomization.yaml', или URL-адресом репозитория Git с суффиксом пути, указывающим на соответствующий каталог относительно корня репозитория. Если DIR не указан, используется '.'.
Использование
$ kubectl kustomize DIR
Флаги
| Имя | Краткое имя | По умолчанию | Описание |
|---|---|---|---|
| as-current-user | false | использовать uid и gid исполнителя команды для запуска функции в контейнере | |
| enable-alpha-plugins | false | включить плагины kustomize | |
| enable-helm | false | Включить использование генератора Helm chart inflator. | |
| enable-managedby-label | false | включить добавление app.kubernetes.io/managed-by | |
| env | e | [] | список переменных среды, используемых функциями |
| helm-command | helm | команда helm (путь к исполняемому файлу) | |
| load-restrictor | LoadRestrictionsRootOnly | если задано значение 'LoadRestrictionsNone', локальные конфигурации kustomize могут загружать файлы за пределами корневого каталога. Однако это нарушает переносимость конфигурации kustomize. | |
| mount | [] | список параметров хранилища, считываемых из файловой системы | |
| network | false | включить сетевой доступ для функций, которые его объявляют | |
| network-name | bridge | сеть Docker, в которой будет запущен контейнер | |
| output | o | Если указано, записать вывод по этому пути. | |
| reorder | legacy | Изменить порядок ресурсов непосредственно перед выводом. Используйте 'legacy' для применения устаревшей сортировки (сначала пространства имён, веб-хуки в конце и т. д.). Используйте 'none', чтобы отключить итоговую сортировку. |
label
Обновить метку pod 'foo': задать для метки 'unhealthy' значение 'true'
kubectl label pods foo unhealthy=true
Обновить pod 'foo': задать для метки 'status' значение 'unhealthy', перезаписав существующее значение
kubectl label --overwrite pods foo status=unhealthy
Обновить все pod в пространстве имён
kubectl label pods --all status=unhealthy
Обновить pod, тип и имя которого указаны в "pod.json"
kubectl label -f pod.json status=unhealthy
Обновить pod 'foo', только если ресурс не изменился после версии 1
kubectl label pods foo status=unhealthy --resource-version=1
Обновить pod 'foo', удалив метку с именем 'bar', если она существует # Флаг --overwrite не требуется
kubectl label pods foo bar-
Обновить метки ресурса.
Ключ и значение метки должны начинаться с буквы или цифры и могут содержать буквы, цифры, дефисы, точки и подчёркивания; длина каждого из них не должна превышать 63 символа.
При необходимости перед ключом можно указать префикс DNS-поддомена и символ '/', например example.com/my-app.
Если для --overwrite задано значение true, существующие метки можно перезаписывать; в противном случае попытка перезаписать метку приведёт к ошибке.
Если указан --resource-version, обновления будут использовать эту версию ресурса; в противном случае будет использоваться существующая версия ресурса.
Использование
$ kubectl label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
Флаги
| Имя | Краткое имя | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имён выбранного ресурса | |
| all-namespaces | A | false | Если значение true, проверить указанное действие во всех пространствах имён. |
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер, но ресурс не сохраняется. | |
| field-manager | kubectl-label | Имя менеджера, используемого для отслеживания владения полями. | |
| field-selector | Селектор (запрос по полям) для фильтрации; поддерживаются операторы '=', '==' и '!=' (например, --field-selector key1=value1,key2=value2). Сервер поддерживает лишь ограниченное число запросов по полям для каждого типа. | ||
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс, метки которого нужно обновить |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| list | false | Если значение true, отобразить метки указанного ресурса. | |
| local | false | Если значение true, команда label НЕ будет обращаться к api-server, а выполнится локально. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| overwrite | false | Если значение true, разрешить перезапись меток; в противном случае отклонять обновления, перезаписывающие существующие метки. | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, не записывать команду. Если задано значение true, записать команду. Если значение не задано, обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| resource-version | Если значение не пустое, обновление меток будет выполнено только в том случае, если эта версия ресурса является текущей версией объекта. Допустимо только при указании одного ресурса. | ||
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются операторы '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным условиям для меток. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
patch
Частично обновить узел с помощью strategic merge patch, указав патч в формате JSON
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' Частично обновить узел с помощью strategic merge patch, указав патч в формате YAML
kubectl patch node k8s-node-1 -p $'spec:\n unschedulable: true'
Частично обновить узел, тип и имя которого указаны в "node.json", с помощью strategic merge patch
kubectl patch -f node.json -p '{"spec":{"unschedulable":true}}' Обновить образ контейнера; spec.containers[*].name обязателен, поскольку используется как ключ слияния
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}' Обновить образ контейнера с помощью JSON patch с позиционными массивами
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]' Обновить количество реплик развёртывания через субресурс scale с помощью merge patch.
kubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}' Обновить поля ресурса с помощью strategic merge patch, JSON merge patch или JSON patch.
Поддерживаются форматы JSON и YAML.
Примечание: strategic merge patch не поддерживается для пользовательских ресурсов.
Использование
$ kubectl patch (-f FILENAME | TYPE NAME) [-p PATCH|--patch-file FILE]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие из-за отсутствующего поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client только выводит объект, который был бы отправлен, не отправляя его. При стратегии server отправляет запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-patch | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс для обновления |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| local | false | Если true, исправление будет применено к содержимому файла, а не к ресурсу на сервере. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| patch | p | Исправление, которое нужно применить к JSON-файлу ресурса. | |
| patch-file | Файл, содержащий исправление, которое нужно применить к ресурсу. | ||
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, команда не записывается. Если задано значение true, команда записывается. Если значение не задано, по умолчанию обновляется существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| subresource | Если указан, исправление будет применено к подресурсу запрошенного объекта. Должно быть одним из значений [status scale]. Этот флаг имеет статус alpha и может измениться в будущем. | ||
| template | Строка шаблона или путь к файлу шаблона, используемого с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| type | strategic | Тип предоставляемого исправления; один из вариантов [json merge strategic] |
replace
Заменить pod данными из pod.json
kubectl replace -f ./pod.json
Заменить pod на основе JSON, переданного через stdin
cat pod.json | kubectl replace -f -
Обновить версию образа (тег) pod с одним контейнером до v4
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
Выполнить принудительную замену: удалить ресурс, а затем создать его заново
kubectl replace --force -f ./pod.json
Заменить ресурс, указав имя файла или stdin.
Допускаются форматы JSON и YAML. При замене существующего ресурса необходимо указать его полную спецификацию. Её можно получить с помощью команды
$ kubectl get TYPE NAME -o yaml
Использование
$ kubectl replace -f FILENAME
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие из-за отсутствующего поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| cascade | background | Должно быть задано значение "background", "orphan" или "foreground". Выбирает стратегию каскадного удаления зависимых объектов (например, Pod, созданных ReplicationController). По умолчанию используется background. | |
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client только выводит объект, который был бы отправлен, не отправляя его. При стратегии server отправляет запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-replace | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Файлы, содержащие конфигурации для замены. |
| force | false | Если true, немедленно удалить ресурсы из API, пропустив их корректное удаление. Обратите внимание: немедленное удаление некоторых ресурсов может привести к несогласованности данных или их потере и требует подтверждения. | |
| grace-period | -1 | Время в секундах, предоставляемое ресурсу для корректного завершения. Отрицательное значение игнорируется. Задайте 1 для немедленного завершения. Значение 0 можно задать только при --force=true (принудительное удаление). | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| raw | Необработанный URI для PUT-запроса к серверу. Используется транспорт, указанный в файле kubeconfig. | ||
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, если в будущем вы планируете выполнить для этого объекта kubectl apply. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| subresource | Если указан, замена будет применена к подресурсу запрошенного объекта. Должно быть одним из значений [status scale]. Этот флаг имеет статус alpha и может измениться в будущем. | ||
| template | Строка шаблона или путь к файлу шаблона, используемого с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| timeout | 0s | Время ожидания перед прекращением попытки удаления; ноль означает, что время ожидания определяется размером объекта | |
| validate | strict | Должно быть одним из значений: strict (или true), warn, ignore (или false). Значение "true" или "strict" означает проверку входных данных по схеме и отклонение запроса при обнаружении ошибок. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надёжная проверка на стороне клиента. Значение "warn" означает предупреждение о неизвестных или повторяющихся полях без блокировки запроса, если на API-сервере включена проверка полей на стороне сервера; в противном случае применяется поведение "ignore". Значение "false" или "ignore" означает, что проверка по схеме не выполняется, а неизвестные или повторяющиеся поля молча отбрасываются. | |
| wait | false | Если true, ожидать удаления ресурсов перед возвратом. Ожидание включает обработку финализаторов. |
rollout
Выполнить откат к предыдущему развёртыванию
kubectl rollout undo deployment/abc
Проверить состояние развёртывания daemonset
kubectl rollout status daemonset/foo
Перезапустить развёртывание
kubectl rollout restart deployment/abc
Перезапустить развёртывания с меткой app=nginx
kubectl rollout restart deployment --selector=app=nginx
Управлять развёртыванием одного или нескольких ресурсов.
Допустимые типы ресурсов:
deployments
daemonsets
* statefulsets
Использование
$ kubectl rollout SUBCOMMAND
history
Просмотреть историю развёртывания deployment
kubectl rollout history deployment/abc
Просмотреть сведения о редакции 3 daemonset
kubectl rollout history daemonset/abc --revision=3
Просмотреть предыдущие редакции развёртывания и их конфигурации.
Использование
$ kubectl rollout history (TYPE NAME | TYPE/NAME) [flags]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие из-за отсутствующего поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| revision | 0 | Просмотреть сведения, включая podTemplate, для указанной редакции | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
pause
Приостановить развёртывание nginx # Текущее состояние развёртывания продолжит функционировать; новые обновления # не будут применяться, пока развёртывание приостановлено
kubectl rollout pause deployment/nginx
Приостановить указанный ресурс.
Контроллер не будет выполнять сверку приостановленных ресурсов. Чтобы возобновить работу приостановленного ресурса, используйте "kubectl rollout resume". В настоящее время приостанавливать можно только deployments.
Использование
$ kubectl rollout pause RESOURCE
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие из-за отсутствующего поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| field-manager | kubectl-rollout | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
restart
Перезапустить развёртывание
kubectl rollout restart deployment/nginx
Перезапустить daemon set
kubectl rollout restart daemonset/abc
Перезапустить развёртывания с меткой app=nginx
kubectl rollout restart deployment --selector=app=nginx
Перезапустить ресурс.
Будет выполнен перезапуск развёртывания ресурса.
Использование
$ kubectl rollout restart RESOURCE
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать любые ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| field-manager | kubectl-rollout | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
resume
Возобновить приостановленное развертывание
kubectl rollout resume deployment/nginx
Возобновить приостановленный ресурс.
Контроллер не выполняет сверку приостановленных ресурсов. Возобновив ресурс, мы разрешаем снова выполнять его сверку. В настоящее время возобновление поддерживается только для развертываний.
Использование
$ kubectl rollout resume RESOURCE
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать любые ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| field-manager | kubectl-rollout | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
status
Наблюдать за состоянием развертывания
kubectl rollout status deployment/nginx
Показать состояние развертывания.
По умолчанию команда 'rollout status' отслеживает состояние последнего развертывания до его завершения. Если вы не хотите ждать завершения развертывания, можно использовать --watch=false. Обратите внимание: если за это время начнётся новое развертывание, команда 'rollout status' продолжит отслеживать последнюю ревизию. Чтобы привязаться к конкретной ревизии и прервать отслеживание, если её сменит другая ревизия, используйте --revision=N, где N — номер ревизии, которую нужно отслеживать.
Использование
$ kubectl rollout status (TYPE NAME | TYPE/NAME) [flags]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| revision | 0 | Привязаться к конкретной ревизии, чтобы показать её состояние. По умолчанию 0 (последняя ревизия). | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| timeout | 0s | Время ожидания перед завершением наблюдения; ноль означает бесконечное ожидание. Для любого другого значения необходимо указать единицу времени (например, 1s, 2m, 3h). | |
| watch | w | true | Отслеживать состояние развертывания до его завершения. |
undo
Откатиться к предыдущему развертыванию
kubectl rollout undo deployment/abc
Откатиться к ревизии 3 набора демонов
kubectl rollout undo daemonset/abc --to-revision=3
Откатиться к предыдущему развертыванию в режиме пробного запуска
kubectl rollout undo --dry-run=server deployment/abc
Откатиться к предыдущему развертыванию.
Использование
$ kubectl rollout undo (TYPE NAME | TYPE/NAME) [flags]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать любые ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его фактической отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| to-revision | 0 | Ревизия, к которой нужно откатиться. По умолчанию 0 (последняя ревизия). |
scale
Масштабировать набор реплик с именем 'foo' до 3
kubectl scale --replicas=3 rs/foo
Масштабировать ресурс, указанный типом и именем в файле "foo.yaml", до 3
kubectl scale --replicas=3 -f foo.yaml
Если текущий размер развертывания с именем mysql равен 2, масштабировать mysql до 3
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql
Масштабировать несколько контроллеров репликации
kubectl scale --replicas=5 rc/foo rc/bar rc/baz
Масштабировать stateful set с именем 'web' до 3
kubectl scale --replicas=3 statefulset/web
Задать новый размер для развертывания, набора реплик, контроллера репликации или stateful set.
Команда scale также позволяет указать одно или несколько предварительных условий для операции масштабирования.
Если указаны --current-replicas или --resource-version, значение проверяется перед выполнением масштабирования; гарантируется, что предварительное условие будет выполнено при отправке запроса на масштабирование серверу.
Использование
$ kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME)
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имён заданного ресурса | |
| allow-missing-template-keys | true | Если значение true, игнорировать любые ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| current-replicas | -1 | Предварительное условие для текущего размера. Для масштабирования текущий размер ресурса должен совпадать с этим значением. -1 (по умолчанию) означает отсутствие условия. | |
| dry-run | none | Допустимые значения: "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его фактической отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| filename | f | [] | Имя файла, каталог или URL файлов, указывающих ресурс, размер которого нужно задать |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано false, команда не записывается. Если задано true, команда записывается. Если значение не задано, по умолчанию существующее значение аннотации обновляется, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, размещёнными в одном каталоге. |
| replicas | 0 | Новое желаемое число реплик. Обязательно. | |
| resource-version | Предварительное условие для версии ресурса. Для масштабирования текущая версия ресурса должна совпадать с этим значением. | ||
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| timeout | 0s | Время ожидания перед прекращением операции масштабирования; ноль означает отсутствие ожидания. Для любого другого значения необходимо указать единицу времени (например, 1s, 2m, 3h). |
set
Настроить ресурсы приложения.
Эти команды позволяют вносить изменения в существующие ресурсы приложения.
Использование
$ kubectl set SUBCOMMAND
env
Обновить развертывание 'registry', добавив новую переменную окружения
kubectl set env deployment/registry STORAGE_DIR=/local
Вывести переменные окружения, определённые для развертывания 'sample-build'
kubectl set env deployment/sample-build --list
Вывести переменные окружения, определённые для всех подов
kubectl set env pods --all --list
Вывести изменённое развертывание в формате YAML, не изменяя объект на сервере
kubectl set env deployment/sample-build STORAGE_DIR=/data -o yaml
Задать ENV=prod для всех контейнеров во всех контроллерах репликации проекта
kubectl set env rc --all ENV=prod
Импортировать переменные окружения из секрета
kubectl set env --from=secret/mysecret deployment/myapp
Импортировать переменные окружения из config map с префиксом
kubectl set env --from=configmap/myconfigmap --prefix=MYSQL_ deployment/myapp
Импортировать отдельные ключи из config map
kubectl set env --keys=my-example-key --from=configmap/myconfigmap deployment/myapp
Удалить переменную окружения ENV из контейнера 'c1' во всех конфигурациях развертывания
kubectl set env deployments --all --containers="c1" ENV-
Удалить переменную окружения ENV из определения развертывания на диске и # обновить конфигурацию развертывания на сервере
kubectl set env -f deploy.json ENV-
Задать часть переменных окружения локальной оболочки в конфигурации развертывания на сервере
env | grep RAILS_ | kubectl set env -e - deployment/registry
Обновить переменные окружения в шаблоне пода.
Вывести определения переменных окружения в одном или нескольких подах или шаблонах подов. Добавить, обновить или удалить определения переменных окружения контейнеров в одном или нескольких шаблонах подов (в контроллерах репликации или конфигурациях развертывания). Просмотреть или изменить определения переменных окружения во всех контейнерах указанных подов или шаблонов подов либо только в тех, которые соответствуют подстановочному шаблону.
Если передан параметр "--env -", переменные окружения можно считывать из STDIN в стандартном формате env.
Возможные ресурсы (без учёта регистра):
pod (po), replicationcontroller (rc), deployment (deploy), daemonset (ds), statefulset (sts), cronjob (cj), replicaset (rs)
Использование
$ kubectl set env RESOURCE/NAME KEY_1=VAL_1 ... KEY_N=VAL_N
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| all | false | Если true, выбрать все ресурсы указанных типов в пространстве имён указанного ресурса | |
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| containers | c | * | Имена контейнеров в выбранных шаблонах pod, которые нужно изменить; можно использовать подстановочные знаки |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| env | e | [] | Задать пару ключ-значение переменной среды для каждого контейнера. |
| field-manager | kubectl-set | Имя диспетчера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов ресурса, в котором нужно обновить переменные среды |
| from | Имя ресурса, из которого следует внедрить переменные среды | ||
| keys | [] | Список ключей из указанного ресурса, разделённых запятыми | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| list | false | Если true, отобразить переменные среды и все изменения в стандартном формате. Этот флаг будет удалён, когда появится kubectl view env. | |
| local | false | Если true, команда set env НЕ будет обращаться к api-server, а выполнится локально. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| overwrite | true | Если true, разрешить перезапись переменных среды; в противном случае отклонять обновления, перезаписывающие существующие переменные среды. | |
| prefix | Префикс, добавляемый к именам переменных | ||
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| resolve | false | Если true, при выводе списка переменных показывать ссылки на secret или configmap | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемому с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
image
Задать для контейнера nginx в deployment образ 'nginx:1.9.1', а для контейнера busybox — образ 'busybox'
kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
Обновить образ контейнера nginx во всех deployment и rc на 'nginx:1.9.1'
kubectl set image deployments,rc nginx=nginx:1.9.1 --all
Обновить образ всех контейнеров daemonset abc на 'nginx:1.9.1'
kubectl set image daemonset abc *=nginx:1.9.1
Вывести результат обновления образа контейнера nginx из локального файла (в формате yaml), не обращаясь к серверу
kubectl set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yaml
Обновить образы существующих контейнеров ресурсов.
Возможные ресурсы (без учёта регистра):
pod (po), replicationcontroller (rc), deployment (deploy), daemonset (ds), statefulset (sts), cronjob (cj), replicaset (rs)
Использование
$ kubectl set image (-f FILENAME | TYPE NAME) CONTAINER_NAME_1=CONTAINER_IMAGE_1 ... CONTAINER_NAME_N=CONTAINER_IMAGE_N
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имён | |
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-set | Имя диспетчера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| local | false | Если true, команда set image НЕ будет обращаться к api-server, а выполнится локально. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано false, не записывать команду. Если задано true, записать команду. Если значение не задано, по умолчанию обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемому с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
resources
Задать для контейнера nginx в deployment ограничения CPU "200m" и памяти "512Mi"
kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi
Задать запросы и ограничения ресурсов для всех контейнеров в nginx
kubectl set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi
Удалить запросы ресурсов для ресурсов контейнеров в nginx
kubectl set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0
Вывести результат обновления ограничений контейнера nginx из локального файла (в формате yaml), не обращаясь к серверу
kubectl set resources -f path/to/file.yaml --limits=cpu=200m,memory=512Mi --local -o yaml
Указать требования к вычислительным ресурсам (CPU, память) для любого ресурса, определяющего шаблон pod. Если для pod успешно назначен узел, ему гарантируется запрошенный объём ресурсов, но он может использовать объём до указанного предела.
Для каждого вычислительного ресурса, если указан предел, а запрос не указан, запрос по умолчанию будет равен пределу.
Возможные ресурсы (без учёта регистра): используйте "kubectl api-resources", чтобы получить полный список поддерживаемых ресурсов.
Использование
$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits=LIMITS & --requests=REQUESTS]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имён | |
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| containers | c | * | Имена контейнеров в выбранных шаблонах pod, которые нужно изменить; по умолчанию выбираются все контейнеры. Можно использовать подстановочные знаки. |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-set | Имя диспетчера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| limits | Запросы ресурсов для этого контейнера. Например, 'cpu=100m,memory=256Mi'. Обратите внимание, что компоненты на стороне сервера могут назначать запросы в зависимости от конфигурации сервера, например, на основе диапазонов ограничений. | ||
| local | false | Если true, команда set resources НЕ будет обращаться к api-server, а выполнится локально. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано false, не записывать команду. Если задано true, записать команду. Если значение не задано, по умолчанию обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| requests | Запросы ресурсов для этого контейнера. Например, 'cpu=100m,memory=256Mi'. Обратите внимание, что компоненты на стороне сервера могут назначать запросы в зависимости от конфигурации сервера, например, на основе диапазонов ограничений. | ||
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Соответствующие объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемому с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
selector
Задать метки и селектор перед созданием пары deployment/service
kubectl create service clusterip my-svc --clusterip="None" -o yaml --dry-run=client | kubectl set selector --local -f - 'environment=qa' -o yaml | kubectl create -f - kubectl create deployment my-dep -o yaml --dry-run=client | kubectl label --local -f - environment=qa -o yaml | kubectl create -f -
Задать селектор для ресурса. Обратите внимание, что новый селектор заменит старый, если у ресурса был селектор до вызова команды 'set selector'.
Селектор должен начинаться с буквы или цифры и может содержать буквы, цифры, дефисы, точки и символы подчёркивания; максимальная длина — 63 символа. Если указан --resource-version, для обновления будет использоваться эта версия ресурса, в противном случае будет использоваться существующая версия ресурса. Примечание: в настоящее время селекторы можно задавать только для объектов Service.
Использование
$ kubectl set selector (-f FILENAME | TYPE NAME) EXPRESSIONS [--resource-version=version]
Флаги
| Имя | Сокращение | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имён | |
| allow-missing-template-keys | true | Если true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-set | Имя диспетчера, используемого для отслеживания владения полями. | |
| filename | f | [] | Определение ресурса. |
| local | false | Если true, команда annotation НЕ будет обращаться к api-server, а выполнится локально. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано false, не записывать команду. Если задано true, записать команду. Если значение не задано, по умолчанию обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | true | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если нужно управлять связанными манифестами, расположенными в одном каталоге. |
| resource-version | Если значение не пустое, обновление селекторов будет выполнено только в том случае, если оно совпадает с текущей версией ресурса объекта. Допустимо только при указании одного ресурса. | ||
| show-managed-fields | false | Если true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемому с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
serviceaccount
Задать для deployment nginx-deployment учётную запись службы serviceaccount1
kubectl set serviceaccount deployment nginx-deployment serviceaccount1
Вывести результат обновления deployment nginx с учётной записью службы из локального файла (в формате YAML), не обращаясь к API-серверу
kubectl set sa -f nginx-deployment.yaml serviceaccount1 --local --dry-run=client -o yaml
Обновить учетную запись службы ресурсов шаблона пода.
Возможные ресурсы (без учета регистра):
replicationcontroller (rc), deployment (deploy), daemonset (ds), job, replicaset (rs), statefulset
Использование
$ kubectl set serviceaccount (-f FILENAME | TYPE NAME) SERVICE_ACCOUNT
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имен указанного ресурса | |
| allow-missing-template-keys | true | Если задано значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, но сам он не отправляется. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-set | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс, который нужно получить с сервера. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| local | false | Если задано значение true, команда set serviceaccount НЕ будет обращаться к api-server и выполнится локально. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| record | false | Записать текущую команду kubectl в аннотацию ресурса. Если задано значение false, не записывать команду. Если задано значение true, записать команду. Если значение не задано, обновлять существующее значение аннотации, только если оно уже есть. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если связанные манифесты расположены в одном каталоге. |
| show-managed-fields | false | Если задано значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
subject
Обновить привязку роли кластера для serviceaccount1
kubectl set subject clusterrolebinding admin --serviceaccount=namespace:serviceaccount1
Обновить привязку роли для user1, user2 и group1
kubectl set subject rolebinding admin --user=user1 --user=user2 --group=group1
Вывести результат обновления субъектов rolebinding (в формате YAML), выполненного локально, без обращения к серверу
kubectl create rolebinding admin --role=admin --user=admin -o yaml --dry-run=client | kubectl set subject --local -f - --user=foo -o yaml
Обновить пользователя, группу или учетную запись службы в привязке роли или привязке роли кластера.
Использование
$ kubectl set subject (-f FILENAME | TYPE NAME) [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имен указанного ресурса | |
| allow-missing-template-keys | true | Если задано значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, но сам он не отправляется. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-set | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс, для которого нужно обновить субъектов |
| group | [] | Группы, привязываемые к роли | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| local | false | Если задано значение true, команда set subject НЕ будет обращаться к api-server и выполнится локально. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если связанные манифесты расположены в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Выбранные объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| serviceaccount | [] | Учетные записи службы, привязываемые к роли | |
| show-managed-fields | false | Если задано значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| user | [] | Имена пользователей, привязываемые к роли |
wait
Дождаться, пока под "busybox1" получит условие состояния типа "Ready"
kubectl wait --for=condition=Ready pod/busybox1
Значение условия состояния по умолчанию — true; можно ожидать и другие значения, указав их после знака равенства (сравнение выполняется после простого приведения регистра Unicode, являющегося более общим способом сравнения без учета регистра):
kubectl wait --for=condition=Ready=false pod/busybox1
Дождаться, пока фаза состояния пода "busybox1" не станет "Running".
kubectl wait --for=jsonpath='{.status.phase}'=Running pod/busybox1 Дождаться удаления пода "busybox1" в течение 60s после выполнения команды "delete"
kubectl delete pod/busybox1 kubectl wait --for=delete pod/busybox1 --timeout=60s
Экспериментальная функция: ожидание определенного условия для одного или нескольких ресурсов.
Команда принимает несколько ресурсов и ожидает, пока указанное условие не появится в поле Status каждого из заданных ресурсов.
Также команда может ожидать удаления указанного набора ресурсов, если в качестве значения флага --for указать ключевое слово "delete".
При выполнении условия в stdout будет выведено сообщение об успехе. С помощью параметра -o можно изменить место вывода.
Использование
$ kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available|--for=jsonpath='{}'=value]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| all | false | Выбрать все ресурсы указанных типов в пространстве имен | |
| all-namespaces | A | false | Если указан, вывести запрошенные объекты во всех пространствах имен. Пространство имен текущего контекста игнорируется, даже если оно задано с помощью --namespace. |
| allow-missing-template-keys | true | Если задано значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| field-selector | Селектор (запрос по полям) для фильтрации; поддерживаются '=', '==' и '!=' (например, --field-selector key1=value1,key2=value2). Сервер поддерживает лишь ограниченное число запросов по полям для каждого типа. | ||
| filename | f | [] | определяющие ресурс. |
| for | Условие, которого нужно дождаться: [delete|condition=condition-name[=condition-value]|jsonpath='{JSONPath expression}'=JSONPath Condition]. Значение condition-value по умолчанию — true. Значения условий сравниваются после простого приведения регистра Unicode, являющегося более общим способом сравнения без учета регистра. | ||
| local | false | Если задано значение true, команда annotation НЕ будет обращаться к api-server и выполнится локально. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | true | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если связанные манифесты расположены в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2) | |
| show-managed-fields | false | Если задано значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| timeout | 30s | Время ожидания до прекращения попыток. Ноль означает выполнить проверку один раз и не ждать, отрицательное значение — ждать неделю. |
РАБОТА С ПРИЛОЖЕНИЯМИ
В этом разделе приведены команды для проверки и отладки приложений.
-
logsвыводит журналы указанного пода и контейнера. -
execможно использовать для открытия интерактивной оболочки в поде и контейнере. -
describeвыводит отладочную информацию об указанном ресурсе.
attach
Получить вывод работающего пода mypod; для выбора контейнера используется аннотация 'kubectl.kubernetes.io/default-container' # если она отсутствует, будет выбран первый контейнер в поде
kubectl attach mypod
Получить вывод ruby-container из пода mypod
kubectl attach mypod -c ruby-container
Переключиться в режим необработанного терминала; передавать stdin в 'bash' контейнера ruby-container из пода mypod # и передавать stdout/stderr из 'bash' обратно клиенту
kubectl attach mypod -c ruby-container -i -t
Получить вывод первого пода набора реплик с именем nginx
kubectl attach rs/nginx
Подключиться к процессу, уже работающему в существующем контейнере.
Использование
$ kubectl attach (POD | TYPE/NAME) -c CONTAINER
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| container | c | Имя контейнера. Если не указано, для выбора контейнера используется аннотация kubectl.kubernetes.io/default-container; если она отсутствует, будет выбран первый контейнер в поде | |
| pod-running-timeout | 1m0s | Время ожидания (например, 5s, 2m или 3h; значение должно быть больше нуля), пока не запустится хотя бы один под | |
| quiet | q | false | Выводить только данные из удаленного сеанса |
| stdin | i | false | Передавать stdin в контейнер |
| tty | t | false | Stdin является TTY |
auth
Проверка авторизации
Использование
$ kubectl auth
can-i
Проверить, могу ли я создавать поды в любом пространстве имен
kubectl auth can-i create pods --all-namespaces
Проверить, могу ли я просматривать развертывания в текущем пространстве имен
kubectl auth can-i list deployments.apps
Проверить, могу ли я выполнять любые действия в текущем пространстве имен ("*" означает все)
kubectl auth can-i '*' '*'
Проверить, могу ли я получить задание с именем "bar" в пространстве имен "foo"
kubectl auth can-i list jobs.batch/bar -n foo
Проверить, могу ли я читать журналы подов
kubectl auth can-i get pods --subresource=log
Проверить, могу ли я обращаться к URL /logs/
kubectl auth can-i get /logs/
Вывести все разрешенные действия в пространстве имен "foo"
kubectl auth can-i --list --namespace=foo
Проверить, разрешено ли действие.
VERB — логический глагол API Kubernetes, например 'get', 'list', 'watch', 'delete' и т. д. TYPE — ресурс Kubernetes. Краткие имена и группы будут преобразованы. NONRESOURCEURL — частичный URL, начинающийся с "/". NAME — имя конкретного ресурса Kubernetes. Эта команда хорошо сочетается с имперсонацией. См. глобальный флаг --as.
Использование
$ kubectl auth can-i VERB [TYPE | TYPE/NAME | NONRESOURCEURL]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| all-namespaces | A | false | Если задано значение true, проверить указанное действие во всех пространствах имен. |
| list | false | Если задано значение true, вывести все разрешенные действия. | |
| no-headers | false | Если задано значение true, вывести разрешенные действия без заголовков | |
| quiet | q | false | Если задано значение true, подавить вывод и вернуть только код завершения. |
| subresource | Подресурс, например pod/log или deployment/scale |
reconcile
Согласовать ресурсы RBAC из файла
kubectl auth reconcile -f my-rbac-rules.yaml
Согласует правила для объектов RBAC role, role binding, cluster role и cluster role binding.
Отсутствующие объекты создаются; при необходимости для объектов с пространством имен создается соответствующее пространство имен.
Существующие роли обновляются с добавлением разрешений из входных объектов; лишние разрешения удаляются, если указан флаг --remove-extra-permissions.
Существующие привязки обновляются с добавлением субъектов из входных объектов; лишние субъекты удаляются, если указан флаг --remove-extra-subjects.
Для ресурсов RBAC этот способ предпочтительнее 'apply', поскольку он выполняет семантически корректное объединение правил и субъектов.
Использование
$ kubectl auth reconcile -f FILENAME
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии в шаблоне поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть равно "none", "server" или "client". При стратегии client выводить только объект, который был бы отправлен, не отправляя его. При стратегии server отправлять запрос на сервер, не сохраняя ресурс. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих ресурс для согласования. |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если связанные манифесты находятся в одном каталоге. |
| remove-extra-permissions | false | Если значение true, удалять дополнительные разрешения, добавленные в роли | |
| remove-extra-subjects | false | Если значение true, удалять дополнительные субъекты, добавленные в привязки ролей | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
cp
!!!Важное примечание!!! # В образе контейнера должен присутствовать двоичный файл 'tar'. # Если 'tar' отсутствует, команда 'kubectl cp' завершится ошибкой. # # Для сложных сценариев использования, например при работе с символическими ссылками, подстановке шаблонов или # сохранении режима доступа к файлам, рассмотрите возможность использования 'kubectl exec'. # Скопировать локальный файл /tmp/foo в /tmp/bar в удалённом поде в пространстве имён
tar cf - /tmp/foo | kubectl exec -i -n <some-namespace> <some-pod> -- tar xf - -C /tmp/bar
Скопировать /tmp/foo из удалённого пода в локальный файл /tmp/bar
kubectl exec -n <some-namespace> <some-pod> -- tar cf - /tmp/foo | tar xf - -C /tmp/bar
Скопировать локальный каталог /tmp/foo_dir в /tmp/bar_dir в удалённом поде в пространстве имён по умолчанию
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
Скопировать локальный файл /tmp/foo в /tmp/bar в удалённом поде в определённом контейнере
kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
Скопировать локальный файл /tmp/foo в /tmp/bar в удалённом поде в пространстве имён
kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar
Скопировать /tmp/foo из удалённого пода в локальный файл /tmp/bar
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
Копирование файлов и каталогов в контейнеры и из них.
Использование
$ kubectl cp <file-spec-src> <file-spec-dest>
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| container | c | Имя контейнера. Если не указано, для выбора контейнера, к которому нужно подключиться, используется аннотация kubectl.kubernetes.io/default-container; в противном случае будет выбран первый контейнер в поде | |
| no-preserve | false | Владельцы и разрешения скопированного файла или каталога не будут сохранены в контейнере | |
| retries | 0 | Задать число повторных попыток завершения операции копирования из контейнера. Укажите 0, чтобы отключить повторы, или отрицательное значение для бесконечных повторов. По умолчанию — 0 (без повторов). |
describe
Описать узел
kubectl describe nodes kubernetes-node-emt8.c.myproject.internal
Описать под
kubectl describe pods/nginx
Описать под, указанный типом и именем в файле "pod.json"
kubectl describe -f pod.json
Описать все поды
kubectl describe pods
Описать поды по метке name=myLabel
kubectl describe po -l name=myLabel
Описать все поды, управляемые контроллером репликации 'frontend' # (имя подов, созданных контроллером репликации, начинается с имени контроллера)
kubectl describe pods frontend
Показать сведения об указанном ресурсе или группе ресурсов.
Вывести подробное описание выбранных ресурсов, включая связанные ресурсы, например события или контроллеры. Можно выбрать один объект по имени, все объекты этого типа, указать префикс имени или селектор меток. Например:
$ kubectl describe TYPE NAME_PREFIX
сначала будет выполнен поиск точного соответствия TYPE и NAME_PREFIX. Если такой ресурс не найден, будут выведены сведения обо всех ресурсах, имена которых начинаются с NAME_PREFIX.
Чтобы просмотреть полный список поддерживаемых ресурсов, используйте "kubectl api-resources".
Использование
$ kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME)
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| all-namespaces | A | false | Если указано, вывести запрошенные объекты во всех пространствах имён. Пространство имён текущего контекста игнорируется, даже если оно указано с помощью --namespace. |
| chunk-size | 500 | Возвращать большие списки частями, а не целиком. Передайте 0, чтобы отключить эту возможность. Этот флаг находится в бета-версии и может измениться в будущем. | |
| filename | f | [] | Имя файла, каталог или URL файлов, содержащих описываемый ресурс |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| recursive | R | false | Рекурсивно обработать каталог, указанный в -f, --filename. Полезно, если связанные манифесты находятся в одном каталоге. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны соответствовать всем указанным ограничениям по меткам. | |
| show-events | true | Если значение true, отображать события, связанные с описываемым объектом. |
events
Вывести последние события в пространстве имён по умолчанию.
kubectl events
Вывести последние события во всех пространствах имён.
kubectl events --all-namespaces
Вывести последние события для указанного пода, а затем ожидать новые события и выводить их по мере поступления.
kubectl events --for pod/web-pod-13je7 --watch
Вывести последние события в указанном формате. Помимо формата по умолчанию поддерживаются json и yaml.
kubectl events -oyaml
Вывести только последние события указанных типов
kubectl events --types=Warning,Normal
Отобразить события
Вывести таблицу с наиболее важными сведениями о событиях. Можно запросить события для одного пространства имён, для всех пространств имён или отфильтровать их, оставив только события, относящиеся к указанному ресурсу.
Использование
$ kubectl events [(-o|--output=)json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file] [--for TYPE/NAME] [--watch] [--event=Normal,Warning]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| all-namespaces | A | false | Если указано, вывести запрошенные объекты во всех пространствах имён. Пространство имён текущего контекста игнорируется, даже если оно указано с помощью --namespace. |
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии в шаблоне поля или ключа карты. Применяется только к форматам вывода golang и jsonpath. | |
| chunk-size | 500 | Возвращать большие списки частями, а не целиком. Передайте 0, чтобы отключить эту возможность. Этот флаг находится в бета-версии и может измениться в будущем. | |
| for | Фильтровать события, оставляя только относящиеся к указанному ресурсу. | ||
| no-headers | false | При использовании формата вывода по умолчанию не выводить заголовки. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона для использования с -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| types | [] | Выводить только события указанных типов. | |
| watch | w | false | После вывода запрошенных событий ожидать новые события. |
exec
Получить вывод команды 'date', запущенной в поде mypod; по умолчанию используется первый контейнер
kubectl exec mypod -- date
Получить вывод команды 'date', запущенной в ruby-container пода mypod
kubectl exec mypod -c ruby-container -- date
Переключиться в режим необработанного терминала; передавать stdin команде 'bash' в ruby-container пода mypod # и отправлять stdout/stderr команды 'bash' обратно клиенту
kubectl exec mypod -c ruby-container -i -t -- bash -il
Вывести содержимое /usr из первого контейнера пода mypod и отсортировать по времени изменения # Если у команды, которую нужно выполнить в поде, есть флаги, совпадающие с флагами kubectl (например, -i), # используйте два дефиса (--) для отделения флагов и аргументов команды # Также не заключайте команду и её флаги или аргументы в кавычки, # если обычно вы запускаете её без кавычек (то есть используйте ls -t /usr, а не "ls -t /usr")
kubectl exec mypod -i -t -- ls -t /usr
Получить вывод команды 'date', запущенной в первом поде развёртывания mydeployment; по умолчанию используется первый контейнер
kubectl exec deploy/mydeployment -- date
Получить вывод команды 'date', запущенной в первом поде сервиса myservice; по умолчанию используется первый контейнер
kubectl exec svc/myservice -- date
Выполнить команду в контейнере.
Использование
$ kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| container | c | Имя контейнера. Если не указано, для выбора контейнера, к которому нужно подключиться, используется аннотация kubectl.kubernetes.io/default-container; в противном случае будет выбран первый контейнер в поде | |
| filename | f | [] | Файл, используемый для выполнения команды в ресурсе |
| pod-running-timeout | 1m0s | Время ожидания (например, 5s, 2m или 3h; значение должно быть больше нуля), пока хотя бы один под не перейдёт в состояние выполнения | |
| quiet | q | false | Выводить только результаты удалённого сеанса |
| stdin | i | false | Передавать stdin в контейнер |
| tty | t | false | Stdin — это TTY |
logs
Получить снимок журналов пода nginx с одним контейнером
kubectl logs nginx
Получить снимок журналов пода nginx с несколькими контейнерами
kubectl logs nginx --all-containers=true
Получить снимок журналов всех контейнеров в подах, выбранных по метке app=nginx
kubectl logs -l app=nginx --all-containers=true
Получить снимок журналов предыдущего завершившего работу контейнера ruby в поде web-1
kubectl logs -p -c ruby web-1
Начать потоковую передачу журналов контейнера ruby в поде web-1
kubectl logs -f -c ruby web-1
Начать потоковую передачу журналов всех контейнеров в подах, выбранных по метке app=nginx
kubectl logs -f -l app=nginx --all-containers=true
Показать только 20 последних строк вывода в поде nginx
kubectl logs --tail=20 nginx
Показать все журналы пода nginx, записанные за последний час
kubectl logs --since=1h nginx
Показать журналы kubelet с просроченным сертификатом сервера
kubectl logs --insecure-skip-tls-verify-backend nginx
Получить снимок журналов первого контейнера задания с именем hello
kubectl logs job/hello
Получить снимок журналов контейнера nginx-1 развёртывания с именем nginx
kubectl logs deployment/nginx -c nginx-1
Вывести журналы контейнера в поде или указанном ресурсе. Если в поде только один контейнер, имя контейнера можно не указывать.
Использование
$ kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| all-containers | false | Получить журналы всех контейнеров в поде (подах). | |
| container | c | Вывести журналы этого контейнера | |
| follow | f | false | Указать, следует ли передавать журналы в потоковом режиме. |
| ignore-errors | false | При просмотре журналов пода в режиме реального времени разрешить возникновение ошибок без завершения команды | |
| insecure-skip-tls-verify-backend | false | Не проверять идентификатор kubelet, у которого запрашиваются журналы. Теоретически злоумышленник может предоставить недостоверное содержимое журналов. Этот параметр может пригодиться, если срок действия сертификатов kubelet истёк. | |
| limit-bytes | 0 | Максимальное количество байтов журналов для возврата. По умолчанию ограничение отсутствует. | |
| max-log-requests | 5 | Указать максимальное число журналов, за которыми можно следить одновременно при использовании селектора. По умолчанию — 5. | |
| pod-running-timeout | 20s | Время ожидания (например, 5s, 2m или 3h; значение должно быть больше нуля), пока не запустится хотя бы один под | |
| prefix | false | Добавлять в начало каждой строки журнала источник журнала (имя пода и контейнера) | |
| previous | p | false | Если значение равно true, вывести журналы предыдущего экземпляра контейнера в поде, если он существует. |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны соответствовать всем указанным ограничениям меток. | |
| since | 0s | Возвращать только журналы за указанный относительный период, например 5s, 2m или 3h. По умолчанию возвращаются все журналы. Можно использовать только один из параметров since-time и since. | |
| since-time | Возвращать только журналы после указанной даты (RFC3339). По умолчанию возвращаются все журналы. Можно использовать только один из параметров since-time и since. | ||
| tail | -1 | Количество последних строк файла журнала для отображения. По умолчанию — -1, то есть отображаются все строки журнала, если селектор не задан; если селектор задан, по умолчанию отображаются последние 10 строк. | |
| timestamps | false | Добавлять временные метки к каждой строке вывода журнала |
port-forward
Прослушивать локально порты 5000 и 6000, перенаправляя данные в под и из него через порты 5000 и 6000
kubectl port-forward pod/mypod 5000 6000
Прослушивать локально порты 5000 и 6000, перенаправляя данные в под, выбранный развертыванием, и из него через порты 5000 и 6000
kubectl port-forward deployment/mydeployment 5000 6000
Прослушивать локальный порт 8443, перенаправляя данные на targetPort порта службы с именем "https" в поде, выбранном службой
kubectl port-forward service/myservice 8443:https
Прослушивать порт 8888 локально, перенаправляя данные на порт 5000 в поде
kubectl port-forward pod/mypod 8888:5000
Прослушивать порт 8888 на всех адресах, перенаправляя данные на порт 5000 в поде
kubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000
Прослушивать порт 8888 на localhost и выбранном IP-адресе, перенаправляя данные на порт 5000 в поде
kubectl port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000
Прослушивать случайный порт локально, перенаправляя данные на порт 5000 в поде
kubectl port-forward pod/mypod :5000
Перенаправить один или несколько локальных портов в под.
Используйте тип/имя ресурса, например deployment/mydeployment, чтобы выбрать под. Если тип ресурса не указан, по умолчанию используется 'pod'.
Если критериям соответствуют несколько подов, под будет выбран автоматически. Сеанс перенаправления завершится, когда выбранный под будет остановлен; чтобы возобновить перенаправление, команду необходимо запустить повторно.
Использование
$ kubectl port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| address | [localhost] | Адреса для прослушивания (через запятую). Допускаются только IP-адреса или localhost. Если указано localhost, kubectl попытается привязаться и к 127.0.0.1, и к ::1 и завершит работу с ошибкой, если ни один из этих адресов недоступен для привязки. | |
| pod-running-timeout | 1m0s | Время ожидания (например, 5s, 2m или 3h; значение должно быть больше нуля), пока не запустится хотя бы один под |
proxy
Чтобы проксировать весь API Kubernetes и ничего больше
kubectl proxy --api-prefix=/
Чтобы проксировать только часть API Kubernetes, а также некоторые статические файлы # Информацию о подах можно получить с помощью 'curl localhost:8001/api/v1/pods'
kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/
Чтобы проксировать весь API Kubernetes по другому корневому пути # Информацию о подах можно получить с помощью 'curl localhost:8001/custom/api/v1/pods'
kubectl proxy --api-prefix=/custom/
Запустить прокси-сервер для API-сервера Kubernetes на порту 8011, предоставляя статическое содержимое из ./local/www/
kubectl proxy --port=8011 --www=./local/www/
Запустить прокси-сервер для API-сервера Kubernetes на произвольном локальном порту # Выбранный порт сервера будет выведен в stdout
kubectl proxy --port=0
Запустить прокси-сервер для API-сервера Kubernetes, изменив префикс API на k8s-api # Например, API подов станет доступен по адресу localhost:8001/k8s-api/v1/pods/
kubectl proxy --api-prefix=/k8s-api
Создаёт прокси-сервер или шлюз прикладного уровня между localhost и API-сервером Kubernetes. Также позволяет предоставлять статическое содержимое по указанному пути HTTP. Все входящие данные поступают через один порт и перенаправляются на порт удалённого API-сервера Kubernetes, за исключением пути, соответствующего пути статического содержимого.
Использование
$ kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| accept-hosts | ^localhost$,^127.0.0.1$,^[::1]$ | Регулярное выражение для хостов, запросы с которых прокси должен принимать. | |
| accept-paths | ^.* | Регулярное выражение для путей, которые прокси должен принимать. | |
| address | 127.0.0.1 | IP-адрес, на котором будет работать сервер. | |
| api-prefix | / | Префикс, под которым будет предоставляться проксируемый API. | |
| append-server-path | false | Если значение равно true, автоматически добавлять путь сервера из контекста kube к каждому запросу. | |
| disable-filter | false | Если значение равно true, отключить фильтрацию запросов в прокси. Это опасно и может сделать вас уязвимыми для атак XSRF при использовании доступного порта. | |
| keepalive | 0s | keepalive задаёт период поддержания активности для действующего сетевого соединения. Установите значение 0, чтобы отключить keepalive. | |
| port | p | 8001 | Порт, на котором будет работать прокси. Установите значение 0, чтобы выбрать случайный порт. |
| reject-methods | ^$ | Регулярное выражение для методов HTTP, запросы с которыми прокси должен отклонять (пример: --reject-methods='POST,PUT,PATCH'). | |
| reject-paths | ^/api/./pods/./exec,^/api/./pods/./attach | Регулярное выражение для путей, запросы к которым прокси должен отклонять. Указанные здесь пути будут отклоняться, даже если они соответствуют --accept-paths. | |
| unix-socket | u | Unix-сокет, на котором будет работать прокси. | |
| www | w | Также предоставлять статические файлы из указанного каталога по заданному префиксу. | |
| www-prefix | P | /static/ | Префикс для предоставления статических файлов, если указан каталог со статическими файлами. |
top
Отображение использования ресурсов (ЦП/память).
Команда top позволяет просматривать потребление ресурсов узлами или подами.
Для работы этой команды Metrics Server должен быть правильно настроен и функционировать на сервере.
Использование
$ kubectl top
node
Показать метрики для всех узлов
kubectl top node
Показать метрики для указанного узла
kubectl top node NODE_NAME
Отображение использования ресурсов (ЦП/память) узлами.
Команда top-node позволяет просматривать потребление ресурсов узлами.
Использование
$ kubectl top node [NAME | -l label]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| no-headers | false | Если указан, выводить результат без заголовков | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны соответствовать всем указанным ограничениям меток. | |
| show-capacity | false | Выводить ресурсы узлов на основе Capacity, а не Allocatable (значение по умолчанию). | |
| sort-by | Если указано, сортировать список узлов по заданному полю. Полем может быть 'cpu' или 'memory'. | ||
| use-protocol-buffers | true | Использовать protocol-buffers для доступа к Metrics API. |
pod
Показать метрики для всех подов в пространстве имён по умолчанию
kubectl top pod
Показать метрики для всех подов в указанном пространстве имён
kubectl top pod --namespace=NAMESPACE
Показать метрики для указанного пода и его контейнеров
kubectl top pod POD_NAME --containers
Показать метрики для подов, выбранных по метке name=myLabel
kubectl top pod -l name=myLabel
Отображение использования ресурсов (ЦП/память) подами.
Команда 'top pod' позволяет просматривать потребление ресурсов подами.
Из-за задержки в конвейере сбора метрик они могут быть недоступны в течение нескольких минут после создания пода.
Использование
$ kubectl top pod [NAME | -l label]
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| all-namespaces | A | false | Если указан, выводить запрошенные объекты во всех пространствах имён. Пространство имён текущего контекста игнорируется, даже если оно задано с помощью --namespace. |
| containers | false | Если указан, выводить сведения об использовании ресурсов контейнерами в поде. | |
| field-selector | Селектор (запрос по полям) для фильтрации; поддерживаются '=', '==' и '!=' (например, --field-selector key1=value1,key2=value2). Сервер поддерживает только ограниченное число запросов по полям для каждого типа. | ||
| no-headers | false | Если указан, выводить результат без заголовков. | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны соответствовать всем указанным ограничениям меток. | |
| sort-by | Если указано, сортировать список подов по заданному полю. Полем может быть 'cpu' или 'memory'. | ||
| sum | false | Вывести суммарное использование ресурсов | |
| use-protocol-buffers | true | Использовать protocol-buffers для доступа к Metrics API. |
УПРАВЛЕНИЕ КЛАСТЕРОМ
api-versions
Вывести поддерживаемые версии API
kubectl api-versions
Вывести поддерживаемые на сервере версии API в формате "group/version".
Использование
$ kubectl api-versions
api-resources
Вывести поддерживаемые ресурсы API
kubectl api-resources
Вывести поддерживаемые ресурсы API с дополнительной информацией
kubectl api-resources -o wide
Вывести поддерживаемые ресурсы API, отсортированные по столбцу
kubectl api-resources --sort-by=name
Вывести поддерживаемые ресурсы с пространствами имён
kubectl api-resources --namespaced=true
Вывести поддерживаемые ресурсы без пространств имён
kubectl api-resources --namespaced=false
Вывести поддерживаемые ресурсы API для указанной группы API
kubectl api-resources --api-group=rbac.authorization.k8s.io
Вывести поддерживаемые на сервере ресурсы API.
Использование
$ kubectl api-resources
Флаги
| Название | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| api-group | Ограничить список ресурсами указанной группы API. | ||
| cached | false | Использовать кэшированный список ресурсов, если он доступен. | |
| categories | [] | Ограничить список ресурсами, принадлежащими указанным категориям. | |
| namespaced | true | Если значение равно false, будут возвращены ресурсы без пространств имён; в противном случае по умолчанию возвращаются ресурсы с пространствами имён. | |
| no-headers | false | При использовании формата вывода по умолчанию или формата с пользовательскими столбцами не выводить заголовки (по умолчанию заголовки выводятся). | |
| output | o | Формат вывода. Один из следующих: (wide, name). | |
| sort-by | Если указано, сортировать список ресурсов по заданному полю. Полем может быть 'name' или 'kind'. | ||
| verbs | [] | Ограничить список ресурсами, поддерживающими указанные глаголы. |
certificate
Изменение ресурсов сертификатов.
Использование
$ kubectl certificate SUBCOMMAND
approve
Одобрить CSR 'csr-sqgzp'
kubectl certificate approve csr-sqgzp
Одобрить запрос на подписание сертификата.
kubectl certificate approve позволяет администратору кластера одобрить запрос на подписание сертификата (CSR). Это действие сообщает контроллеру подписания сертификатов, что нужно выдать запрашивающему сертификат с атрибутами, указанными в CSR.
УВЕДОМЛЕНИЕ О БЕЗОПАСНОСТИ: в зависимости от запрошенных атрибутов выданный сертификат потенциально может предоставить запрашивающему доступ к ресурсам кластера или возможность аутентификации от имени запрошенной учетной записи. Прежде чем одобрить CSR, убедитесь, что понимаете, какие действия можно выполнять с помощью подписанного сертификата.
Использование
$ kubectl certificate approve (-f FILENAME | NAME)
Флаги
| Имя | Краткая форма | Значение по умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие, когда в шаблоне отсутствует поле или ключ карты. Применяется только к форматам вывода golang и jsonpath. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих обновляемый ресурс |
| force | false | Обновить CSR, даже если он уже одобрен. | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный с помощью -f, --filename. Удобно, когда нужно управлять связанными манифестами, расположенными в одном каталоге. |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
deny
Отклонить CSR 'csr-sqgzp'
kubectl certificate deny csr-sqgzp
Отклонить запрос на подпись сертификата.
kubectl certificate deny позволяет администратору кластера отклонить запрос на подпись сертификата (CSR). Это действие сообщает контроллеру подписи сертификатов, что не следует выдавать сертификат запрашивающему.
Использование
$ kubectl certificate deny (-f FILENAME | NAME)
Флаги
| Имя | Краткая форма | Значение по умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие, когда в шаблоне отсутствует поле или ключ карты. Применяется только к форматам вывода golang и jsonpath. | |
| filename | f | [] | Имя файла, каталог или URL файлов, определяющих обновляемый ресурс |
| force | false | Обновить CSR, даже если он уже отклонен. | |
| kustomize | k | Обработать каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| recursive | R | false | Рекурсивно обработать каталог, указанный с помощью -f, --filename. Удобно, когда нужно управлять связанными манифестами, расположенными в одном каталоге. |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
cluster-info
Вывести адрес плоскости управления и служб кластера
kubectl cluster-info
Показать адреса плоскости управления и служб с меткой kubernetes.io/cluster-service=true. Для дальнейшей отладки и диагностики проблем кластера используйте 'kubectl cluster-info dump'.
Использование
$ kubectl cluster-info
dump
Вывести текущее состояние кластера в stdout
kubectl cluster-info dump
Вывести текущее состояние кластера в /path/to/cluster-state
kubectl cluster-info dump --output-directory=/path/to/cluster-state
Вывести все пространства имен в stdout
kubectl cluster-info dump --all-namespaces
Вывести набор пространств имен в /path/to/cluster-state
kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state
Вывести сведения о кластере для отладки и диагностики проблем. По умолчанию все данные выводятся в stdout. При необходимости можно указать каталог с помощью --output-directory. Если указан каталог, Kubernetes создаст в нем набор файлов. По умолчанию выводятся данные только из текущего пространства имен и пространства имен 'kube-system', но можно выбрать другое пространство имен с помощью флага --namespaces или указать --all-namespaces, чтобы вывести данные из всех пространств имен.
Команда также выводит журналы всех подов в кластере; они сохраняются в разных каталогах в зависимости от пространства имен и имени пода.
Использование
$ kubectl cluster-info dump
Флаги
| Имя | Краткая форма | Значение по умолчанию | Описание |
|---|---|---|---|
| all-namespaces | A | false | Если значение true, вывести данные всех пространств имен. Если значение true, параметр --namespaces игнорируется. |
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие, когда в шаблоне отсутствует поле или ключ карты. Применяется только к форматам вывода golang и jsonpath. | |
| namespaces | [] | Список пространств имен для вывода, разделенный запятыми. | |
| output | o | json | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). |
| output-directory | Каталог для выходных файлов. Если значение пустое или равно '-', используется stdout; в противном случае в этом каталоге создается иерархия каталогов | ||
| pod-running-timeout | 20s | Время (например, 5s, 2m или 3h; должно быть больше нуля), в течение которого ожидается запуск хотя бы одного пода | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблонов — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
cordon
Пометить узел "foo" как недоступный для планирования
kubectl cordon foo
Пометить узел как недоступный для планирования.
Использование
$ kubectl cordon NODE
Флаги
| Имя | Краткая форма | Значение по умолчанию | Описание |
|---|---|---|---|
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны соответствовать всем указанным ограничениям по меткам. |
drain
Вывести узел "foo" из эксплуатации, даже если на нем есть поды, не управляемые контроллером репликации, набором реплик, заданием, набором демонов или набором с отслеживанием состояния
kubectl drain foo --force
Как выше, но прервать выполнение, если есть поды, не управляемые контроллером репликации, набором реплик, заданием, набором демонов или набором с отслеживанием состояния, и использовать льготный период в 15 минут
kubectl drain foo --grace-period=900
Вывести узел из эксплуатации для подготовки к обслуживанию.
Указанный узел будет помечен как недоступный для планирования, чтобы на него не назначались новые поды. Команда 'drain' выселяет поды, если API-сервер поддерживает выселение https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ . В противном случае для удаления подов используется обычный запрос DELETE. Команда 'drain' выселяет или удаляет все поды, кроме зеркальных (их нельзя удалить через API-сервер). Если на узле есть поды, управляемые набором демонов, команда drain не продолжит работу без --ignore-daemonsets и в любом случае не удалит такие поды, поскольку контроллер набора демонов немедленно создаст их заново, игнорируя отметки о недоступности для планирования. Если есть поды, которые не являются зеркальными и не управляются контроллером репликации, набором реплик, набором демонов, набором с отслеживанием состояния или заданием, команда drain не удалит их без флага --force. Флаг --force также позволяет продолжить удаление, если отсутствует управляющий ресурс одного или нескольких подов.
Команда 'drain' ожидает завершения с учетом льготного периода. Не выполняйте операции на машине, пока команда не завершится.
Когда будете готовы снова ввести узел в эксплуатацию, используйте kubectl uncordon, чтобы снова сделать узел доступным для планирования.
https://kubernetes.io/images/docs/kubectl_drain.svg Рабочий процессhttps://kubernetes.io/images/docs/kubectl_drain.svg
Использование
$ kubectl drain NODE
Флаги
| Имя | Краткая форма | Значение по умолчанию | Описание |
|---|---|---|---|
| chunk-size | 500 | Возвращать большие списки частями, а не целиком. Укажите 0, чтобы отключить эту возможность. Этот флаг находится на стадии бета-тестирования и может измениться в будущем. | |
| delete-emptydir-data | false | Продолжить, даже если есть поды, использующие emptyDir (локальные данные, которые будут удалены при выводе узла из эксплуатации). | |
| delete-local-data | false | Продолжить, даже если есть поды, использующие emptyDir (локальные данные, которые будут удалены при выводе узла из эксплуатации). | |
| disable-eviction | false | Принудительно использовать для drain удаление, даже если поддерживается выселение. При этом проверка PodDisruptionBudgets будет пропущена; используйте с осторожностью. | |
| dry-run | none | Должно быть указано "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| force | false | Продолжить, даже если есть поды, для которых не объявлен контроллер. | |
| grace-period | -1 | Время в секундах, предоставляемое каждому поду для корректного завершения. Если значение отрицательное, используется значение по умолчанию, указанное в поде. | |
| ignore-daemonsets | false | Игнорировать поды, управляемые DaemonSet. | |
| pod-selector | Селектор меток для фильтрации подов на узле | ||
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживаются '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны соответствовать всем указанным ограничениям по меткам. | |
| skip-wait-for-delete-timeout | 0 | Если с момента установки DeletionTimestamp пода прошло больше N секунд, не ожидать завершения пода. Для пропуска ожидания количество секунд должно быть больше 0. | |
| timeout | 0s | Время ожидания до прекращения операции; ноль означает бесконечное ожидание |
taint
Обновить узел 'foo', добавив пометку с ключом 'dedicated', значением 'special-user' и эффектом 'NoSchedule' # Если пометка с таким ключом и эффектом уже существует, ее значение будет заменено указанным
kubectl taint nodes foo dedicated=special-user:NoSchedule
Удалить с узла 'foo' пометку с ключом 'dedicated' и эффектом 'NoSchedule', если она существует
kubectl taint nodes foo dedicated:NoSchedule-
Удалить с узла 'foo' все пометки с ключом 'dedicated'
kubectl taint nodes foo dedicated-
Добавить пометку с ключом 'dedicated' узлам с меткой mylabel=X
kubectl taint node -l myLabel=X dedicated=foo:PreferNoSchedule
Добавить узлу 'foo' пометку с ключом 'bar' без значения
kubectl taint nodes foo bar:NoSchedule
Обновить пометки одного или нескольких узлов.
Пометка состоит из ключа, значения и эффекта. Здесь она задается в формате key=value:effect.
Ключ должен начинаться с буквы или цифры и может содержать буквы, цифры, дефисы, точки и символы подчеркивания; максимальная длина — 253 символа.
При необходимости перед ключом можно указать префикс DNS-поддомена и один символ '/', например example.com/my-app.
Значение необязательно. Если оно указано, то должно начинаться с буквы или цифры и может содержать буквы, цифры, дефисы, точки и символы подчеркивания; максимальная длина — 63 символа.
Эффект должен быть NoSchedule, PreferNoSchedule или NoExecute.
В настоящее время пометки можно применять только к узлам.
Использование
$ kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| all | false | Выбрать все узлы в кластере | |
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| field-manager | kubectl-taint | Имя диспетчера, используемое для отслеживания владения полями. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| overwrite | false | Если значение true, разрешить перезапись taint-меток; в противном случае отклонять обновления taint-меток, перезаписывающие существующие. | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживает '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным ограничениям по меткам. | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | strict | Должно быть задано одно из значений: strict (или true), warn, ignore (или false). Значение "true" или "strict" включает проверку входных данных по схеме и отклоняет запрос, если данные недействительны. Если на api-server включена ServerSideFieldValidation, проверка выполняется на стороне сервера; в противном случае используется менее надежная проверка на стороне клиента. Значение "warn" вызывает предупреждение о неизвестных или повторяющихся полях, не блокируя запрос, если на API-сервере включена проверка полей на стороне сервера; в противном случае ведет себя как "ignore". Значение "false" или "ignore" отключает проверку по схеме, без предупреждения удаляя все неизвестные или повторяющиеся поля. |
uncordon
Пометить узел "foo" как доступный для планирования
kubectl uncordon foo
Пометить узел как доступный для планирования.
Использование
$ kubectl uncordon NODE
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| dry-run | none | Должно быть задано значение "none", "server" или "client". При стратегии client выводится только объект, который был бы отправлен, без его отправки. При стратегии server отправляется запрос на сервер без сохранения ресурса. | |
| selector | l | Селектор (запрос по меткам) для фильтрации; поддерживает '=', '==' и '!=' (например, -l key1=value1,key2=value2). Объекты должны удовлетворять всем указанным ограничениям по меткам. |
НАСТРОЙКИ И ИСПОЛЬЗОВАНИЕ KUBECTL
alpha
Эти команды соответствуют альфа-функциям, которые по умолчанию не включены в кластерах Kubernetes.
Использование
$ kubectl alpha
auth
Проверить авторизацию
Использование
$ kubectl alpha auth
auth whoami
Получить атрибуты субъекта.
kubectl alpha auth whoami
Получить атрибуты субъекта в формате JSON.
kubectl alpha auth whoami -o json
Экспериментальная команда: определить, кто вы и каковы ваши атрибуты (группы, дополнительные атрибуты).
Эта команда помогает узнать текущие атрибуты пользователя, особенно если в кластере Kubernetes включена динамическая аутентификация, например через token webhook, прокси аутентификации или поставщика OIDC.
Использование
$ kubectl alpha auth whoami
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| output | o | Формат вывода. Один из: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
completion
Установка автодополнения bash в macOS с помощью homebrew ## Если используется Bash 3.2, входящий в состав macOS
brew install bash-completion
или, если используется Bash 4.1+
brew install bash-completion@2
Если kubectl установлен через homebrew, автодополнение должно сразу заработать ## Если установка выполнялась другим способом, возможно, потребуется добавить автодополнение в каталог автодополнения
kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl
Установка автодополнения bash в Linux ## Если в Linux не установлен bash-completion, установите пакет 'bash-completion' ## с помощью менеджера пакетов вашего дистрибутива. ## Загрузить код автодополнения kubectl для bash в текущую оболочку
source <(kubectl completion bash)
Записать код автодополнения bash в файл и подключить его из .bash_profile
kubectl completion bash > ~/.kube/completion.bash.inc printf "
Автодополнение kubectl в оболочке
source '$HOME/.kube/completion.bash.inc' " >> $HOME/.bash_profile source $HOME/.bash_profile
Загрузить код автодополнения kubectl для zsh[1] в текущую оболочку
source <(kubectl completion zsh)
Настроить автозагрузку кода автодополнения kubectl для zsh[1] при запуске
kubectl completion zsh > "${fpath[1]}/_kubectl" Загрузить код автодополнения kubectl для fish[2] в текущую оболочку
kubectl completion fish | source
Чтобы загружать автодополнение в каждом сеансе, выполните один раз:
kubectl completion fish > ~/.config/fish/completions/kubectl.fish
Загрузить код автодополнения kubectl для powershell в текущую оболочку
kubectl completion powershell | Out-String | Invoke-Expression
Настроить запуск кода автодополнения kubectl для powershell при запуске ## Сохранить код автодополнения в скрипт и выполнить его в профиле
kubectl completion powershell > $HOME\.kube\completion.ps1 Add-Content $PROFILE "$HOME\.kube\completion.ps1"
Выполнить код автодополнения в профиле
Add-Content $PROFILE "if (Get-Command kubectl -ErrorAction SilentlyContinue) { kubectl completion powershell | Out-String | Invoke-Expression }" Добавить код автодополнения непосредственно в скрипт $PROFILE
kubectl completion powershell >> $PROFILE
Вывести код автодополнения для указанной оболочки (bash, zsh, fish или powershell). Для обеспечения интерактивного автодополнения команд kubectl необходимо выполнить код оболочки. Это можно сделать, подключив его из .bash_profile.
Подробные инструкции доступны здесь:
для macOS:
https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/#enable-shell-autocompletion
для Linux:
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#enable-shell-autocompletion
для Windows:
https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/#enable-shell-autocompletion
Примечание для пользователей zsh: [1] автодополнение zsh поддерживается только в версиях zsh >= 5.2.
Использование
$ kubectl completion SHELL
config
Изменение файлов kubeconfig с помощью подкоманд, например "kubectl config set current-context my-context"
Порядок загрузки определяется следующими правилами:
1. Если задан флаг --kubeconfig, загружается только указанный файл. Флаг можно задать только один раз; объединение файлов не выполняется.
2. Если задана переменная окружения $KUBECONFIG, она используется как список путей (с обычными для вашей системы правилами разделения путей). Указанные файлы объединяются. При изменении значения оно изменяется в файле, где определен соответствующий раздел. Новое значение создается в первом существующем файле. Если ни один файл в списке не существует, создается последний файл списка.
3. В противном случае используется ${HOME}/.kube/config, объединение файлов не выполняется.
Использование
$ kubectl config SUBCOMMAND
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| kubeconfig | использовать указанный файл kubeconfig |
current-context
Показать текущий контекст
kubectl config current-context
Показать текущий контекст.
Использование
$ kubectl config current-context
delete-cluster
Удалить кластер minikube
kubectl config delete-cluster minikube
Удалить указанный кластер из kubeconfig.
Использование
$ kubectl config delete-cluster NAME
delete-context
Удалить контекст кластера minikube
kubectl config delete-context minikube
Удалить указанный контекст из kubeconfig.
Использование
$ kubectl config delete-context NAME
delete-user
Удалить пользователя minikube
kubectl config delete-user minikube
Удалить указанного пользователя из kubeconfig.
Использование
$ kubectl config delete-user NAME
get-clusters
Вывести список кластеров, известных kubectl
kubectl config get-clusters
Показать кластеры, определенные в kubeconfig.
Использование
$ kubectl config get-clusters
get-contexts
Вывести список всех контекстов в файле kubeconfig
kubectl config get-contexts
Описать один контекст в файле kubeconfig
kubectl config get-contexts my-context
Показать один или несколько контекстов из файла kubeconfig.
Использование
$ kubectl config get-contexts [(-o|--output=)name)]
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| no-headers | false | При использовании формата вывода по умолчанию или custom-column не выводить заголовки (по умолчанию заголовки выводятся). | |
| output | o | Формат вывода. Один из: (name). |
get-users
Вывести список пользователей, известных kubectl
kubectl config get-users
Показать пользователей, определенных в kubeconfig.
Использование
$ kubectl config get-users
rename-context
Переименовать контекст 'old-name' в 'new-name' в файле kubeconfig
kubectl config rename-context old-name new-name
Переименовать контекст в файле kubeconfig.
CONTEXT_NAME — имя контекста, которое нужно изменить.
NEW_NAME — новое имя, которое нужно задать.
Примечание: если переименовываемый контекст является 'current-context', это поле также будет обновлено.
Использование
$ kubectl config rename-context CONTEXT_NAME NEW_NAME
set
Задать для поля server кластера my-cluster значение https://1.2.3.4
kubectl config set clusters.my-cluster.server https://1.2.3.4
Задать поле certificate-authority-data кластера my-cluster
kubectl config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64 -i -)
Задать для поля cluster контекста my-context значение my-cluster
kubectl config set contexts.my-context.cluster my-cluster
Задать поле client-key-data пользователя cluster-admin с помощью параметра --set-raw-bytes
kubectl config set users.cluster-admin.client-key-data cert_data_here --set-raw-bytes=true
Задать отдельное значение в файле kubeconfig.
PROPERTY_NAME — имя, разделенное точками, где каждый элемент обозначает имя атрибута или ключ карты. Ключи карты не могут содержать точки.
PROPERTY_VALUE — новое значение, которое нужно задать. Для двоичных полей, таких как 'certificate-authority-data', требуется строка в кодировке base64, если не используется флаг --set-raw-bytes.
Если указать имя атрибута, которое уже существует, новые поля будут объединены с существующими значениями.
Использование
$ kubectl config set PROPERTY_NAME PROPERTY_VALUE
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| set-raw-bytes | false | При записи PROPERTY_VALUE типа []byte записывать указанную строку напрямую, без декодирования base64. |
set-cluster
Задать только поле server для записи кластера e2e, не изменяя остальные значения
kubectl config set-cluster e2e --server=https://1.2.3.4
Встроить данные центра сертификации для записи кластера e2e
kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt
Отключить проверку сертификата для записи кластера e2e
kubectl config set-cluster e2e --insecure-skip-tls-verify=true
Задать собственное имя TLS-сервера для проверки записи кластера e2e
kubectl config set-cluster e2e --tls-server-name=my-cluster-name
Задать URL прокси для записи кластера e2e
kubectl config set-cluster e2e --proxy-url=https://1.2.3.4
Задать запись кластера в kubeconfig.
Указание уже существующего имени приведет к объединению новых полей с существующими значениями этих полей.
Использование
$ kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| certificate-authority | Путь к файлу центра сертификации для записи кластера в kubeconfig | ||
| embed-certs | false | Встроить сертификаты для записи кластера в kubeconfig | |
| insecure-skip-tls-verify | false | Не проверять TLS для записи кластера в kubeconfig | |
| proxy-url | URL прокси для записи кластера в kubeconfig | ||
| server | Сервер для записи кластера в kubeconfig | ||
| tls-server-name | Имя TLS-сервера для записи кластера в kubeconfig |
set-context
Задайте поле пользователя для записи контекста gce, не изменяя другие значения
kubectl config set-context gce --user=cluster-admin
Задайте запись контекста в kubeconfig.
Указание уже существующего имени приведет к объединению новых полей с существующими значениями этих полей.
Использование
$ kubectl config set-context [NAME | --current] [--cluster=cluster_nickname] [--user=user_nickname] [--namespace=namespace]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| cluster | Кластер для записи контекста в kubeconfig | ||
| current | false | Изменить текущий контекст | |
| namespace | Пространство имен для записи контекста в kubeconfig | ||
| user | Пользователь для записи контекста в kubeconfig |
set-credentials
Задайте только поле "client-key" для записи "cluster-admin", не изменяя другие значения
kubectl config set-credentials cluster-admin --client-key=~/.kube/admin.key
Задайте базовую аутентификацию для записи "cluster-admin"
kubectl config set-credentials cluster-admin --username=admin --password=uXFGweU9l35qcif
Встройте данные сертификата клиента в запись "cluster-admin"
kubectl config set-credentials cluster-admin --client-certificate=~/.kube/admin.crt --embed-certs=true
Включите поставщика аутентификации Google Compute Platform для записи "cluster-admin"
kubectl config set-credentials cluster-admin --auth-provider=gcp
Включите поставщика аутентификации OpenID Connect для записи "cluster-admin" с дополнительными аргументами
kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-id=foo --auth-provider-arg=client-secret=bar
Удалите значение конфигурации "client-secret" для поставщика аутентификации OpenID Connect из записи "cluster-admin"
kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-secret-
Включите новый подключаемый модуль аутентификации exec для записи "cluster-admin"
kubectl config set-credentials cluster-admin --exec-command=/path/to/the/executable --exec-api-version=client.authentication.k8s.io/v1beta1
Задайте новые аргументы подключаемого модуля аутентификации exec для записи "cluster-admin"
kubectl config set-credentials cluster-admin --exec-arg=arg1 --exec-arg=arg2
Создайте или обновите переменные среды подключаемого модуля аутентификации exec для записи "cluster-admin"
kubectl config set-credentials cluster-admin --exec-env=key1=val1 --exec-env=key2=val2
Удалите переменные среды подключаемого модуля аутентификации exec для записи "cluster-admin"
kubectl config set-credentials cluster-admin --exec-env=var-to-remove-
Задайте запись пользователя в kubeconfig.
Указание уже существующего имени приведет к объединению новых полей с существующими значениями.
Флаги сертификата клиента: --client-certificate=certfile --client-key=keyfile
Флаг токена Bearer: --token=bearer_token
Флаги базовой аутентификации: --username=basic_user --password=basic_password
Токен Bearer и базовая аутентификация взаимоисключают друг друга.
Использование
$ kubectl config set-credentials NAME [--client-certificate=path/to/certfile] [--client-key=path/to/keyfile] [--token=bearer_token] [--username=basic_user] [--password=basic_password] [--auth-provider=provider_name] [--auth-provider-arg=key=value] [--exec-command=exec_command] [--exec-api-version=exec_api_version] [--exec-arg=arg] [--exec-env=key=value]
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| auth-provider | Поставщик аутентификации для записи пользователя в kubeconfig | ||
| auth-provider-arg | [] | Аргументы поставщика аутентификации в формате 'key=value' | |
| client-certificate | Путь к файлу сертификата клиента для записи пользователя в kubeconfig | ||
| client-key | Путь к файлу ключа клиента для записи пользователя в kubeconfig | ||
| embed-certs | false | Встроить сертификат/ключ клиента для записи пользователя в kubeconfig | |
| exec-api-version | Версия API подключаемого модуля учетных данных exec для записи пользователя в kubeconfig | ||
| exec-arg | [] | Новые аргументы команды подключаемого модуля учетных данных exec для записи пользователя в kubeconfig | |
| exec-command | Команда подключаемого модуля учетных данных exec для записи пользователя в kubeconfig | ||
| exec-env | [] | Переменные среды подключаемого модуля учетных данных exec в формате 'key=value' | |
| password | Пароль для записи пользователя в kubeconfig | ||
| token | Токен для записи пользователя в kubeconfig | ||
| username | Имя пользователя для записи в kubeconfig |
unset
Удалите значение current-context
kubectl config unset current-context
Удалите пространство имен из контекста foo
kubectl config unset contexts.foo.namespace
Удалите отдельное значение из файла kubeconfig.
PROPERTY_NAME — это имя, компоненты которого разделены точками; каждый компонент обозначает имя атрибута или ключ карты. Ключи карты не могут содержать точки.
Использование
$ kubectl config unset PROPERTY_NAME
use-context
Используйте контекст кластера minikube
kubectl config use-context minikube
Задайте current-context в файле kubeconfig.
Использование
$ kubectl config use-context CONTEXT_NAME
view
Покажите объединенные настройки kubeconfig
kubectl config view
Покажите объединенные настройки kubeconfig, необработанные данные сертификатов и раскрытые секреты
kubectl config view --raw
Получите пароль пользователя e2e
kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' Покажите объединенные настройки kubeconfig или указанный файл kubeconfig.
Для извлечения определенных значений можно использовать --output jsonpath={...} с выражением jsonpath.
Использование
$ kubectl config view
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| allow-missing-template-keys | true | Если значение true, игнорировать ошибки в шаблонах, возникающие при отсутствии поля или ключа карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| flatten | false | Преобразовать итоговый файл kubeconfig в автономный вывод (полезно для создания переносимых файлов kubeconfig) | |
| merge | true | Объединить всю иерархию файлов kubeconfig | |
| minify | false | Удалить из вывода все сведения, не используемые текущим контекстом | |
| output | o | yaml | Формат вывода. Один из вариантов: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file). |
| raw | false | Показать необработанные байтовые данные и конфиденциальные данные | |
| show-managed-fields | false | Если значение true, сохранять managedFields при выводе объектов в формате JSON или YAML. | |
| template | Строка шаблона или путь к файлу шаблона, используемого при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
explain
Получите документацию по ресурсу и его полям
kubectl explain pods
Получите документацию по определенному полю ресурса
kubectl explain pods.spec.containers
Выведите список полей поддерживаемых ресурсов.
Эта команда описывает поля, связанные с каждым поддерживаемым ресурсом API. Поля задаются с помощью простого идентификатора JSONPath:
<type>.<fieldName>[.<fieldName>]
Добавьте флаг --recursive, чтобы вывести сразу все поля без описаний. Информация о каждом поле извлекается с сервера в формате OpenAPI.
Для получения полного списка поддерживаемых ресурсов используйте "kubectl api-resources".
Использование
$ kubectl explain RESOURCE
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| api-version | Получить пояснения для определенной версии API (группа/версия API) | ||
| recursive | false | Вывести поля полей (в настоящее время только на один уровень вглубь) |
options
Выведите флаги, наследуемые всеми командами
kubectl options
Выведите список флагов, наследуемых всеми командами
Использование
$ kubectl options
plugin
Предоставляет утилиты для взаимодействия с подключаемыми модулями.
Подключаемые модули предоставляют дополнительные возможности, не входящие в основной дистрибутив командной строки. Дополнительные сведения о создании собственных подключаемых модулей см. в документации и примерах.
Самый простой способ найти и установить подключаемые модули — воспользоваться проектом Kubernetes krew. Инструкции по установке krew см. на странице https://krew.sigs.k8s.io/docs/user-guide/setup/install/ krew.sigs.k8s.io https://krew.sigs.k8s.io/docs/user-guide/setup/install/
Использование
$ kubectl plugin [flags]
list
Выведите список всех доступных подключаемых модулей
kubectl plugin list
Выведите список всех доступных файлов подключаемых модулей в PATH пользователя.
Доступные файлы подключаемых модулей — это файлы, которые: - являются исполняемыми - находятся в любом каталоге из PATH пользователя - начинаются с "kubectl-"
Использование
$ kubectl plugin list
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| name-only | false | Если значение true, показывать только имя исполняемого файла каждого подключаемого модуля, а не полный путь к нему |
version
Выведите версии клиента и сервера для текущего контекста
kubectl version
Выведите сведения о версиях клиента и сервера для текущего контекста.
Использование
$ kubectl version
Флаги
| Имя | Краткая форма | По умолчанию | Описание |
|---|---|---|---|
| client | false | Если значение true, показывать только версию клиента (сервер не требуется). | |
| output | o | Один из вариантов: 'yaml' или 'json'. | |
| short | false | Если значение true, выводить только номер версии. |
© 2026 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2026 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands