НАЧАЛО РАБОТЫ
Этот раздел содержит самые основные команды для запуска рабочей нагрузки в вашем кластере.
-
runзапустит 1 или более экземпляров образа контейнера в вашем кластере. -
exposeбудет балансировать трафик между работающими экземплярами и может создать прокси HA для доступа к контейнерам извне кластера.
После запуска вашей рабочей нагрузки вы можете использовать команды в разделе РАБОТА С ПРИЛОЖЕНИЯМИ для их проверки.
create
Создать pod с данными из pod.json.
kubectl create -f ./pod.json
Создать pod на основе JSON, переданного в стандартный ввод.
cat pod.json | kubectl create -f -
Изменить данные в docker-registry.yaml в формате JSON, а затем создать ресурс, используя измененные данные.
kubectl create -f docker-registry.yaml --edit -o json
Создать ресурс из файла или из стандартного ввода.
Принимаются форматы 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). | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если значение true, использовать схему для проверки ввода перед отправкой | |
| windows-line-endings | false | Актуально только если --edit=true. По умолчанию использует знаки завершения строки, специфичные для вашей платформы. |
clusterrole
Создать ClusterRole с именем "pod-reader", который разрешает пользователю выполнять "get", "watch" и "list" для pods.
kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods
Создать ClusterRole с именем "pod-reader" со значением ResourceName.
kubectl create clusterrole pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod
Создать ClusterRole с именем "foo" со значением API Group.
kubectl create clusterrole foo --verb=get,list,watch --resource=rs.extensions
Создать ClusterRole с именем "foo" со значением SubResource.
kubectl create clusterrole foo --verb=get,list,watch --resource=pods,pods/status
Создать ClusterRole с именем "foo" со значением NonResourceURL.
kubectl create clusterrole "foo" --verb=get --non-resource-url=/logs/*
Создать ClusterRole с именем "monitoring" со значением AggregationRule.
kubectl create clusterrole monitoring --aggregation-rule="rbac.example.com/aggregate-to-monitoring=true"
Создать ClusterRole.
Использование
$ 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 на этом объекте в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если значение true, использовать схему для проверки ввода перед отправкой. | |
| verb | [] | Глагол, который применяется к ресурсам, содержащимся в правиле. |
clusterrolebinding
Создать ClusterRoleBinding для user1, user2 и group1, используя ClusterRole cluster-admin.
kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1
Создать ClusterRoleBinding для определенного ClusterRole.
Использование
$ 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>. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если значение true, использовать схему для проверки ввода перед отправкой. |
configmap
Создать новый configmap с именем my-config на основе папки bar.
kubectl create configmap my-config --from-file=path/to/bar
Создать новый configmap с именем my-config со значениями ключей вместо имён файлов в базе данных.
kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt
Создать новый configmap с именем my-config с ключом key1=config1 и key2=config2.
kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
Создать новый configmap с именем my-config из пар ключ=значение в файле.
kubectl create configmap my-config --from-file=path/to/bar
Создать новый configmap с именем my-config из файла среды.
kubectl create configmap my-config --from-env-file=path/to/bar.env
Создать configmap на основе файла, директории или заданного текстового значения.
Один configmap может содержать одну или несколько пар ключ/значение.
При создании configmap на основе файла, ключ по умолчанию устанавливается равным имени файла без расширения, а значение по умолчанию — содержимое файла. Если имя файла без расширения является недопустимым ключом, вы можете указать альтернативный ключ.
При создании configmap на основе директории, каждый файл, чьё имя без расширения является допустимым ключом в директории, будет помещён в configmap. Любые элементы директории, кроме обычных файлов, будут проигнорированы (например, поддиректории, ссылки, устройства, каналы и т.д.).
Использование
$ 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 | Добавить хеш конфигмапа к его имени. | |
| dry-run | none | Должно быть "none", "server" или "client". Если стратегия client, только вывести объект, который будет отправлен, без его отправки. Если стратегия server, отправить запрос на сервер, не сохраняя ресурс. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| from-env-file | Укажите путь к файлу для чтения строк пар ключ=значение для создания конфигмапа (например, файл .env Docker). | ||
| from-file | [] | Ключевой файл можно указать, используя его путь к файлу, в этом случае имя файла будет использоваться в качестве ключа конфигмапа, или необязательно с ключом и путем к файлу, в этом случае будет использоваться заданный ключ. Указание каталога позволит перебрать каждый именованный файл в каталоге, имя которого является допустимым ключом конфигмапа. | |
| from-literal | [] | Укажите ключ и значение литерала для вставки в конфигмап (например, mykey=somevalue). | |
| generator | configmap/v1 | Имя API-генератора для использования. | |
| output | o | Формат вывода. Один из: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется неизменной. Этот флаг полезен, когда вы хотите выполнить kubectl apply для этого объекта в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. |
cronjob
Создать cronjob
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *"
Создать cronjob с командой
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
Создать cronjob с указанным именем.
Использование
$ 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, с которым должно выполняться задание. | ||
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. |
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 | Имя менеджера, используемого для отслеживания владения полями. | |
| generator | Имя API-генератора для использования. | ||
| 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 для этого объекта в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. |
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", указывающий на service 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 с бэкендом по умолчанию.
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=значение | |
| class | Класс Ingress для использования | ||
| default-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 для этого объекта в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. |
job
Создать job
kubectl create job my-job --image=busybox
Создать job с командой
kubectl create job my-job --image=busybox -- date
Создать job из CronJob с именем "a-cronjob"
kubectl create job test-job --from=cronjob/a-cronjob
Создать job с указанным именем.
Использование
$ 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 для этого объекта в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации ввода перед отправкой |
namespace
Создать новый namespace с именем my-namespace
kubectl create namespace my-namespace
Создать 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 | Имя менеджера, используемого для отслеживания владения полями. | |
| generator | namespace/v1 | Имя генератора API для использования. | |
| output | o | Формат вывода. Один из: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется неизменной. Эта опция полезна, когда вы хотите выполнить kubectl apply для этого объекта в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации ввода перед отправкой |
poddisruptionbudget
Создать pod disruption budget с именем my-pdb, который выберет все pods с меткой app=rails # и потребует, чтобы хотя бы один из них был доступен в любой момент времени.
kubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1
Создать pod disruption budget с именем my-pdb, который выберет все pods с меткой app=nginx # и потребует, чтобы хотя бы половина выбранных pods была доступна в любой момент времени.
kubectl create pdb my-pdb --selector=app=nginx --min-available=50%
Создать pod disruption budget с указанным именем, селектором и желаемым минимальным количеством доступных pods
Использование
$ 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 | Имя менеджера, используемого для отслеживания владения полями. | |
| generator | poddisruptionbudget/v1beta1/v2 | Имя генератора API для использования. | |
| max-unavailable | Максимальное количество или процент недоступных pods, которые требуются этим бюджетом. | ||
| min-available | Минимальное количество или процент доступных pods, которые требуются этим бюджетом. | ||
| 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 | Селектор меток для использования в этом бюджете. Поддерживаются только селекторы на основе равенства. | ||
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации ввода перед отправкой |
priorityclass
Создать priorityclass с именем high-priority
kubectl create priorityclass high-priority --value=1000 --description="high priority"
Создать priorityclass с именем default-priority, который считается глобальным значением по умолчанию.
kubectl create priorityclass default-priority --value=1000 --global-default=true --description="default priority"
Создать priorityclass с именем high-priority, который не может прерывать pods с более низким приоритетом.
kubectl create priorityclass high-priority --value=1000 --description="high priority" --preemption-policy="Never"
Создать priorityclass с указанным именем, значением, globalDefault и описанием
Использование
$ kubectl create priorityclass NAME --value=VALUE --global-default=BOOL [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать любые ошибки в шаблонах, когда отсутствует поле или ключ карты в шаблоне. Применяется только к форматам вывода golang и jsonpath. | |
| description | Описание — произвольная строка, обычно предоставляющая рекомендации о том, когда следует использовать этот класс приоритета. | ||
| dry-run | none | Должно быть "none", "server" или "client". Если стратегия client, выводить только объект, который был бы отправлен, без его отправки. Если стратегия server, отправлять запрос на сервере без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| global-default | false | global-default указывает, следует ли рассматривать этот класс приоритета как приоритет по умолчанию. | |
| output | o | Формат вывода. Один из: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. | |
| preemption-policy | PreemptLowerPriority | preemption-policy — политика для прерывания pods с более низким приоритетом. | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется неизменной. Эта опция полезна, когда вы хотите выполнить kubectl apply для этого объекта в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации ввода перед отправкой | |
| value | 0 | Значение этого класса приоритета. |
quota
Создать новый ресурс 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
Создать новый ресурс quota с именем best-effort
kubectl create quota best-effort --hard=pods=100 --scopes=BestEffort
Создать ресурс quota с указанным именем, жёсткими ограничениями и необязательными областями
Использование
$ 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 | Список значений ресурс=количество, разделенных запятыми, определяющий жёсткий лимит. | ||
| 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 | Список скопов квот, разделенных запятыми, которые должны совпадать с каждым объектом, отслеживаемым квотой. | ||
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. |
роль
Создать роль с именем «pod-reader», разрешающую пользователю выполнять «get», «watch» и «list» для pod
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 Group
kubectl create role foo --verb=get,list,watch --resource=rs.extensions
Создать роль с именем «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 к этому объекту в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. | |
| verb | [] | Глагол, применяемый к ресурсам, содержащимся в правиле. |
связывание_роли
Создать RoleBinding для user1, user2 и group1, используя ClusterRole «admin»
kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
Создать RoleBinding для определённой роли или ClusterRole.
Использование
$ 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, которому должно быть присвоено данное связывание_роли. | ||
| 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 | Роль, которой должно быть присвоено данное связывание_роли. | ||
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, когда вы хотите выполнить kubectl apply к этому объекту в будущем. | |
| serviceaccount | [] | Учётные записи сервисов для привязки к роли в формате <пространство_имён>:<имя> | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. |
секрет
Создать секрет, используя указанную подкоманду.
Использование
$ kubectl create 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
Создать новый секрет для использования с реестрами 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 docker-registry NAME --docker-username=user --docker-password=password --docker-email=email [--docker-server=string] [--from-literal=key1=value1] [--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 | [] | Файлы ключей могут быть указаны с помощью пути к файлу, в этом случае им будет присвоено имя по умолчанию, или необязательно с именем и путем к файлу, в этом случае будет использовано заданное имя. Указание каталога переберёт каждый именованный файл в каталоге, являющийся допустимым ключом секрета. | |
| generator | secret-for-docker-registry/v1 | Имя генератора API для использования. | |
| output | o | Формат вывода. Один из: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, когда вы хотите выполнить kubectl apply к этому объекту в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для валидации входных данных перед отправкой. |
секрет_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 из файла env
kubectl create secret generic my-secret --from-env-file=path/to/bar.env
Создайте секрет на основе файла, каталога или указанного литерального значения.
Один секрет может содержать одну или несколько пар ключ/значение.
При создании секрета на основе файла, ключ по умолчанию будет равен имени файла без расширения, а значение — содержимому файла. Если имя файла является недопустимым ключом или вы хотите выбрать свой собственный, вы можете указать альтернативный ключ.
При создании секрета на основе каталога, каждый файл, имя которого без расширения является допустимым ключом в каталоге, будет упакован в секрет. Все элементы каталога, кроме обычных файлов, игнорируются (например, подкаталоги, символические ссылки, устройства, каналы и т. д.).
Использование
$ kubectl create 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". Если стратегия клиента, то вывести только объект, который был бы отправлен, не отправляя его. Если стратегия сервера, отправить запрос на стороне сервера без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| from-env-file | Указать путь к файлу для чтения строк пар ключ=значение для создания секрета (например, файл .env Docker). | ||
| from-file | [] | Файлы ключей могут быть указаны с помощью пути к файлу, в этом случае им будет задано имя по умолчанию, или необязательно с именем и путем к файлу, в этом случае будет использовано указанное имя. Указание каталога перебирает каждый файл с именем в каталоге, который является допустимым ключом секрета. | |
| from-literal | [] | Указать ключ и литеральное значение для вставки в секрет (например, mykey=somevalue). | |
| generator | secret/v1 | Имя API генератора для использования. | |
| output | o | Формат вывода. Один из: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется неизменной. Этот флаг полезен, когда вы хотите выполнить kubectl apply на этом объекте в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| type | Тип секрета для создания | ||
| validate | true | Если true, использовать схему для проверки ввода перед отправкой |
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 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". Если стратегия клиента, то вывести только объект, который был бы отправлен, не отправляя его. Если стратегия сервера, отправить запрос на стороне сервера без сохранения ресурса. | |
| field-manager | kubectl-create | Имя менеджера, используемого для отслеживания владения полями. | |
| generator | secret-for-tls/v1 | Имя API генератора для использования. | |
| 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 на этом объекте в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для проверки ввода перед отправкой |
service
Создайте сервис, используя указанную подкоманду.
Использование
$ kubectl create service
service clusterip
Создайте новый сервис ClusterIP с именем my-cs
kubectl create service clusterip my-cs --tcp=5678:8080
Создайте новый сервис ClusterIP с именем my-cs (в режиме headless)
kubectl create service clusterip my-cs --clusterip="None"
Создайте сервис ClusterIP с указанным именем.
Использование
$ kubectl create clusterip NAME [--tcp=<port>:<targetPort>] [--dry-run=server|client|none]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| allow-missing-template-keys | true | Если true, игнорировать любые ошибки в шаблонах, когда отсутствует поле или ключ карты в шаблоне. Применимо только к форматам вывода golang и jsonpath. | |
| clusterip | Присвоить собственный ClusterIP или установить 'None' для сервиса 'headless' (без балансировки нагрузки). | ||
| dry-run | none | Должно быть "none", "server" или "client". Если стратегия клиента, то вывести только объект, который был бы отправлен, не отправляя его. Если стратегия сервера, отправить запрос на стороне сервера без сохранения ресурса. | |
| 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 на этом объекте в будущем. | |
| tcp | [] | Пары портов могут быть указаны как '<port>:<targetPort>'. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для проверки ввода перед отправкой |
service externalname
Создайте новый сервис ExternalName с именем my-ns
kubectl create service externalname my-ns --external-name bar.com
Создайте сервис ExternalName с указанным именем.
Сервис ExternalName ссылается на внешний адрес DNS вместо только pod, что позволит авторам приложений ссылаться на сервисы, которые существуют вне платформы, в других кластерах или локально.
Использование
$ kubectl create 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". Если стратегия клиента, то вывести только объект, который был бы отправлен, не отправляя его. Если стратегия сервера, отправить запрос на стороне сервера без сохранения ресурса. | |
| 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 на этом объекте в будущем. | |
| tcp | [] | Пары портов могут быть указаны как '<port>:<targetPort>'. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для проверки ввода перед отправкой |
service loadbalancer
Создайте новый сервис LoadBalancer с именем my-lbs
kubectl create service loadbalancer my-lbs --tcp=5678:8080
Создайте сервис LoadBalancer с указанным именем.
Использование
$ kubectl create 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 для этого объекта в будущем. | |
| tcp | [] | Пары портов могут быть указаны как '<порт>:<порт-цели>'. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, используется схема для валидации входных данных перед отправкой |
service nodeport
Создать новый сервис NodePort с именем my-ns
kubectl create service nodeport my-ns --tcp=5678:8080
Создать сервис NodePort с указанным именем.
Использование
$ kubectl create 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 для этого объекта в будущем. | |
| tcp | [] | Пары портов могут быть указаны как '<порт>:<порт-цели>'. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, используется схема для валидации входных данных перед отправкой |
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 | Имя менеджера, используемого для отслеживания владения полями. | |
| generator | serviceaccount/v1 | Имя генератора API для использования. | |
| output | o | Формат вывода. Один из: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. | |
| save-config | false | Если true, конфигурация текущего объекта сохраняется в его аннотации. В противном случае аннотация не изменяется. Этот флаг полезен, когда вы хотите выполнить kubectl apply для этого объекта в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, используется схема для валидации входных данных перед отправкой |
get
Отобразить все поды в формате ps.
kubectl get pods
Отобразить все поды в формате ps с дополнительной информацией (например, имя узла).
kubectl get pods -o wide
Отобразить один контроллер репликации с указанным именем в формате ps.
kubectl get replicationcontroller web
Отобразить деплойменты в формате JSON, в версии "v1" группы API "apps":
kubectl get deployments.v1.apps -o json
Отобразить один под в формате JSON.
kubectl get -o json pod web-pod-13je7
Отобразить под, идентифицированный по типу и имени, указанному в "pod.yaml", в формате JSON.
kubectl get -f pod.yaml -o json
Отобразить ресурсы из каталога с kustomization.yaml - например, dir/kustomization.yaml.
kubectl get -k dir/
Вернуть только значение фазы указанного пода.
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
Отображение одного или нескольких ресурсов
Выводит таблицу наиболее важной информации о заданных ресурсах. Вы можете отфильтровать список, используя селектор меток и флаг --selector. Если тип желаемого ресурса именован, вы увидите результаты только в текущем пространстве имен, если не передадите --all-namespaces.
Неинициализированные объекты не отображаются, если не передаётся --include-uninitialized.
Указав вывод как 'template' и предоставив шаблон Go в качестве значения флага --template, вы можете фильтровать атрибуты полученных ресурсов.
Используйте "kubectl api-resources" для полного списка поддерживаемых ресурсов.
Использование
$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (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|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... См. пользовательские столбцы [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], шаблон golang [http://golang.org/pkg/text/template/#pkg-overview] и шаблон jsonpath [http://kubernetes.io/docs/user-guide/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 | При выводе отображает все метки в качестве последнего столбца (по умолчанию метки столбца скрыты) | |
| sort-by | Если не пустое, сортирует типы списков по этому полю. Спецификация поля выражается как выражение JSONPath (например, '{.metadata.name}'). Поле в ресурсе API, указанное этим выражением JSONPath, должно быть целым числом или строкой. | ||
| 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 | [] | Аннотации для применения к под. | |
| attach | false | Если true, ожидать запуска Pod и подключиться к Pod как если бы был вызван 'kubectl attach ...'. Значение по умолчанию false, за исключением случаев, когда установлен '-i/--stdin', в этом случае значение по умолчанию true. При использовании '--restart=Never' возвращается код завершения процесса контейнера. | |
| cascade | background | Должно быть "background", "orphan" или "foreground". Выбирает стратегию каскадного удаления для зависимых ресурсов (например, Pods, созданных ReplicationController). Значение по умолчанию background. | |
| command | false | Если true и присутствуют дополнительные аргументы, использовать их как поле 'command' в контейнере вместо поля 'args', которое является значением по умолчанию. | |
| dry-run | none | Должно быть "none", "server" или "client". Если стратегия client, только вывести объект, который был бы отправлен, не отправляя его. Если стратегия server, отправить запрос на сервер без сохранения ресурса. | |
| env | [] | Переменные среды для установки в контейнере. | |
| expose | false | Если true, создаётся служба для контейнера(ов), который(е) запущен(ы) | |
| field-manager | kubectl-run | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | для замены ресурса. |
| force | false | Если true, немедленно удалить ресурсы из API и обойти плавное удаление. Обратите внимание, что немедленное удаление некоторых ресурсов может привести к несогласованности или потере данных и требует подтверждения. | |
| generator | run-pod/v1 | Имя генератора API для использования, см. http://kubernetes.io/docs/user-guide/kubectl-conventions/#generators для списка. | |
| grace-period | -1 | Период времени в секундах, предоставляемый ресурсу для плавного завершения. Игнорируется, если отрицательный. Установлено в 1 для немедленного завершения. Может быть установлено только в 0, когда --force = true (принудительное удаление). | |
| hostport | -1 | Сопоставление порта хоста для порта контейнера. Для демонстрации контейнера на одной машине. | |
| image | Изображение для запуска контейнера. | ||
| image-pull-policy | Политика получения изображения для контейнера. Если пусто, это значение не будет указано клиентом и будет установлено по умолчанию сервером | ||
| kustomize | k | Обработать каталог kustomization. Этот флаг не может использоваться вместе с -f или -R. | |
| labels | l | Метки, разделённые запятыми, для применения к под(ам). Перезапишут предыдущие значения. | |
| leave-stdin-open | false | Если pod запущен в интерактивном режиме или со stdin, оставить stdin открытым после первого завершения подключения. По умолчанию stdin будет закрыт после первого завершения подключения. | |
| limits | Предельные требования к ресурсам для этого контейнера. Например, 'cpu=200m,memory=512Mi'. Обратите внимание, что компоненты на стороне сервера могут назначать пределы в зависимости от конфигурации сервера, например, предельных диапазонов. | ||
| output | o | Формат вывода. Один из: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. | |
| overrides | Встроенная JSON-замена для генерируемого объекта. Если не пусто, используется для перезаписи сгенерированного объекта. Требуется, чтобы объект предоставлял действительное поле apiVersion. | ||
| pod-running-timeout | 1m0s | Продолжительность ожидания (например, 5s, 2m или 3h, больше нуля) до тех пор, пока не запустится как минимум один pod. | |
| port | Порт, который экспонирует этот контейнер. | ||
| privileged | false | Если true, запустить контейнер в привилегированном режиме. | |
| quiet | false | Если true, подавлять сообщения-подсказки. | |
| record | false | Записывать текущую команду kubectl в аннотацию ресурса. Если установлено в false, не записывать команду. Если установлено в true, записать команду. Если не установлено, по умолчанию обновить существующее значение аннотации только в случае его наличия. | |
| recursive | R | false | Обрабатывать каталог, используемый в -f, --filename рекурсивно. Полезно, когда требуется управлять связанными манифестами, организованными в одном каталоге. |
| replicas | r | 1 | Количество реплик для создания для этого контейнера. По умолчанию 1. |
| requests | Требования к ресурсам для этого контейнера. Например, 'cpu=100m,memory=256Mi'. Обратите внимание, что компоненты на стороне сервера могут назначать запросы в зависимости от конфигурации сервера, например, предельных диапазонов. | ||
| restart | Always | Политика перезапуска для этого Pod. Допустимые значения [Always, OnFailure, Never]. | |
| rm | false | Если true, удалить ресурсы, созданные в этой команде, для подключенных контейнеров. | |
| save-config | false | Если true, конфигурация текущего объекта будет сохранена в его аннотации. В противном случае аннотация останется без изменений. Этот флаг полезен, когда вы хотите выполнить kubectl apply на этот объект в будущем. | |
| schedule | Расписание в формате Cron, с которым должна выполняться работа. | ||
| service-generator | service/v2 | Имя генератора для использования при создании службы. Используется только если --expose = true | |
| service-overrides | Встроенная JSON-замена для сгенерированного объекта службы. Если не пусто, используется для перезаписи сгенерированного объекта. Требуется, чтобы объект предоставлял действительное поле apiVersion. Используется только если --expose = true. | ||
| serviceaccount | Учетная запись службы для установки в спецификации pod. | ||
| 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 с использованием набора реплик, который служит на порту 80 и подключается к контейнерам на порту 8000.
kubectl expose rs nginx --port=80 --target-port=8000
Создать службу для развертывания nginx, которая служит на порту 80 и подключается к контейнерам на порту 8000.
kubectl expose deployment nginx --port=80 --target-port=8000
Экспонировать ресурс как новую Kubernetes-службу.
Ищет развертывание, службу, набор реплик, контроллер репликации или pod по имени и использует селектор для этого ресурса как селектор для новой службы на указанном порту. Развертывание или набор реплик будут экспонированы как служба только в том случае, если его селектор может быть преобразован в селектор, который поддерживает служба, т. е. когда селектор содержит только компонент 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 сервис. | ||
| container-port | Синоним для --target-port | ||
| dry-run | none | Должно быть "none", "server" или "client". Если используется стратегия client, то выводится только объект, который должен быть отправлен, без его отправки. Если используется стратегия server, то отправляется запрос на сервер без сохранения ресурса. | |
| external-ip | Дополнительный внешний IP-адрес (не управляемый Kubernetes) для приема сервисом. Если этот IP маршрутизирован на узел, то к сервису можно получить доступ по этому IP в дополнение к сгенерированному IP сервиса. | ||
| field-manager | kubectl-expose | Имя менеджера, используемого для отслеживания владения полями. | |
| filename | f | [] | Имя файла, директория или URL файла, определяющие ресурс для экспонирования сервиса |
| generator | service/v2 | Имя API-генератора для использования. Есть 2 генератора: 'service/v1' и 'service/v2'. Единственное различие между ними состоит в том, что порт сервиса в v1 называется 'default', а в v2 он не имеет имени. Значение по умолчанию - 'service/v2'. | |
| 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. | |
| 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' | ||
| target-port | Имя или номер порта в контейнере, на который сервис должен направлять трафик. Необязательно. | ||
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона - golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| type | Тип сервиса: ClusterIP, NodePort, LoadBalancer или ExternalName. По умолчанию 'ClusterIP'. |
удаление
Удалить pod, используя тип и имя, указанные в pod.json.
kubectl delete -f ./pod.json
Удалить ресурсы из директории, содержащей kustomization.yaml - например, dir/kustomization.yaml.
kubectl delete -k dir
Удалить pod на основе типа и имени в JSON, переданном в стандартный ввод.
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
Удалить ресурсы по именам файлов, стандартному вводу, ресурсам и именам или по ресурсам и селектору меток.
Принимаются JSON и YAML форматы. Может быть указан только один тип аргументов: имена файлов, ресурсы и имена или ресурсы и селектор меток.
Некоторые ресурсы, такие как pods, поддерживают плавное удаление. Эти ресурсы определяют период перед принудительной остановкой (период благоразумия), но вы можете изменить это значение с помощью флага --grace-period или передать --now, чтобы установить период благоразумия в 1. Поскольку эти ресурсы часто представляют сущности в кластере, удаление может не быть подтверждено немедленно. Если узел, на котором находится pod, выведен из строя или не может связаться с API-сервером, завершение может занять значительно больше времени, чем период благоразумия. Чтобы принудительно удалить ресурс, необходимо указать флаг --force. Примечание: только подмножество ресурсов поддерживает плавное удаление. При отсутствии поддержки --grace-period игнорируется.
ВАЖНО: Принудительное удаление pods не ожидает подтверждения, что процессы pod завершены, что может оставить эти процессы работающими до тех пор, пока узел не обнаружит удаление и не завершит плавное удаление. Если ваши процессы используют общий доступ к хранилищу или общаются с удаленным API и полагаются на имя pod для идентификации, принудительное удаление этих pods может привести к запуску нескольких процессов на разных машинах с одинаковым идентификатором, что может привести к повреждению данных или несогласованности. Принудительно удаляйте pods только тогда, когда вы уверены, что pod остановлен или если ваше приложение может терпеть несколько копий одного и того же pod, запущенных одновременно. Также, если вы принудительно удаляете pods, планировщик может разместить новые pods на этих узлах до того, как узел освободит эти ресурсы, что может привести к немедленной выгрузке этих pods.
Обратите внимание, что команда удаления НЕ выполняет проверки версии ресурса, поэтому, если кто-то отправит обновление ресурса в тот момент, когда вы отправите удаление, его обновление будет потеряно вместе с остальным ресурсом.
Использование
$ 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 | Обрабатывать "ресурс не найден" как успешное удаление. По умолчанию "true", когда указан --all. | |
| kustomize | k | Обработать директорию kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| now | false | Если true, ресурсы сигнализируются для немедленного завершения (то же, что и --grace-period=1). | |
| output | o | Режим вывода. Используйте "-o name" для сокращенного вывода (ресурс/имя). | |
| raw | Сырой URI для DELETE на сервер. Использует транспорт, указанный в файле kubeconfig. | ||
| recursive | R | false | Обрабатывать директорию, указанную в -f, --filename рекурсивно. Полезно, когда вы хотите управлять связанными манифестами, организованными в одной директории. |
| selector | l | Селектор (запрос по меткам) для фильтрации, не включая неинициализированные. | |
| timeout | 0s | Время ожидания до сдачи попытки удаления, ноль означает определение таймаута в зависимости от размера объекта | |
| wait | true | Если true, дождаться, пока ресурсы исчезнут, прежде чем вернуть результат. Это ожидает финализаторов. |
УПРАВЛЕНИЕ ПРИЛОЖЕНИЯМИ
Этот раздел содержит команды для создания, обновления, удаления и просмотра ваших рабочих нагрузок в кластере Kubernetes.
применение
Применить конфигурацию из pod.json к pod.
kubectl apply -f ./pod.json
Применить ресурсы из директории, содержащей kustomization.yaml - например, dir/kustomization.yaml.
kubectl apply -k dir/
Применить JSON, переданный в стандартный ввод, к pod.
cat pod.json | kubectl apply -f -
Примечание: --prune всё ещё находится в стадии альфа-версии # Примените конфигурацию из manifest.yaml, которая соответствует метке app=nginx, и удалите все другие ресурсы, которые не находятся в файле и не соответствуют метке app=nginx.
kubectl apply --prune -f manifest.yaml -l app=nginx
Примените конфигурацию из manifest.yaml и удалите все другие configmaps, которые не находятся в файле.
kubectl apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap
Примените конфигурацию к ресурсу по имени файла или стандартному вводу. Имя ресурса должно быть указано. Этот ресурс будет создан, если он ещё не существует. Для использования «apply» всегда сначала создавайте ресурс с помощью «apply» или «create --save-config».
Принимаются форматы JSON и YAML.
Предупреждение о версии альфа: функциональность --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 true (принудительное удаление). | |
| kustomize | k | Обработать директорию kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| openapi-patch | true | Если true, использовать openapi для расчёта diff, когда 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-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 выполняется на сервере, а не на клиенте. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны Golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| timeout | 0s | Продолжительность ожидания, прежде чем отказаться от удаления, ноль означает определение таймаута из размера объекта. | |
| validate | true | Если true, использовать схему для валидации ввода перед отправкой | |
| wait | false | Если true, дождаться исчезновения ресурсов перед возвратом. Это ожидает завершения finalizers. |
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 рекурсивно. Полезно при управлении связанными манифестами, организованными в одной директории. |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны Golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| 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. | |
| 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
Просмотрите последние применённые аннотации конфигурации по типу/имени или файлу.
По умолчанию вывод будет выведен в формате YAML на стандартный поток вывода. Можно использовать опцию -o для изменения формата вывода.
Использование
$ kubectl apply view-last-applied (TYPE [NAME | -l label] | TYPE/NAME | -f FILENAME)
Флаги
| Имя | Сокращение | По умолчанию | Использование |
|---|---|---|---|
| all | false | Выбрать все ресурсы в пространстве имён указанных типов ресурсов | |
| filename | f | [] | Имя файла, директории или URL файла, содержащие аннотации последней применённой конфигурации |
| kustomize | k | Обработать директорию kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| output | o | yaml | Формат вывода. Должен быть одним из yaml|json |
| recursive | R | false | Обработать директорию, используемую в -f, --filename рекурсивно. Полезно, когда необходимо управлять связанными манифестами, организованными в одной директории. |
| selector | l | Селектор (запрос по меткам) для фильтрации, поддерживает '=', '==', и '!=' (например, -l key1=value1,key2=value2) |
annotate
Обновить под 'foo' с аннотацией 'description' и значением 'my frontend'. # Если одна и та же аннотация задана несколько раз, будет применено только последнее значение
kubectl annotate pods foo description='my frontend'
Обновить под, идентифицированный по типу и имени в "pod.json"
kubectl annotate -f pod.json description='my frontend'
Обновить под 'foo' с аннотацией 'description' и значением 'my frontend running nginx', перезаписывая любое существующее значение.
kubectl annotate --overwrite pods foo description='my frontend running nginx'
Обновить все под в пространстве имен
kubectl annotate pods --all description='my frontend running nginx'
Обновить под 'foo' только если ресурс не изменён с версии 1.
kubectl annotate pods foo description='my frontend running nginx' --resource-version=1
Обновить под '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 | Выбрать все ресурсы, включая неинициализированные, в пространстве имён указанных типов ресурсов. | |
| 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, аннотация не будет обращаться к api-серверу, а выполнится локально. | |
| 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). | |
| 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.
Ищет развертывание, набор реплик, состояние StatefulSet или контроллер репликации по имени и создаёт автомасштабируемый контроллер, использующий данный ресурс в качестве ссылки. Автомасштабируемый контроллер может автоматически увеличивать или уменьшать количество развернутых подов в системе по мере необходимости.
Использование
$ 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 файла, определяющие ресурс для автомасштабирования. |
| generator | horizontalpodautoscaler/v1 | Имя генератора API для использования. В настоящее время существует только 1 генератор. | |
| 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 для этого объекта в будущем. | |
| 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' автоматизирует общие задачи отладки для объектов кластера, идентифицированных по ресурсу и имени. Если ресурс не указан, будут использоваться Pod по умолчанию.
Действие, выполняемое командой 'debug', зависит от указанного ресурса. Поддерживаемые действия включают:
- Workload: Создать копию существующего Pod с измененными атрибутами, например, изменить тег образа на новую версию.
- Workload: Добавить временный контейнер в уже запущенный Pod, например, для добавления инструментов отладки без перезапуска Pod.
- Node: Создать новый Pod, который выполняется в пространстве имен хоста узла и может получить доступ к файловой системе узла.
Использование
$ 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 | Создать копию целевого Pod с этим именем. | ||
| env | [] | Переменные окружения для установки в контейнере. | |
| image | Образ контейнера для использования в контейнере отладки. | ||
| image-pull-policy | Политика подтягивания образа для контейнера. Если оставлено пустым, это значение не будет указано клиентом и будет установлено по умолчанию сервером. | ||
| quiet | false | Если true, подавлять информационные сообщения. | |
| replace | false | При использовании с '--copy-to', удалить исходный Pod. | |
| same-node | false | При использовании с '--copy-to', запланировать копию целевого Pod на том же узле. | |
| set-image | [] | При использовании с '--copy-to', список пар имя=образ для изменения образов контейнеров, аналогично работе 'kubectl set image'. | |
| share-processes | true | При использовании с '--copy-to', включить совместное использование пространства имен процессов в копии. | |
| stdin | i | false | Сохранить stdin открытым в контейнере(ах) в Pod, даже если ничего не прикреплено. |
| target | При использовании временного контейнера, целевые процессы в этом имени контейнера. | ||
| tty | t | false | Выделить TTY для контейнера отладки. |
diff
Ресурсы diff включены в pod.json.
kubectl diff -f pod.json
Diff файла, считанного из stdin
cat service.yaml | kubectl diff -f -
Сравнивает конфигурации, заданные именем файла или stdin, с текущей онлайн-конфигурацией и конфигурацией, которая была бы применена.
Вывод всегда в формате YAML.
Переменная окружения KUBECTL_EXTERNAL_DIFF может использоваться для выбора собственной команды diff. Пользователи могут использовать внешние команды с параметрами, например: KUBECTL_EXTERNAL_DIFF="colordiff -N -u"
По умолчанию, команда "diff", доступная в вашей системе, будет запущена с параметрами "-u" (unified 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, серверная сторона apply принудительно применит изменения против конфликтов. | |
| kustomize | k | Обработать директорию kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| recursive | R | false | Рекурсивно обработать директорию, используемую в -f, --filename. Полезно при управлении связанными манифестами, организованными в одной директории. |
| selector | l | Селектор (запрос по меткам) для фильтрации, поддерживает '=', '==', и '!=' (например, -l key1=value1,key2=value2) | |
| server-side | false | Если true, применение выполняется на сервере, а не на клиенте. |
edit
Редактирование сервиса с именем 'docker-registry':
kubectl edit svc/docker-registry
Использование альтернативного редактора
KUBE_EDITOR="nano" kubectl edit svc/docker-registry
Редактирование задания 'myjob' в формате JSON, используя формат API v1:
kubectl edit job.v1.batch/myjob -o json
Редактирование развертывания 'mydeployment' в формате YAML и сохранение изменённой конфигурации в его аннотации:
kubectl edit deployment/mydeployment -o yaml --save-config
Редактирование ресурса с помощью стандартного редактора.
Команда 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 к этому объекту. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для проверки входных данных перед отправкой | |
| windows-line-endings | false | По умолчанию использует кодировку концов строк, родную для вашей платформы. |
kustomize
Использовать текущую рабочую директорию
kubectl%20kustomize%20.
Использовать общую директорию конфигураций
kubectl kustomize /home/configuration/production
Использовать URL
kubectl kustomize github.com/kubernetes-sigs/kustomize.git/examples/helloWorld?ref=v1.0.6
Вывести набор API-ресурсов, сгенерированных из инструкций в файле kustomization.yaml.
Аргументом должен быть путь к директории, содержащей файл, или URL репозитория Git с суффиксом пути, указывающим на него относительно корня репозитория.
kubectl kustomize somedir
Использование
$ kubectl kustomize <dir>
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 символов каждый.
- Опционально, ключ может начинаться с префикса доменного поддомена и одного '/', например, 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 | Выбрать все ресурсы, включая неинициализированные, в пространстве имён указанных типов ресурсов | |
| 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, метки НЕ будут обращаться к api-серверу, а будут работать локально. | |
| 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). | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
patch
Частично обновить узел с помощью стратегической слияния патча. Укажите патч как JSON.
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' Частично обновить узел с помощью стратегической слияния патча. Укажите патч как YAML.
kubectl patch node k8s-node-1 -p $'spec:\n unschedulable: true'
Частично обновить узел, идентифицированный по типу и имени, указанному в "node.json", с помощью стратегического слияния патча.
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 патча с позиционными массивами.
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]' Обновить поле(я) ресурса с помощью стратегического слияния патча, JSON слияния патча или JSON патча.
Принимаются форматы JSON и YAML.
Использование
$ 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. Полезно, когда нужно управлять связанными манифестами, организованными в одной директории. |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| type | strategic | Тип предоставляемого патча; один из [json merge strategic] |
replace
Заменить под с данными из pod.json.
kubectl replace -f ./pod.json
Заменить под на основе JSON, переданного в stdin.
cat pod.json | kubectl replace -f -
Обновить версию образа (тег) под с одним контейнером на 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". Выбирает стратегию каскадного удаления для зависимых ресурсов (например, Pods, созданных 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 только при true --force (принудительное удаление). | |
| 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 на этом объекте в будущем. | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| timeout | 0s | Длительность ожидания перед отказом от удаления, ноль означает определение тайм-аута по размеру объекта | |
| validate | true | Если true, использовать схему для проверки входных данных перед отправкой | |
| wait | false | Если true, ждать, пока ресурсы исчезнут, прежде чем вернуть значение. Это ожидает завершения finalizers. |
rollout
Откатиться к предыдущему развертыванию
kubectl rollout undo deployment/abc
Проверить статус развёртывания daemonset
kubectl rollout status daemonset/foo
Управление развёртыванием ресурса.
Допустимые типы ресурсов:
- deployments
- daemonsets
- statefulsets
Использование
$ kubectl rollout SUBCOMMAND
история
Просмотреть историю развёртывания развертывания
kubectl rollout history deployment/abc
Просмотреть детали ревизии daemonset 3
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 указанной версии. | |
| 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" для возобновления приостановленного ресурса. В настоящее время только развертывания поддерживают приостановку.
Использование
$ 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. Полезно, когда необходимо управлять связанными манифестами, организованными в одной директории. |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
restart
Перезапустить развертывание
kubectl rollout restart deployment/nginx
Перезапустить daemonset
kubectl rollout restart daemonset/abc
Перезапустить ресурс.
Ресурс будет перезапущен в рамках развертывания.
Использование
$ 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. Полезно, когда необходимо управлять связанными манифестами, организованными в одной директории. |
| 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. Полезно, когда необходимо управлять связанными манифестами, организованными в одной директории. |
| 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 (последняя версия). | |
| timeout | 0s | Продолжительность ожидания перед завершением наблюдения, ноль означает никогда. Любые другие значения должны содержать соответствующий единицу времени (например, 1s, 2m, 3ч). | |
| watch | w | true | Наблюдать за состоянием развертывания до его завершения. |
undo
Откатиться к предыдущему развертыванию
kubectl rollout undo deployment/abc
Откатиться к версии daemonset 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. Полезно, когда необходимо управлять связанными манифестами, организованными в одной директории. |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| to-revision | 0 | Версия для отката. По умолчанию 0 (последняя версия). |
масштабирование
Изменить масштаб реплики с именем '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
Масштабировать statefulset с именем 'web' до 3.
kubectl scale --replicas=3 statefulset/web
Установить новый размер для развертывания, набора реплик, контроллера репликации или statefulset.
Масштабирование также позволяет пользователям указывать одно или несколько предварительных условий для действия масштабирования.
Если указаны --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 | Предварительное условие для текущего размера. Требует, чтобы текущий размер ресурса соответствовал этому значению для масштабирования. | |
| 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) | |
| 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
Импортировать окружение из configmap с префиксом
kubectl set env --from=configmap/myconfigmap --prefix=MYSQL_ deployment/myapp
Импортировать определенные ключи из configmap
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), job, 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 | * | Имена контейнеров в выбранных шаблонах под для изменения - можно использовать подстановочные знаки |
| dry-run | none | Должно быть "none", "server" или "client". Если стратегия client, то только выводить объект, который был бы отправлен, не отправляя его. Если стратегия server, отправить запрос на сервер без сохранения ресурса. | |
| env | e | [] | Указать пару ключ-значение для переменной окружения, которую нужно установить в каждый контейнер. |
| field-manager | kubectl-set | Имя менеджера, используемого для отслеживания владения полем. | |
| filename | f | [] | Имя файла, директория или URL файлов ресурса для обновления env |
| from | Имя ресурса, из которого нужно импортировать переменные окружения | ||
| keys | [] | Список ключей через запятую, которые нужно импортировать из указанного ресурса | |
| kustomize | k | Обработать директорию kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| list | false | Если true, отобразить окружение и любые изменения в стандартном формате. Этот флаг будет удален, когда у нас будет kubectl view env. | |
| local | false | Если true, set env НЕ обратится к api-серверу, а выполнится локально. | |
| 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, отобразить ссылки на секреты или configmap при отображении переменных | |
| selector | l | Селектор (запрос по меткам) для фильтрации | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
image
Установить изображение контейнера nginx развертывания на 'nginx:1.9.1', а его busybox контейнерное изображение на 'busybox'.
kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
Обновить изображение контейнера nginx во всех развертываниях и 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
Вывести результат (в формате yaml) обновления изображения контейнера nginx из локального файла, не обращаясь к серверу
kubectl set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yaml
Обновление существующего(их) изображения контейнера ресурсов.
Возможные ресурсы (регистронезависимо):
pod (po), replicationcontroller (rc), deployment (deploy), daemonset (ds), 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, установка ресурсов НЕ будет обращаться к api-серверу, а будет выполняться локально. | |
| 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) | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
ресурсы
Установить пределы ЦП контейнера nginx в развертывании на "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
Вывести результат (в формате yaml) обновления пределов контейнера nginx из локального источника, без обращения к серверу
kubectl set resources -f path/to/file.yaml --limits=cpu=200m,memory=512Mi --local -o yaml
Указать требования к вычислительным ресурсам (ЦП, память) для любого ресурса, который определяет шаблон под. Если под успешно запланирован, гарантируется запрашиваемое количество ресурсов, но может использовать до указанных пределов.
Для каждого вычислительного ресурса, если предел указан, а запрос пропущен, запрос по умолчанию будет равен пределу.
Возможные ресурсы (регистр не учитывается): Используйте "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 | * | Имена контейнеров в выбранных шаблонах под для изменения, по умолчанию выбираются все контейнеры — можно использовать подстановочные знаки |
| 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, установка ресурсов НЕ будет обращаться к api-серверу, а будет выполняться локально. | |
| 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) | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
селектор
Установить метки и селектор перед созданием пары развертывание/сервис.
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, аннотация НЕ будет обращаться к api-серверу, а будет выполняться локально. | |
| 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 | Если не пусто, обновление селекторов будет успешным только в том случае, если это текущая версия ресурса для объекта. Действительно только при указании одного ресурса. | ||
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
учетная запись сервиса
Установить учетную запись сервиса nginx-deployment на serviceaccount1
kubectl set serviceaccount deployment nginx-deployment serviceaccount1
Вывести результат (в формате yaml) обновленного развертывания nginx с учетной записью сервиса из локального файла, без обращения к apiserver
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, установка serviceaccount НЕ будет обращаться к api-серверу, а выполнится локально. | |
| 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. Полезно, когда нужно управлять связанными манифестами, организованными в одной директории. |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
тема
Обновить ClusterRoleBinding для serviceaccount1
kubectl set subject clusterrolebinding admin --serviceaccount=namespace:serviceaccount1
Обновить RoleBinding для user1, user2 и group1
kubectl set subject rolebinding admin --user=user1 --user=user2 --group=group1
Вывести результат (в формате yaml) обновления объектов RoleBinding из локального источника, без обращения к серверу
kubectl create rolebinding admin --role=admin --user=admin -o yaml --dry-run=client | kubectl set subject --local -f - --user=foo -o yaml
Обновить пользователя, группу или учётную запись сервиса в RoleBinding/ClusterRoleBinding.
Использование
$ 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-адрес файлов, определяющих ресурс для обновления объектов subject |
| group | [] | Группы для привязки к роли | |
| kustomize | k | Обработать директорию kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| local | false | Если true, установка subject НЕ будет обращаться к api-серверу, а выполнится локально. | |
| 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 | [] | Учётные записи сервиса для привязки к роли | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
ожидание
Ожидание под "busybox1" для наличия условия статуса типа "Ready".
kubectl wait --for=condition=Ready pod/busybox1
Ожидание удаления под "busybox1" с таймаутом 60 сек после команды "delete".
kubectl delete pod/busybox1 kubectl wait --for=delete pod/busybox1 --timeout=60s
Экспериментальная функция: ожидание определённого условия для одного или нескольких ресурсов.
Команда ожидает нескольких ресурсов и ждёт, пока указанное условие не будет замечено в поле Status каждого указанного ресурса.
Альтернативно, команда может ждать удаления заданного набора ресурсов, предоставив "delete" в качестве значения флага --for.
Успешное сообщение будет выведено в stdout, указывающее, когда заданное условие выполнено. Можно использовать опцию -o для изменения места назначения вывода.
Использование
$ kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| 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]. | ||
| local | false | Если true, аннотация НЕ будет обращаться к api-серверу, а выполнится локально. | |
| 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) | |
| 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 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
Получить вывод из первого под заданного ReplicaSet nginx
kubectl attach rs/nginx
Подключается к процессу, уже выполняющемуся внутри существующего контейнера.
Использование
$ kubectl attach (POD | TYPE/NAME) -c CONTAINER
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| container | c | Имя контейнера. Если опущено, будет выбран первый контейнер в под | |
| pod-running-timeout | 1m0s | Продолжительность ожидания, пока хотя бы один под не будет запущен | |
| stdin | i | false | Передать stdin в контейнер |
| tty | t | false | Stdin — это TTY |
auth
Просмотр авторизации
Использование
$ kubectl auth
могу-ли-я
Проверить, могу ли я создавать pods во всех пространствах имён
kubectl auth can-i create pods --all-namespaces
Проверить, могу ли я перечислять deployments в текущем пространстве имён
kubectl auth can-i list deployments.apps
Проверить, могу ли я выполнить всё в текущем пространстве имён ("*" означает все действия)
kubectl auth can-i '*' '*'
Проверить, могу ли я получить job с именем "bar" в пространстве имён "foo"
kubectl auth can-i list jobs.batch/bar -n foo
Проверить, могу ли я получать логи pod
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.
Использование
$ 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, RoleBinding, ClusterRole и ClusterRoleBinding объектов.
Отсутствующие объекты создаются, а содержащее пространство имён создаётся для объектов в пространстве имён, если необходимо.
Существующие роли обновляются, чтобы включать разрешения в входных объектах, и удаляются дополнительные разрешения, если указан --remove-extra-permissions.
Существующие привязки обновляются, чтобы включать субъекты в входных объектах, и удаляются дополнительные субъекты, если указан --remove-extra-subjects.
Это предпочтительнее, чем «apply» для ресурсов RBAC, чтобы выполнялось семантически-осознанное объединение правил и субъектов.
Использование
$ 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, удаляет дополнительные субъекты, добавленные к rolebindings | |
| 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 в удалённом pod в пространстве имён
tar cf - /tmp/foo | kubectl exec -i -n <some-namespace> <some-pod> -- tar xf - -C /tmp/bar
Копирование /tmp/foo из удалённого pod в /tmp/bar локально
kubectl exec -n <some-namespace> <some-pod> -- tar cf - /tmp/foo | tar xf - -C /tmp/bar
Копирование локальной директории /tmp/foo_dir в /tmp/bar_dir в удалённом pod в пространстве имён по умолчанию
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
Копирование локального файла /tmp/foo в /tmp/bar в удалённом pod в определённом контейнере
kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
Копирование локального файла /tmp/foo в /tmp/bar в удалённом pod в пространстве имён
kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar
Копирование /tmp/foo из удалённого pod в /tmp/bar локально
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
Копирование файлов и директорий в контейнеры и из них.
Использование
$ kubectl cp <file-spec-src> <file-spec-dest>
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| container | c | Имя контейнера. Если опущено, будет выбран первый контейнер в pod | |
| no-preserve | false | Владение и права копируемого файла/директории не сохраняются в контейнере |
describe
Описание узла
kubectl describe nodes kubernetes-node-emt8.c.myproject.internal
Описание pod
kubectl describe pods/nginx
Описание pod, определённого по типу и имени в "pod.json"
kubectl describe -f pod.json
Описание всех pod
kubectl describe pods
Описание pod по метке name=myLabel
kubectl describe po -l name=myLabel
Описание всех pod, управляемых replication controller 'frontend' (pod, созданные rc, получают имя rc в качестве префикса в имени pod).
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. |
| filename | f | [] | Имя файла, директория или URL-адрес файлов, содержащих описываемый ресурс |
| kustomize | k | Обрабатывает каталог kustomization. Этот флаг нельзя использовать вместе с -f или -R. | |
| recursive | R | false | Обрабатывает директорию, используемую в -f, --filename рекурсивно. Полезно, когда вы хотите управлять связанными манифестами, организованными в одной директории. |
| selector | l | Селектор (запрос меток) для фильтрации, поддерживает '=', '==', и '!='.(например, -l key1=value1,key2=value2) | |
| show-events | true | Если true, отображает события, связанные с описываемым объектом. |
exec
Получение вывода от выполнения команды 'date' из pod mypod, используя первый контейнер по умолчанию
kubectl exec mypod -- date
Получение вывода от выполнения команды 'date' в контейнере ruby из pod mypod
kubectl exec mypod -c ruby-container -- date
Переключение в режим терминала raw, отправка stdin в 'bash' в контейнере ruby из pod mypod # и отправка stdout/stderr от 'bash' обратно клиенту
kubectl exec mypod -c ruby-container -i -t -- bash -il
Отображение содержимого /usr из первого контейнера pod mypod и сортировка по времени модификации. # Если у команды, которую вы хотите выполнить в pod, есть общие флаги (например, -i), # вы должны использовать два дефиса (--) для разделения флагов/аргументов команды. # Также обратите внимание, не заключайте команду и её флаги/аргументы в кавычки # если это не то, как вы обычно выполняете её (т. е. используйте ls -t /usr, а не "ls -t /usr").
kubectl exec mypod -i -t -- ls -t /usr
Получение вывода от выполнения команды 'date' из первого pod развертывания mydeployment, используя первый контейнер по умолчанию
kubectl exec deploy/mydeployment -- date
Получение вывода от выполнения команды 'date' из первого pod сервиса myservice, используя первый контейнер по умолчанию
kubectl exec svc/myservice -- date
Выполнение команды в контейнере.
Использование
$ kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| container | c | Имя контейнера. Если опущено, будет выбран первый контейнер в pod | |
| filename | f | [] | для выполнения exec в ресурс |
| pod-running-timeout | 1m0s | Продолжительность ожидания (например, 5s, 2m или 3h, больше нуля) до тех пор, пока не будет запущен хотя бы один pod | |
| stdin | i | false | Передать stdin в контейнер |
| tty | t | false | stdin — TTY |
logs
Возвращение снимков логов из pod nginx с одним контейнером
kubectl logs nginx
Возвращение снимков логов из pod nginx с несколькими контейнерами
kubectl logs nginx --all-containers=true
Возвращение снимков логов из всех контейнеров в pod, определённых меткой app=nginx
kubectl logs -lapp=nginx --all-containers=true
Возвращение снимка логов предыдущего завершённого контейнера ruby из pod web-1
kubectl logs -p -c ruby web-1
Начало потоковой передачи логов контейнера ruby в pod web-1
kubectl logs -f -c ruby web-1
Начало потоковой передачи логов из всех контейнеров в pod, определённых меткой app=nginx
kubectl logs -f -lapp=nginx --all-containers=true
Отображение только последних 20 строк вывода в pod nginx
kubectl logs --tail=20 nginx
Отображение всех логов из pod 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 | Время ожидания (например, 5с, 2м или 3ч, больше нуля), пока хотя бы один под не запустится | |
| prefix | false | Добавлять префикс к каждой строке журнала с источником журнала (имя под и имя контейнера) | |
| previous | p | false | Если true, вывести журналы для предыдущего экземпляра контейнера в под, если он существует. |
| selector | l | Селектор (запрос по меткам) для фильтрации. | |
| since | 0s | Возвращать только журналы, более новые, чем заданный интервал времени (например, 5s, 2m или 3ч). По умолчанию все журналы. Можно использовать только один из 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
Перенаправлять один или несколько локальных портов в под. Для выполнения этой команды на узле должен быть установлен сокет 'socat'.
Используйте тип/имя ресурса, например, 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 | Время ожидания (например, 5с, 2м или 3ч, больше нуля), пока хотя бы один под не запустится |
proxy
Для проксирования всего API kubernetes и ничего больше используйте:
$ kubectl proxy --api-prefix=/
Для проксирования только части API kubernetes и некоторых статических файлов:
$ kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/
Выше позволяет 'curl localhost:8001/api/v1/pods'. # Для проксирования всего API kubernetes с другим корнем используйте:
$ kubectl proxy --api-prefix=/custom/
Выше позволяет 'curl localhost:8001/custom/api/v1/pods' # Запустить прокси к API-серверу kubernetes на порте 8011, предоставляя статическое содержимое из ./local/www/
kubectl proxy --port=8011 --www=./local/www/
Запустить прокси к API-серверу kubernetes на произвольном локальном порту. # Выбранный порт для сервера будет выведен в стандартный вывод.
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. | |
| disable-filter | false | Если true, отключить фильтрацию запросов в прокси. Это опасно и может сделать вас уязвимым к атакам XSRF, когда используется с доступным портом. | |
| keepalive | 0s | keepalive задаёт период keep-alive для активного сетевого соединения. Установите в 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
Отображение использования ресурсов (CPU/Память/Хранилище).
Команда top позволяет просмотреть потребление ресурсов узлами или под.
Для работы этой команды необходим правильно настроенный и работающий Metrics Server на сервере.
Использование
$ kubectl top
узел
Показать метрики для всех узлов
kubectl top node
Показать метрики для данного узла
kubectl top node NODE_NAME
Отображение использования ресурсов (CPU/Память/Хранилище) узлов.
Команда top-node позволяет просмотреть потребление ресурсов узлов.
Использование
$ kubectl top node [NAME | -l label]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| heapster-namespace | kube-system | Пространство имён, в котором расположена служба Heapster | |
| heapster-port | Имя порта в службе для использования | ||
| heapster-scheme | http | Схема (http или https) для подключения к Heapster | |
| heapster-service | heapster | Имя службы Heapster | |
| no-headers | false | Если присутствует, вывести вывод без заголовков | |
| selector | l | Селектор (запрос по меткам) для фильтрации, поддерживает '=', '==', и '!='.(например, -l key1=value1,key2=value2) | |
| sort-by | Если не пусто, сортировать список узлов по указанному полю. Поле может быть 'cpu' или 'memory'. |
под
Показать метрики для всех под в пространстве имён по умолчанию
kubectl top pod
Показать метрики для всех под в данном пространстве имён
kubectl top pod --namespace=NAMESPACE
Показать метрики для данного под и его контейнеров
kubectl top pod POD_NAME --containers
Показать метрики для под, определённых по имени метки name=myLabel
kubectl top pod -l name=myLabel
Отображение использования ресурсов (CPU/Память/Хранилище) под.
Команда 'top pod' позволяет просмотреть потребление ресурсов под.
Из-за задержки в обработке метрик они могут быть недоступны в течение нескольких минут после создания под.
Использование
$ kubectl top pod [NAME | -l label]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| all-namespaces | A | false | Если задано, отобразить запрошенные объекты во всех пространствах имён. Пространство имён в текущем контексте игнорируется, даже если указано с помощью --namespace. |
| containers | false | Если задано, вывести использование контейнеров в рамках под. | |
| no-headers | false | Если задано, вывести вывод без заголовков. | |
| selector | l | Селектор (запрос по меткам) для фильтрации, поддерживает '=', '==', и '!='.(например, -l key1=value1,key2=value2) | |
| sort-by | Если не пусто, сортирует список под по указанному полю. Поле может быть либо 'cpu', либо 'memory'. |
УПРАВЛЕНИЕ КЛАСТЕРОМ
api-versions
Вывести поддерживаемые версии API
kubectl api-versions
Вывести поддерживаемые версии API на сервере в формате "group/version"
Использование
$ kubectl api-versions
certificate
Изменение ресурсов сертификатов.
Использование
$ kubectl certificate SUBCOMMAND
approve
Утвердить запрос на подписание сертификата.
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 рекурсивно. Полезно при управлении связанными манифестами, организованными в одной директории. |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. |
deny
Отказать в запросе на подписание сертификата.
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 рекурсивно. Полезно при управлении связанными манифестами, организованными в одной директории. |
| 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
Вывести текущее состояние кластера в стандартный вывод
kubectl cluster-info dump
Вывести текущее состояние кластера в /path/to/cluster-state
kubectl cluster-info dump --output-directory=/path/to/cluster-state
Вывести все пространства имён в стандартный вывод
kubectl cluster-info dump --all-namespaces
Вывести набор пространств имён в /path/to/cluster-state
kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state
Выводит информацию о кластере, пригодную для отладки и диагностики проблем кластера. По умолчанию выводит всё в стандартный вывод. Вы можете указать директорию с помощью --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 | Место вывода файлов. Если пусто или '-', используется стандартный вывод, в противном случае создаётся иерархия директорий в указанной директории | ||
| pod-running-timeout | 20s | Время ожидания (например, 5с, 2м или 3ч, больше нуля), пока хотя бы одна под не будет запущена | |
| 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 | Селектор (запрос по меткам) для фильтрации |
drain
Откачать узел "foo", даже если на нём есть под, не управляемые ReplicationController, ReplicaSet, Job, DaemonSet или StatefulSet.
$ kubectl drain foo --force
Как выше, но прервать, если есть под, не управляемые ReplicationController, ReplicaSet, Job, DaemonSet или StatefulSet, и использовать период благосклонности 15 минут.
$ kubectl drain foo --grace-period=900
Откачать узел в подготовке к обслуживанию.
Указанный узел будет помечен как неподлежащий планированию, чтобы предотвратить появление новых под. 'drain' удаляет под, если APIServer поддерживает http://kubernetes.io/docs/admin/disruptions/ . В противном случае он будет использовать обычное DELETE для удаления под. 'drain' удаляет или выгоняет все под, кроме зеркальных под (которые не могут быть удалены через API-сервер). Если есть под, управляемые DaemonSet, drain не будет продолжаться без --ignore-daemonsets, и в любом случае не будет удалять под, управляемые DaemonSet, потому что эти под будут немедленно заменены контроллером DaemonSet, который игнорирует метки, указывающие на непригодность для планирования. Если есть под, которые не являются зеркальными под и не управляются ReplicationController, ReplicaSet, DaemonSet, StatefulSet или Job, то drain не будет удалять никакие под, если вы не используете --force. --force также позволит продолжить удаление, если управляющий ресурс одной или нескольких под отсутствует.
'drain' ожидает завершения благосклонного прекращения работы. Вы не должны производить операции с машиной, пока команда не завершит свою работу.
Когда вы готовы вернуть узел в работу, используйте kubectl uncordon, чтобы снова сделать узел подлежащим планированию.
http://kubernetes.io/images/docs/kubectl_drain.svg
Использование
$ kubectl drain NODE
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| delete-emptydir-data | false | Продолжить, даже если существуют поды, использующие emptyDir (локальные данные, которые будут удалены при выводе узла из строя). | |
| delete-local-data | false | Продолжить, даже если существуют поды, использующие emptyDir (локальные данные, которые будут удалены при выводе узла из строя). | |
| disable-eviction | false | Принудительно использовать удаление при выводе из строя, даже если поддержка вытеснения включена. Это обойдет проверку PodDisruptionBudgets, используйте с осторожностью. | |
| dry-run | none | Должно быть «none», «server» или «client». Если используется клиентская стратегия, будет выведен только объект, который должен быть отправлен, без его отправки. Если используется серверная стратегия, будет отправлен запрос на сервер без сохранения ресурса. | |
| force | false | Продолжить, даже если существуют поды, не управляемые ReplicationController, ReplicaSet, Job, DaemonSet или StatefulSet. | |
| grace-period | -1 | Период времени в секундах, предоставляемый каждому поду для плавного завершения. Если отрицательное значение, используется значение по умолчанию, заданное в поле pod. | |
| ignore-daemonsets | false | Игнорировать поды, управляемые DaemonSet. | |
| pod-selector | Селектор меток для фильтрации подов на узле | ||
| selector | l | Селектор (запрос по меткам) для фильтрации | |
| skip-wait-for-delete-timeout | 0 | Если метка удаления поды старше 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
Обновить метки на одном или нескольких узлах.
- Пометка состоит из ключа, значения и эффекта. В качестве аргумента здесь она выражается как ключ=значение:эффект.
- Ключ должен начинаться с буквы или цифры и может содержать буквы, цифры, дефисы, точки и символы подчеркивания, до 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». Если используется клиентская стратегия, будет выведен только объект, который должен быть отправлен, без его отправки. Если используется серверная стратегия, будет отправлен запрос на сервер без сохранения ресурса. | |
| 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, разрешить перезапись меток, в противном случае отклонить обновления меток, которые перезаписывают существующие метки. | |
| selector | l | Селектор (запрос по меткам) для фильтрации, поддерживает '=', '==', и '!=' (например, -l key1=value1,key2=value2). | |
| template | Строка шаблона или путь к файлу шаблона для использования при -o=go-template, -o=go-template-file. Формат шаблона — шаблоны golang [http://golang.org/pkg/text/template/#pkg-overview]. | ||
| validate | true | Если true, использовать схему для проверки входных данных перед отправкой |
uncordon
Отметить узел "foo" как запланируемый.
$ kubectl uncordon foo
Отметить узел как запланируемый.
Использование
$ kubectl uncordon NODE
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| dry-run | none | Должно быть «none», «server» или «client». Если используется клиентская стратегия, будет выведен только объект, который должен быть отправлен, без его отправки. Если используется серверная стратегия, будет отправлен запрос на сервер без сохранения ресурса. | |
| selector | l | Селектор (запрос по меткам) для фильтрации |
НАСТРОЙКИ И ИСПОЛЬЗОВАНИЕ KUBECTL
alpha
Эти команды соответствуют альфа-функциям, которые по умолчанию не включены в кластерах Kubernetes.
Использование
$ kubectl alpha
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
ПРИМЕЧАНИЕ: «kubectl alpha debug» устарело и будет удалено в релизе 1.21. Используйте вместо него «kubectl debug».
Отлаживать ресурсы кластера с помощью интерактивных контейнеров отладки.
'debug' предоставляет автоматизацию для распространённых задач отладки для объектов кластера, идентифицируемых по ресурсу и имени. По умолчанию используются поды, если не указан ресурс.
Действие, выполняемое 'debug', зависит от указанного ресурса. Поддерживаемые действия включают:
- Рабочая нагрузка: Создать копию существующего пода с изменёнными атрибутами, например, изменением тега образа на новую версию.
- Рабочая нагрузка: Добавить временный контейнер к уже запущенному поду, например, добавить отладочные утилиты без перезапуска пода.
- Узел: Создать новый под, который запускается в пространствах имён хоста узла и может получить доступ к файловой системе узла.
Использование
$ kubectl alpha 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 | Политика получения изображения для контейнера. Если поле пустое, это значение не будет указано клиентом и будет установлено по умолчанию сервером. | ||
| quiet | 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 для контейнера отладки. |
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-ресурсы с указанным APIGroup
kubectl api-resources --api-group=extensions
Вывести поддерживаемые API-ресурсы на сервере
Использование
$ kubectl api-resources
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| api-group | Ограничить ресурсы указанной группой API. | ||
| cached | false | Использовать кэшированный список ресурсов, если доступен. | |
| namespaced | true | Если false, будут возвращаться ресурсы без пространств имён, в противном случае — ресурсы в пространствах имён по умолчанию. | |
| no-headers | false | При использовании формата вывода по умолчанию или пользовательского формата не выводить заголовки (по умолчанию заголовки выводятся). | |
| output | o | Формат вывода. Один из: wide|name. | |
| sort-by | Если не пусто, сортировать список ресурсов по указанному полю. Поле может быть 'name' или 'kind'. | ||
| verbs | [] | Ограничить ресурсы, поддерживающие указанные глаголы. |
completion
Установка bash completion на macOS с помощью homebrew ## Если используется Bash 3.2, включённый в macOS
brew install bash-completion
или, если используется Bash 4.1+
brew install bash-completion@2
Если kubectl установлен через homebrew, это должно заработать сразу. ## Если вы установили его другими способами, возможно, вам нужно добавить completion в ваш каталог completion
kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl
Установка bash completion на Linux ## Если bash-completion не установлен на Linux, пожалуйста, установите пакет 'bash-completion' ## с помощью менеджера пакетов вашей дистрибуции. ## Загрузка кода completion для kubectl для bash в текущую оболочку
source <(kubectl completion bash)
Запись кода bash completion в файл и загрузка его из .bash_profile
kubectl completion bash > ~/.kube/completion.bash.inc printf "
Kubectl shell completion
source '$HOME/.kube/completion.bash.inc' " >> $HOME/.bash_profile source $HOME/.bash_profile
Загрузка кода completion для kubectl для zsh[1] в текущую оболочку
source <(kubectl completion zsh)
Установка кода completion для kubectl для zsh[1] для автоматической загрузки при запуске
kubectl completion zsh > "${fpath[1]}/_kubectl" Вывод кода shell completion для указанной оболочки (bash или zsh). Код оболочки должен быть оценён для предоставления интерактивного completion команд kubectl. Это можно сделать, загрузив его из .bash_profile.
Подробные инструкции по этому вопросу доступны здесь: https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion
Примечание для пользователей zsh: [1] completion для zsh поддерживаются только в версиях zsh >= 5.2
Использование
$ kubectl completion SHELL
config
Изменение файлов kubeconfig с помощью подкоманд, таких как "kubectl config set current-context my-context"
Порядок загрузки определяется следующими правилами:
- Если установлен флаг --kubeconfig, загружается только этот файл. Флаг может быть установлен только один раз, и слияния не происходит.
- Если установлена переменная среды $KUBECONFIG, она используется как список путей (правила разграничения путей для вашей системы). Эти пути объединяются. При изменении значения оно изменяется в файле, определяющем запись. При создании значения оно создаётся в первом существующем файле. Если ни один из файлов в цепочке не существует, то создаётся последний файл в списке.
- В противном случае используется ${HOME}/.kube/config, и слияния не происходит.
Использование
$ kubectl config SUBCOMMAND
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 | При использовании формата вывода по умолчанию или пользовательского формата не выводить заголовки (по умолчанию заголовки выводятся). | |
| 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 в виде []байтов, записывать заданную строку напрямую без декодирования из 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
Отключение проверки сертификатов для записи кластера dev.
kubectl config set-cluster e2e --insecure-skip-tls-verify=true
Установка пользовательского имени TLS-сервера для проверки для записи кластера e2e.
kubectl config set-cluster e2e --tls-server-name=my-cluster-name
Установка записи кластера в kubeconfig.
Указание имени, которое уже существует, приведёт к слиянию новых полей поверх существующих значений для этих полей.
Использование
$ kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| embed-certs | false | embed-certs для записи кластера в kubeconfig |
set-context
Установка поля user для записи контекста gce без изменения других значений.
kubectl config set-context gce --user=cluster-admin
Установка записи контекста в kubeconfig
Указание имени, которое уже существует, приведёт к слиянию новых полей поверх существующих значений для этих полей.
Использование
$ kubectl config set-context [NAME | --current] [--cluster=cluster_nickname] [--user=user_nickname] [--namespace=namespace]
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| current | false | Изменить текущий контекст |
set-credentials
Установка только поля "client-key" для записи "cluster-admin" # без изменения других значений:
kubectl config set-credentials cluster-admin --client-key=~/.kube/admin.key
Установка basic auth для записи "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 auth для записи "cluster-admin"
kubectl config set-credentials cluster-admin --exec-env=var-to-remove-
Устанавливает запись пользователя в kubeconfig
Указание имени, которое уже существует, объединит новые поля поверх существующих значений.
Флаги сертификата клиента: --client-certificate=certfile --client-key=keyfile
Флаги токена Bearer: --token=bearer_token
Флаги аутентификации Basic: --username=basic_user --password=basic_password
Токен Bearer и аутентификация Basic взаимно исключают друг друга.
Использование
$ 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 | [] | Аргументы 'ключ=значение' для провайдера аутентификации | |
| embed-certs | false | Встроить сертификат/ключ клиента для записи пользователя в kubeconfig | |
| exec-api-version | Версия API плагина exec credential для записи пользователя в kubeconfig | ||
| exec-arg | [] | Новые аргументы для команды плагина exec credential для записи пользователя в kubeconfig | |
| exec-command | Команда для плагина exec credential для записи пользователя в kubeconfig | ||
| exec-env | [] | Переменные окружения 'ключ=значение' для плагина exec credential |
unset
Сбросить текущий контекст.
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
Устанавливает текущий контекст в файле 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 | Отобразить необработанные байтовые данные | |
| 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:
<тип>.<имя_поля>[.<имя_поля>]
Добавьте флаг --recursive, чтобы отобразить все поля сразу без описаний. Информация о каждом поле извлекается с сервера в формате OpenAPI.
Используйте "kubectl api-resources" для получения полного списка поддерживаемых ресурсов.
Использование
$ kubectl explain RESOURCE
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| api-version | Получить различные объяснения для определённой версии API (группа/версия API) | ||
| recursive | false | Вывести поля полей (в настоящее время только в 1 уровне вглубь) |
options
Вывести флаги, унаследованные всеми командами
kubectl options
Вывести список флагов, унаследованных всеми командами
Использование
$ kubectl options
plugin
Предоставляет утилиты для взаимодействия с плагинами.
Плагины предоставляют расширенные возможности, которые не входят в основное распространение командной строки. Обратитесь к документации и примерам для получения дополнительной информации о том, как создать собственные плагины.
Самый простой способ обнаружить и установить плагины — через подпроект kubernetes krew. Чтобы установить krew, посетите https://krew.sigs.k8s.io/docs/user-guide/setup/install/
Использование
$ kubectl plugin [flags]
list
Список всех доступных файлов плагинов в пути пользователя.
Доступные файлы плагинов — это те, которые: — исполняемые — расположены где угодно в пути пользователя — начинаются с "kubectl-"
Использование
$ kubectl plugin list
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| name-only | false | Если true, отобразить только имя двоичного файла каждого плагина, а не его полный путь |
version
Вывести версии клиента и сервера для текущего контекста
kubectl version
Вывести информацию о версии клиента и сервера для текущего контекста
Использование
$ kubectl version
Флаги
| Имя | Сокращение | Значение по умолчанию | Использование |
|---|---|---|---|
| client | false | Если true, отобразить только версию клиента (сервер не требуется). | |
| output | o | Один из 'yaml' или 'json'. | |
| short | false | Если true, вывести только номер версии. |
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-20.docs.kubernetes.io/docs/reference/generated/kubectl/kubectl-commands