Spec-Zone.ru › Kubectl 1.20

НАЧАЛО РАБОТЫ

Этот раздел содержит самые основные команды для запуска рабочей нагрузки в вашем кластере.

  • 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"

Порядок загрузки определяется следующими правилами:

  1. Если установлен флаг --kubeconfig, загружается только этот файл. Флаг может быть установлен только один раз, и слияния не происходит.
  2. Если установлена переменная среды $KUBECONFIG, она используется как список путей (правила разграничения путей для вашей системы). Эти пути объединяются. При изменении значения оно изменяется в файле, определяющем запись. При создании значения оно создаётся в первом существующем файле. Если ни один из файлов в цепочке не существует, то создаётся последний файл в списке.
  3. В противном случае используется ${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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API