Translate kubectl CLI reference into Russian (#19759)
* Translate kubectl CLI reference into Russian * Remove reviewers
This commit is contained in:
Executable
+5
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: "kubectl CLI"
|
||||
weight: 60
|
||||
---
|
||||
|
||||
@@ -0,0 +1,389 @@
|
||||
---
|
||||
title: Шпаргалка по kubectl
|
||||
reviewers:
|
||||
- erictune
|
||||
- krousey
|
||||
- clove
|
||||
content_template: templates/concept
|
||||
card:
|
||||
name: reference
|
||||
weight: 30
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Смотрите также: [обзор Kubectl](/ru/docs/reference/kubectl/overview/) и [руководство по JsonPath](/ru/docs/reference/kubectl/jsonpath).
|
||||
|
||||
Эта команда представляет собой обзор команды `kubectl`.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
# kubectl - Шпаргалка
|
||||
|
||||
## Автодополнение ввода для Kubectl
|
||||
|
||||
### BASH
|
||||
|
||||
```bash
|
||||
source <(kubectl completion bash) # настройка автодополнения в текущую сессию bash, предварительно должен быть установлен пакет bash-completion .
|
||||
echo "source <(kubectl completion bash)" >> ~/.bashrc # добавление автодополнения autocomplete постоянно в командную оболочку bash.
|
||||
```
|
||||
|
||||
Вы также можете использовать короткий псевдоним для `kubectl`, который можно интегрировать с автодополнениями:
|
||||
|
||||
```bash
|
||||
alias k=kubectl
|
||||
complete -F __start_kubectl k
|
||||
```
|
||||
|
||||
### ZSH
|
||||
|
||||
```bash
|
||||
source <(kubectl completion zsh) # настройка автодополнения в текущую сессию zsh
|
||||
echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshrc # add autocomplete permanently to your zsh shell
|
||||
```
|
||||
|
||||
## Контекст и конфигурация kubectl
|
||||
|
||||
Установка того, с каким Kubernetes-кластером взаимодействует `kubectl` и изменяет конфигурационную информацию. Подробную информацию о конфигурационном файле смотрите на странице [Authenticating Across Clusters with kubeconfig](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/).
|
||||
|
||||
|
||||
```bash
|
||||
kubectl config view # показать объединённые настройки kubeconfig
|
||||
|
||||
# использовать несколько файлов kubeconfig одновременно и посмотреть объединённую конфигурацию из этих файлов
|
||||
KUBECONFIG=~/.kube/config:~/.kube/kubconfig2
|
||||
|
||||
kubectl config view
|
||||
|
||||
# получить пароль для пользователя e2e
|
||||
kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'
|
||||
|
||||
kubectl config view -o jsonpath='{.users[].name}' # показать первого пользователя
|
||||
kubectl config view -o jsonpath='{.users[*].name}' # получить список пользователей
|
||||
kubectl config get-contexts # показать список контекстов
|
||||
kubectl config current-context # показать текущий контекст (current-context)
|
||||
kubectl config use-context my-cluster-name # установить my-cluster-name как контекст по умолчанию
|
||||
|
||||
# добавить новую конфигурацию для кластера в kubeconf с базовой аутентификацией
|
||||
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
|
||||
|
||||
# сохранить пространство имен для всех последующих команд kubectl в этом контексте.
|
||||
kubectl config set-context --current --namespace=ggckad-s2
|
||||
|
||||
# установить контекст, используя имя пользователя и пространство имен.
|
||||
kubectl config set-context gce --user=cluster-admin --namespace=foo \
|
||||
&& kubectl config use-context gce
|
||||
|
||||
kubectl config unset users.foo # удалить пользователя foo
|
||||
```
|
||||
|
||||
## Apply
|
||||
|
||||
`apply` управляет приложениями с помощью файлов, которые определяют ресурсы Kubernetes. Выполните команду `kubectl apply` для создания и обновления ресурсов. Это рекомендуемый способ управления приложениями Kubernetes в промышленном окружении. Смотрите [Kubectl Book](https://kubectl.docs.kubernetes.io).
|
||||
|
||||
## Создание объектов
|
||||
|
||||
Манифесты Kubernetes могут быть определены в YAML или JSON. Можно использовать расширение файла `.yaml`, `.yml` и `.json`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ./my-manifest.yaml # создать ресурсы
|
||||
kubectl apply -f ./my1.yaml -f ./my2.yaml # создать ресурсы из нескольких файлов
|
||||
kubectl apply -f ./dir # создать ресурсы из всех файлов манифеста в директории
|
||||
kubectl apply -f https://git.io/vPieo # создать ресурсы из URL-адреса
|
||||
kubectl create deployment nginx --image=nginx # запустить один экземпляр nginx
|
||||
kubectl explain pods # посмотреть документацию по манифестам подов
|
||||
|
||||
# Создать несколько YAML-объектов из stdin
|
||||
cat <<EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: busybox-sleep
|
||||
spec:
|
||||
containers:
|
||||
- name: busybox
|
||||
image: busybox
|
||||
args:
|
||||
- sleep
|
||||
- "1000000"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: busybox-sleep-less
|
||||
spec:
|
||||
containers:
|
||||
- name: busybox
|
||||
image: busybox
|
||||
args:
|
||||
- sleep
|
||||
- "1000"
|
||||
EOF
|
||||
|
||||
# Создать секрет с несколькими ключами
|
||||
cat <<EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: mysecret
|
||||
type: Opaque
|
||||
data:
|
||||
password: $(echo -n "s33msi4" | base64 -w0)
|
||||
username: $(echo -n "jane" | base64 -w0)
|
||||
EOF
|
||||
|
||||
```
|
||||
|
||||
## Просмотр и поиск ресурсов
|
||||
|
||||
```bash
|
||||
# Get-команды с основном выводом
|
||||
kubectl get services # Вывести все сервисы в пространстве имён
|
||||
kubectl get pods --all-namespaces # Вывести все поды во всех пространств имён
|
||||
kubectl get pods -o wide # Вывести все поды в текущем пространстве имён с подробностями
|
||||
kubectl get deployment my-dep # Вывести определённое развёртывание
|
||||
kubectl get pods # Вывести все поды в пространстве имён
|
||||
kubectl get pod my-pod -o yaml # Получить информацию по поду в формате YAML
|
||||
|
||||
# Посмотреть дополнительные сведения команды с многословным выводом
|
||||
kubectl describe nodes my-node
|
||||
kubectl describe pods my-pod
|
||||
|
||||
# Вывести сервисы, отсортированные по имени
|
||||
kubectl get services --sort-by=.metadata.name
|
||||
|
||||
# Вывести поды, отсортированные по количеству перезагрузок
|
||||
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'
|
||||
|
||||
# Вывести постоянные тома (PersistentVolumes), отсортированные по емкости
|
||||
kubectl get pv --sort-by=.spec.capacity.storage
|
||||
|
||||
# Получить метку версии всех подов с меткой app=cassandra
|
||||
kubectl get pods --selector=app=cassandra -o \
|
||||
jsonpath='{.items[*].metadata.labels.version}'
|
||||
|
||||
# Получить все рабочие узлы (с помощью селектора исключаем узлы с меткой 'node-role.kubernetes.io/master')
|
||||
kubectl get node --selector='!node-role.kubernetes.io/master'
|
||||
|
||||
# Получить все запущенные поды в пространстве имён
|
||||
kubectl get pods --field-selector=status.phase=Running
|
||||
|
||||
# Получить внешние IP-адреса (ExternalIP) всех узлов
|
||||
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
|
||||
|
||||
# Вывести имена подов, принадлежащие к определённому RC
|
||||
# Использование команды "jq" помогает упросить поиск в jsonpath, подробнее смотрите на сайте https://stedolan.github.io/jq/
|
||||
sel=${$(kubectl get rc my-rc --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')%?}
|
||||
echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})
|
||||
|
||||
# Показать метки всех подов (или любого другого объекта Kubernetes, которым можно прикреплять метки)
|
||||
kubectl get pods --show-labels
|
||||
|
||||
# Получить готовые узлы
|
||||
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \
|
||||
&& kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True"
|
||||
|
||||
# Вывести все секреты, используемые сейчас в поде.
|
||||
kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq
|
||||
|
||||
# Вывести все идентификаторы (containerID) контейнеров инициализации (initContainers) во всех подах.
|
||||
# Это полезно при очистке остановленных контейнеров, не удаляя при этом контейнеры инициализации.
|
||||
kubectl get pods --all-namespaces -o jsonpath='{range .items[*].status.initContainerStatuses[*]}{.containerID}{"\n"}{end}' | cut -d/ -f3
|
||||
|
||||
# Вывести события, отсортированные по временной метке
|
||||
kubectl get events --sort-by=.metadata.creationTimestamp
|
||||
|
||||
# Сравнить текущее состояние кластера с состоянием, в котором находился бы кластер в случае применения манифеста.
|
||||
kubectl diff -f ./my-manifest.yaml
|
||||
```
|
||||
|
||||
## Обновление ресурсов
|
||||
|
||||
Начиная с версии 1.11 подкоманда `rolling-update` была удалена (см. [CHANGELOG-1.11.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.11.md)), поэтому вместо неё используйте `rollout`.
|
||||
|
||||
```bash
|
||||
kubectl set image deployment/frontend www=image:v2 # Плавающее обновление контейнеров "www" развёртывания "frontend", обновление образа
|
||||
kubectl rollout history deployment/frontend # Проверить историю развёртывания, включая ревизии.
|
||||
kubectl rollout undo deployment/frontend # Откатиться к предыдущему развёртыванию
|
||||
kubectl rollout undo deployment/frontend --to-revision=2 # Откатиться к определённой ревизии
|
||||
kubectl rollout status -w deployment/frontend # Отслеживать статус плавающего развёртывания "frontend" до его завершения
|
||||
kubectl rollout restart deployment/frontend # Перезапуск плавающего развёртывания "frontend"
|
||||
|
||||
|
||||
# Объявлено устаревшим, начиная с версии 1.11
|
||||
kubectl rolling-update frontend-v1 -f frontend-v2.json # (устарело) Плавающее обновление подов frontend-v1
|
||||
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 # (устарело) Изменить имя ресурса и обновить образ
|
||||
kubectl rolling-update frontend --image=image:v2 # (устарело) Обновить образ подов frontend
|
||||
kubectl rolling-update frontend-v1 frontend-v2 --rollback # (устарело) Отменить выполняющееся обновление
|
||||
|
||||
cat pod.json | kubectl replace -f - # Заменить под из определения в JSON-файле, переданного в поток stdin
|
||||
|
||||
# Принудительно заменить, удалить, а затем пересоздать ресурс. Это приведет к простою приложения
|
||||
kubectl replace --force -f ./pod.json
|
||||
|
||||
# Создать сервис с реплицированным nginx на порту 80, который подключается к контейнерам на порту 8000.
|
||||
kubectl expose rc nginx --port=80 --target-port=8000
|
||||
|
||||
# Обновить версию (метку) образа пода из одного контейнера single до v4
|
||||
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
|
||||
|
||||
kubectl label pods my-pod new-label=awesome # Добавить метку
|
||||
kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq # Добавить аннотацию
|
||||
kubectl autoscale deployment foo --min=2 --max=10 # Автоматически промасштабировать развёртывание "foo"
|
||||
```
|
||||
|
||||
## Обновление ресурсов
|
||||
|
||||
```bash
|
||||
# Обновить часть узла
|
||||
kubectl patch node k8s-node-1 -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"}]'
|
||||
|
||||
# Удалить развертывание livenessProbe через json-патч с позиционными массивами
|
||||
kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]'
|
||||
|
||||
# Добавить нового элемента в позиционный массив
|
||||
kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'
|
||||
```
|
||||
|
||||
## Редактирование ресурсов
|
||||
|
||||
Вы можете отредактировать API-ресурс в любом редакторе.
|
||||
|
||||
```bash
|
||||
kubectl edit svc/docker-registry # Отредактировать сервис docker-registry
|
||||
KUBE_EDITOR="nano" kubectl edit svc/docker-registry # Использовать другой редактор
|
||||
```
|
||||
|
||||
## Масштабирование ресурсов
|
||||
|
||||
```bash
|
||||
kubectl scale --replicas=3 rs/foo # Промасштабировать набор реплик (replicaset) 'foo' до 3
|
||||
kubectl scale --replicas=3 -f foo.yaml # Промасштабировать ресурс в "foo.yaml" до 3
|
||||
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Если количество реплик в развёртывании mysql равен 2, промасштабировать его до 3
|
||||
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Промасштабировать несколько контроллеров репликации
|
||||
```
|
||||
|
||||
## Удаление ресурсов
|
||||
|
||||
```bash
|
||||
kubectl delete -f ./pod.json # Удалить под по типу и имени в pod.json
|
||||
kubectl delete pod,service baz foo # Удалить поды и сервисы с одноимёнными именам "baz" и "foo"
|
||||
kubectl delete pods,services -l name=myLabel # Удалить поды и сервисы с именем метки myLabel
|
||||
kubectl -n my-ns delete pod,svc --all # Удалить все поды и сервисы в пространстве имен my-ns
|
||||
# Удалить все поды, соответствующие pattern1 или pattern2 в awk
|
||||
kubectl get pods -n mynamespace --no-headers=true | awk '/pattern1|pattern2/{print $1}' | xargs kubectl delete -n mynamespace pod
|
||||
```
|
||||
|
||||
## Работа с запущенными подами
|
||||
|
||||
```bash
|
||||
kubectl logs my-pod # вывести логи пода (в stdout)
|
||||
kubectl logs -l name=myLabel # вывести логи пода с меткой myLabel (в stdout)
|
||||
kubectl logs my-pod --previous # вывести логи пода (в stdout) по предыдущему экземпляру контейнера
|
||||
kubectl logs my-pod -c my-container # вывести логи контейнера пода (в stdout, при работе с несколькими контейнерами)
|
||||
kubectl logs -l name=myLabel -c my-container # вывести логи пода с меткой myLabel (в stdout)
|
||||
kubectl logs my-pod -c my-container --previous # вывести логи контейнера пода (в stdout, при работе с несколькими контейнерами) по предыдущему экземпляру контейнера
|
||||
kubectl logs -f my-pod # вывести логи пода в режиме реального времени (в stdout)
|
||||
kubectl logs -f my-pod -c my-container # вывести логи контейнера пода в режиме реального времени (в stdout, при работе с несколькими контейнерами)
|
||||
kubectl logs -f -l name=myLabel --all-containers # вывести логи всех подов с меткой myLabel (в stdout)
|
||||
kubectl run -i --tty busybox --image=busybox -- sh # запустить под как интерактивную оболочку
|
||||
kubectl run nginx --image=nginx --restart=Never -n
|
||||
mynamespace # Запустить под nginx в заданном пространстве имён
|
||||
kubectl run nginx --image=nginx --restart=Never # Запустить под nginx и записать его спецификацию в файл pod.yaml
|
||||
--dry-run -o yaml > pod.yaml
|
||||
|
||||
kubectl attach my-pod -i # Прикрепить к запущенному контейнеру
|
||||
kubectl port-forward my-pod 5000:6000 # Переадресовать порт 5000 в локальной машине на порт 6000 в поде my-pod
|
||||
kubectl exec my-pod -- ls / # Выполнить команду в существующем поде (в случае одного контейнера).
|
||||
kubectl exec my-pod -c my-container -- ls / # Выполнить команду в существующем поде (в случае нескольких контейнеров)
|
||||
kubectl top pod POD_NAME --containers # Показать метрики по заданному поду вместе с его контейнерами
|
||||
```
|
||||
|
||||
## Работа с узлами и кластером
|
||||
|
||||
```bash
|
||||
kubectl cordon my-node # Отметить узел my-node как неназначаемый
|
||||
kubectl drain my-node # Вытеснить узел my-node, чтобы подготовиться к эксплуатации
|
||||
kubectl uncordon my-node # Отметить узел my-node как назначаемый
|
||||
kubectl top node my-node # Показать метрики по заданному узлу
|
||||
kubectl cluster-info # Показать адреса главного узла и сервисов
|
||||
kubectl cluster-info dump # Вывести состояние текущего кластера в stdout
|
||||
kubectl cluster-info dump --output-directory=/path/to/cluster-state # Вывести состояние текущего кластера в /path/to/cluster-state
|
||||
|
||||
# Если ограничение с заданным ключом и проявлением уже существует, его значение будет заменено указанным
|
||||
kubectl taint nodes foo dedicated=special-user:NoSchedule
|
||||
```
|
||||
|
||||
### Типы ресурсов
|
||||
|
||||
Вывести все поддерживаемые типы ресурсов, включая [API-группу](/docs/concepts/overview/kubernetes-api/#api-groups), флаг [namespaced](/docs/concepts/overview/working-with-objects/namespaces) (организован ли ресурс в пространство имён или нет) и [Kind](/docs/concepts/overview/working-with-objects/kubernetes-objects):
|
||||
|
||||
```bash
|
||||
kubectl api-resources
|
||||
```
|
||||
|
||||
Другие варианты команды для анализа API-ресурсов:
|
||||
|
||||
```bash
|
||||
kubectl api-resources --namespaced=true # Все ресурсы с пространством имён
|
||||
kubectl api-resources --namespaced=false # Все ресурсы без пространства имён
|
||||
kubectl api-resources -o name # Все ресурсы с простым выводом (только имя ресурса)
|
||||
kubectl api-resources -o wide # Все ресурсы с расширенным (с неограниченной длинной) выводом
|
||||
kubectl api-resources --verbs=list,get # Все ресурсы, которые поддерживают глаголы запроса "list" и "get"
|
||||
kubectl api-resources --api-group=extensions # Все ресурсы в API-группе "extensions"
|
||||
```
|
||||
|
||||
### Форматирование вывода
|
||||
|
||||
Для вывода подробной информации в окно терминала в определенном формате, добавьте флаг `-o` (или `--output`) в команду `kubectl`, которая поддерживает форматирование.
|
||||
|
||||
Формат вывода | Описание
|
||||
--------------| -----------
|
||||
`-o=custom-columns=<spec>` | Вывод таблицы из списка пользовательских столбцов через запятую
|
||||
`-o=custom-columns-file=<filename>` | Вывод таблицы из списка пользовательских столбцов, определённых в файле `<filename>`
|
||||
`-o=json` | Вывод API-объекта в формате JSON
|
||||
`-o=jsonpath=<template>` | Вывод полей, определённых в выражении [jsonpath](/docs/reference/kubectl/jsonpath)
|
||||
`-o=jsonpath-file=<filename>` | Вывод полей, определённых в выражении [jsonpath](/docs/reference/kubectl/jsonpath) из файла `<filename>`
|
||||
`-o=name` | Вывод только имена ресурсов
|
||||
`-o=wide` | Вывод дополнительную информации в обычном текстовом формате, в случае подов отображается имя узла
|
||||
`-o=yaml` | Вывод API-объекта в формате YAML
|
||||
|
||||
### Уровни детальности вывода и отладки в Kubectl
|
||||
|
||||
Уровни детальности вывода Kubectl регулируются с помощью флагов `-v` или `--v`, за которыми следует целое число, представляющее уровни логирования. Общие соглашения по логированиия Kubernetes и связанные с ними уровни описаны [здесь](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md).
|
||||
|
||||
|
||||
Уровень детальности | Описание
|
||||
--------------| -----------
|
||||
`--v=0` | Как правило, используется чтобы *всегда* видеть, что происходит
|
||||
`--v=1` | Достаточный уровень логирования по умолчанию, если вам не нужна большая детальность.
|
||||
`--v=2` | Полезная информация про стабильное состояние сервиса и важные сообщения логов, которые могут связаны со значительными изменениями в системе. Это рекомендуемый уровень логирования по умолчанию для большинства систем.
|
||||
`--v=3` | Расширенная информация об изменениях.
|
||||
`--v=4` | Уровень детальности для отладки.
|
||||
`--v=6` | Показать запрашиваемые ресурсы.
|
||||
`--v=7` | Показать заголовки HTTP-запросов.
|
||||
`--v=8` | Показать содержимое HTTP-запросов.
|
||||
`--v=9` | Показать содержимого HTTP-запроса в полном виде.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
|
||||
* Подробнее о kubectl на странице [обзора](/ru/docs/reference/kubectl/overview/).
|
||||
|
||||
* Посмотреть опции [kubectl](/ru/docs/reference/kubectl/kubectl/).
|
||||
|
||||
* Ознакомиться с [соглашениями по использованию kubectl](/docs/reference/kubectl/conventions/), чтобы понять, как использовать его в повторно используемых скриптах.
|
||||
|
||||
* Посмотреть [шпаргалки по kubectl](https://github.com/dennyzhang/cheatsheet-kubernetes-A4) сообщества.
|
||||
|
||||
{{% /capture %}}
|
||||
@@ -0,0 +1,362 @@
|
||||
---
|
||||
title: kubectl для пользователей Docker
|
||||
content_template: templates/concept
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
Вы можете использовать инструмент командной строки kubectl в Kubernetes для работы с API-сервером. Если вы знакомы с инструментом командной строки Docker, то использование kubectl не составит проблем. Однако команды docker и kubectl отличаются. В следующих разделах показана подкоманда docker и приведена эквивалентная команда в kubectl.
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## docker run
|
||||
|
||||
Для развёртывания nginx и открытия доступа к объекту Deployment используйте команду [kubectl run](/docs/reference/generated/kubectl/kubectl-commands/#run).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker run -d --restart=always -e DOMAIN=cluster --name nginx-app -p 80:80 nginx
|
||||
```
|
||||
```
|
||||
55c103fa129692154a7652490236fee9be47d70a8dd562281ae7d2f9a339a6db
|
||||
```
|
||||
|
||||
```shell
|
||||
docker ps
|
||||
```
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
55c103fa1296 nginx "nginx -g 'daemon of…" 9 seconds ago Up 9 seconds 0.0.0.0:80->80/tcp nginx-app
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
# запустить под, в котором работает nginx
|
||||
kubectl run --image=nginx nginx-app --port=80 --env="DOMAIN=cluster"
|
||||
```
|
||||
```
|
||||
deployment "nginx-app" created
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
Команды `kubectl` выводят тип и имя созданного или измененного ресурса, который затем может быть использован в последующих командах. После создания объекта Deployment можно открыть новый сервис Service.
|
||||
{{< /note >}}
|
||||
|
||||
```shell
|
||||
# открыть порт, чтобы иметь доступ к сервису
|
||||
kubectl expose deployment nginx-app --port=80 --name=nginx-http
|
||||
```
|
||||
```
|
||||
service "nginx-http" exposed
|
||||
```
|
||||
|
||||
С помощью kubectl можно создать объект [Deployment](/docs/concepts/workloads/controllers/deployment/), чтобы убедиться, что N подов, запущены под nginx, где N — это количество реплик, указанных в спецификации (по умолчанию — 1).
|
||||
Вы также можете создать [сервис](/docs/concepts/services-networking/service/) с селектором, соответствующим меткам подов. Для получения дополнительной информации перейдите на страницу [Use a Service to Access an Application in a Cluster](/docs/tasks/access-application-cluster/service-access-application-cluster).
|
||||
|
||||
По умолчанию образы запускаются в фоновом режиме, аналогично команде `docker run -d ...`. Для запуска в центральном (интерактивном) режиме используйте команду ниже:
|
||||
|
||||
```shell
|
||||
kubectl run [-i] [--tty] --attach <name> --image=<image>
|
||||
```
|
||||
|
||||
В отличие от `docker run ...`, если вы укажете `--attach`, то присоедините `stdin`, `stdout` and `stderr`. Нельзя проконтролировать, какие потоки прикрепляются (`docker -a ...`).
|
||||
Чтобы отсоединиться от контейнера воспользуетесь комбинацией клавиш Ctrl+P, а затем Ctrl+Q.
|
||||
|
||||
Так как команда kubectl run запускает развёртывание для контейнера, то оно начнет перезапускаться, если завершить прикрепленный процесс по нажатию Ctrl+C, в отличие от команды `docker run -it`.
|
||||
Для удаления объекта Deployment вместе с подами, необходимо выполнить команду `kubectl delete deployment <name>`.
|
||||
|
||||
## docker ps
|
||||
|
||||
Посмотреть, что сейчас запущено можно с помощью команды [kubectl get](/docs/reference/generated/kubectl/kubectl-commands/#get).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker ps -a
|
||||
```
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
14636241935f ubuntu:16.04 "echo test" 5 seconds ago Exited (0) 5 seconds ago cocky_fermi
|
||||
55c103fa1296 nginx "nginx -g 'daemon of…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp nginx-app
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl get po
|
||||
```
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
nginx-app-8df569cb7-4gd89 1/1 Running 0 3m
|
||||
ubuntu 0/1 Completed 0 20s
|
||||
```
|
||||
|
||||
## docker attach
|
||||
|
||||
Чтобы присоединить процесс, который уже запущен в контейнере, используйте команду [kubectl attach](/docs/reference/generated/kubectl/kubectl-commands/#attach).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker ps
|
||||
```
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
55c103fa1296 nginx "nginx -g 'daemon of…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp nginx-app
|
||||
```
|
||||
|
||||
```shell
|
||||
docker attach 55c103fa1296
|
||||
...
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl get pods
|
||||
```
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
nginx-app-5jyvm 1/1 Running 0 10m
|
||||
```
|
||||
|
||||
```shell
|
||||
kubectl attach -it nginx-app-5jyvm
|
||||
...
|
||||
```
|
||||
|
||||
Для отсоединения его от контейнера используйте сочетания клавиш Ctrl+P и Ctrl+Q.
|
||||
|
||||
## docker exec
|
||||
|
||||
Для выполнения команды в контейнере используйте команду [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands/#exec).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker ps
|
||||
```
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
55c103fa1296 nginx "nginx -g 'daemon of…" 6 minutes ago Up 6 minutes 0.0.0.0:80->80/tcp nginx-app
|
||||
```
|
||||
```shell
|
||||
docker exec 55c103fa1296 cat /etc/hostname
|
||||
```
|
||||
```
|
||||
55c103fa1296
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl get po
|
||||
```
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
nginx-app-5jyvm 1/1 Running 0 10m
|
||||
```
|
||||
|
||||
```shell
|
||||
kubectl exec nginx-app-5jyvm -- cat /etc/hostname
|
||||
```
|
||||
```
|
||||
nginx-app-5jyvm
|
||||
```
|
||||
|
||||
Примеры с командной оболочкой
|
||||
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker exec -ti 55c103fa1296 /bin/sh
|
||||
# exit
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl exec -ti nginx-app-5jyvm -- /bin/sh
|
||||
# exit
|
||||
```
|
||||
|
||||
Для получения дополнительной информации обратитесь к странице [Get a Shell to a Running Container](/docs/tasks/debug-application-cluster/get-shell-running-container/).
|
||||
|
||||
## docker logs
|
||||
|
||||
Для отслеживания логов в потоки stdout/stderr запущенного процесса используйте команду [kubectl logs](/docs/reference/generated/kubectl/kubectl-commands/#logs).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker logs -f a9e
|
||||
```
|
||||
```
|
||||
192.168.9.1 - - [14/Jul/2015:01:04:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.35.0" "-"
|
||||
192.168.9.1 - - [14/Jul/2015:01:04:03 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.35.0" "-"
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl logs -f nginx-app-zibvs
|
||||
```
|
||||
```
|
||||
10.240.63.110 - - [14/Jul/2015:01:09:01 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"
|
||||
10.240.63.110 - - [14/Jul/2015:01:09:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"
|
||||
```
|
||||
|
||||
Есть небольшая разница между подами и контейнерами: по умолчанию поды не прекращают выполнение, если их процессы завершаются. Вместо этого поды перезапускают процесс. Это похоже на опцию `--restart=always` в Docker, только с одной большой разницей. В Docker вывод каждого вызова процесса объединяется, в отличие от Kubernetes, где каждый вызов является отдельным. Для просмотра вывода предыдущего запуска в Kubernetes, используйте команду ниже:
|
||||
|
||||
```shell
|
||||
kubectl logs --previous nginx-app-zibvs
|
||||
```
|
||||
```
|
||||
10.240.63.110 - - [14/Jul/2015:01:09:01 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"
|
||||
10.240.63.110 - - [14/Jul/2015:01:09:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"
|
||||
```
|
||||
|
||||
Для получения дополнительной информации обратитесь к странице [Logging Architecture](/docs/concepts/cluster-administration/logging/).
|
||||
|
||||
## docker stop и docker rm
|
||||
|
||||
Для завершения и удаления запущенного процесса используйте команду [kubectl delete](/docs/reference/generated/kubectl/kubectl-commands/#delete).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker ps
|
||||
```
|
||||
```
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
a9ec34d98787 nginx "nginx -g 'daemon of" 22 hours ago Up 22 hours 0.0.0.0:80->80/tcp, 443/tcp nginx-app
|
||||
```
|
||||
|
||||
```shell
|
||||
docker stop a9ec34d98787
|
||||
```
|
||||
```
|
||||
a9ec34d98787
|
||||
```
|
||||
|
||||
```shell
|
||||
docker rm a9ec34d98787
|
||||
```
|
||||
```
|
||||
a9ec34d98787
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl get deployment nginx-app
|
||||
```
|
||||
```
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
nginx-app 1/1 1 1 2m
|
||||
```
|
||||
|
||||
```shell
|
||||
kubectl get po -l run=nginx-app
|
||||
```
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
nginx-app-2883164633-aklf7 1/1 Running 0 2m
|
||||
```
|
||||
```shell
|
||||
kubectl delete deployment nginx-app
|
||||
```
|
||||
```
|
||||
deployment "nginx-app" deleted
|
||||
```
|
||||
|
||||
```shell
|
||||
kubectl get po -l run=nginx-app
|
||||
# Return nothing
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
При использовании kubectl удалить под напрямую не получится. Для этого сначала нужно удалить объект Deployment, которому принадлежит под. Если вы удалите под напрямую, то объект Deployment пересоздаст под.
|
||||
{{< /note >}}
|
||||
|
||||
## docker login
|
||||
|
||||
В kubectl нет прямого аналога команды `docker login`. Если вы планируете использовать Kubernetes с приватным реестром, изучите страницу [Using a Private Registry](/docs/concepts/containers/images/#using-a-private-registry).
|
||||
|
||||
## docker version
|
||||
|
||||
Для получения версии клиента и сервера используйте команду [kubectl version](/docs/reference/generated/kubectl/kubectl-commands/#version).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker version
|
||||
```
|
||||
```
|
||||
Client version: 1.7.0
|
||||
Client API version: 1.19
|
||||
Go version (client): go1.4.2
|
||||
Git commit (client): 0baf609
|
||||
OS/Arch (client): linux/amd64
|
||||
Server version: 1.7.0
|
||||
Server API version: 1.19
|
||||
Go version (server): go1.4.2
|
||||
Git commit (server): 0baf609
|
||||
OS/Arch (server): linux/amd64
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl version
|
||||
```
|
||||
```
|
||||
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.9+a3d1dfa6f4335", GitCommit:"9b77fed11a9843ce3780f70dd251e92901c43072", GitTreeState:"dirty", BuildDate:"2017-08-29T20:32:58Z", OpenPaasKubernetesVersion:"v1.03.02", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
|
||||
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.9+a3d1dfa6f4335", GitCommit:"9b77fed11a9843ce3780f70dd251e92901c43072", GitTreeState:"dirty", BuildDate:"2017-08-29T20:32:58Z", OpenPaasKubernetesVersion:"v1.03.02", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
|
||||
```
|
||||
|
||||
## docker info
|
||||
|
||||
Для получения разной информации про окружение и конфигурации перейдите в раздел [kubectl cluster-info](/docs/reference/generated/kubectl/kubectl-commands/#cluster-info).
|
||||
|
||||
docker:
|
||||
|
||||
```shell
|
||||
docker info
|
||||
```
|
||||
```
|
||||
Containers: 40
|
||||
Images: 168
|
||||
Storage Driver: aufs
|
||||
Root Dir: /usr/local/google/docker/aufs
|
||||
Backing Filesystem: extfs
|
||||
Dirs: 248
|
||||
Dirperm1 Supported: false
|
||||
Execution Driver: native-0.2
|
||||
Logging Driver: json-file
|
||||
Kernel Version: 3.13.0-53-generic
|
||||
Operating System: Ubuntu 14.04.2 LTS
|
||||
CPUs: 12
|
||||
Total Memory: 31.32 GiB
|
||||
Name: k8s-is-fun.mtv.corp.google.com
|
||||
ID: ADUV:GCYR:B3VJ:HMPO:LNPQ:KD5S:YKFQ:76VN:IANZ:7TFV:ZBF4:BYJO
|
||||
WARNING: No swap limit support
|
||||
```
|
||||
|
||||
kubectl:
|
||||
|
||||
```shell
|
||||
kubectl cluster-info
|
||||
```
|
||||
```
|
||||
Kubernetes master is running at https://203.0.113.141
|
||||
KubeDNS is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/kube-dns/proxy
|
||||
kubernetes-dashboard is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
|
||||
Grafana is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
|
||||
Heapster is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy
|
||||
InfluxDB is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy
|
||||
```
|
||||
{{% /capture %}}
|
||||
@@ -0,0 +1,101 @@
|
||||
---
|
||||
title: Поддержка JSONPath
|
||||
content_template: templates/concept
|
||||
weight: 25
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
Kubectl поддерживает шаблон JSONPath.
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
Шаблон JSONPath состоит из выражений JSONPath, заключенных в фигурные скобки {}.
|
||||
Kubectl использует JSONPath-выражения для фильтрации по определенным полям в JSON-объекте и форматирования вывода.
|
||||
В дополнение к оригинальному синтаксису шаблона JSONPath, допустимы следующие функции и синтаксис:
|
||||
|
||||
1. Внутри выражений JSONPath текстовые значения заключайте в двойные кавычки.
|
||||
2. Используйте операторы `range`, `end`, конечные операторы для перебора списков.
|
||||
3. Используйте отрицательные индексы срезов для перехода на предыдущий элемент в списке. Отрицательные индексы не "зацикливаются" в списке и работают пока истинно выражение `-index + listLength >= 0`.
|
||||
|
||||
{{< note >}}
|
||||
|
||||
- Оператор `$` необязателен, поскольку по умолчанию выражение всегда начинается с корневого объекта.
|
||||
|
||||
- Объект результата выводиться через функцию String().
|
||||
|
||||
{{< /note >}}
|
||||
|
||||
Все примеры ниже будут ориентироваться на следующий JSON-объект:
|
||||
|
||||
```json
|
||||
{
|
||||
"kind": "List",
|
||||
"items":[
|
||||
{
|
||||
"kind":"None",
|
||||
"metadata":{"name":"127.0.0.1"},
|
||||
"status":{
|
||||
"capacity":{"cpu":"4"},
|
||||
"addresses":[{"type": "LegacyHostIP", "address":"127.0.0.1"}]
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind":"None",
|
||||
"metadata":{"name":"127.0.0.2"},
|
||||
"status":{
|
||||
"capacity":{"cpu":"8"},
|
||||
"addresses":[
|
||||
{"type": "LegacyHostIP", "address":"127.0.0.2"},
|
||||
{"type": "another", "address":"127.0.0.3"}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"users":[
|
||||
{
|
||||
"name": "myself",
|
||||
"user": {}
|
||||
},
|
||||
{
|
||||
"name": "e2e",
|
||||
"user": {"username": "admin", "password": "secret"}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Функция | Описание | Пример | Результат
|
||||
--------------------|---------------------------|-----------------------------------------------------------------|------------------
|
||||
`text` | обычный текст | `kind is {.kind}` | `kind is List`
|
||||
`@` | текущий объект | `{@}` | то же, что и ввод
|
||||
`.` или `[]` | оператор выбора по ключу | `{.kind}`, `{['kind']}` или `{['name\.type']}` | `List`
|
||||
`..` | рекурсивный спуск | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e`
|
||||
`*` | шаблон подстановки. Получение всех объектов | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]`
|
||||
`[start:end:step]` | оператор индексирования | `{.users[0].name}` | `myself`
|
||||
`[,]` | оператор объединения | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]`
|
||||
`?()` | фильтрация | `{.users[?(@.name=="e2e")].user.password}` | `secret`
|
||||
`range`, `end` | перебор списка | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]`
|
||||
`''` | интерпретируемая в кавычках строка | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2`
|
||||
|
||||
Примеры использования `kubectl` и JSONPath-выражений:
|
||||
|
||||
```shell
|
||||
kubectl get pods -o json
|
||||
kubectl get pods -o=jsonpath='{@}'
|
||||
kubectl get pods -o=jsonpath='{.items[0]}'
|
||||
kubectl get pods -o=jsonpath='{.items[0].metadata.name}'
|
||||
kubectl get pods -o=jsonpath="{.items[*]['metadata.name', 'status.capacity']}"
|
||||
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
В Windows нужно заключить в _двойные_ кавычки JSONPath-шаблон, который содержит пробелы (не в одинарные, как в примерах выше для bash). Таким образом, любые литералы в таких шаблонов нужно оборачивать в одинарные кавычки или экранированные двойные кавычки. Например:
|
||||
|
||||
```cmd
|
||||
kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.startTime}{'\n'}{end}"
|
||||
kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{\"\t\"}{.status.startTime}{\"\n\"}{end}"
|
||||
```
|
||||
{{< /note >}}
|
||||
|
||||
{{% /capture %}}
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Команды kubectl
|
||||
---
|
||||
|
||||
[Справочник команд kubectl](/docs/reference/generated/kubectl/kubectl-commands/)
|
||||
@@ -0,0 +1,566 @@
|
||||
---
|
||||
title: kubectl
|
||||
content_template: templates/tool-reference
|
||||
weight: 28
|
||||
---
|
||||
|
||||
{{% capture synopsis %}}
|
||||
|
||||
|
||||
kubectl управляет кластерами Kubernetes.
|
||||
|
||||
Более подробная информация по ссылке: https://kubernetes.io/ru/docs/reference/kubectl/overview/
|
||||
|
||||
```
|
||||
kubectl [flags]
|
||||
```
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture options %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--add-dir-header</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Если true, добавляет директорию файла в заголовок</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--alsologtostderr</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Логировать в стандартный поток ошибок, а также в файлы</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--application-metrics-count-limit int По умолчанию: 100</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Максимальное количество сохраняемых метрик приложения (на каждый контейнер)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя пользователя, от которого будет выполняться операция</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--as-group stringArray</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Группа, от которой будет выполняться операция, этот флаг можно использовать неоднократно, чтобы указать несколько групп.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--azure-container-registry-config string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к файлу, который содержит информацию с конфигурацией реестра контейнера Azure.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--boot-id-file string По умолчанию: "/proc/sys/kernel/random/boot_id"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Разделенный запятыми список файлов для проверки boot-id. Используйте первый существующий.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cache-dir string По умолчанию: "$HOME/.kube/http-cache"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Директория HTTP-кеша по умолчанию</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--certificate-authority string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к файлу сертификата для центра сертификации</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-certificate string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к файлу клиентского сертификата для TLS</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--client-key string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к файлу клиентского ключа для TLS</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-l7lb-src-cidrs cidrs По умолчанию: 130.211.0.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Открыть CIDR в брандмауэре GCE для прокси трафика L7 LB и проверки работоспособности</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cloud-provider-gce-lb-src-cidrs cidrs По умолчанию: 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Открыть CIDR в брандмауэре GCE для прокси трафика L4 LB и проверки работоспособности</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--cluster string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя используемого кластера kubeconfig</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--container-hints string По умолчанию: "/etc/cadvisor/container_hints.json"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к файлу подсказок контейнера</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--containerd string По умолчанию: "/run/containerd/containerd.sock"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Конечная точка containerd</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--containerd-namespace string По умолчанию: "k8s.io"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Пространство имени containerd</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--context string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя контекста kubeconfig</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-not-ready-toleration-seconds int По умолчанию: 300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Указывает tolerationSeconds для допущения notReady:NoExecute, которое по умолчанию добавляется к каждому поду, у которого нет установлено такое допущение.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--default-unreachable-toleration-seconds int По умолчанию: 300</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Указывает tolerationSeconds для допущения unreachable:NoExecute, которое по умолчанию добавляется к каждому поду, у которого нет установлено такое допущение.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--disable-root-cgroup-stats</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Отключить сбор статистики корневой группы (Cgroup)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker string По умолчанию: "unix:///var/run/docker.sock"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">docker endpoint</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker-env-metadata-whitelist string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Список ключей переменных окружения, разделенный запятыми, которые необходимо собрать для Docker-контейнеров</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker-only</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">В дополнение к корневой статистике уведомлять только о Docker-контейнерах</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker-root string По умолчанию: "/var/lib/docker"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">УСТАРЕЛО: корень docker считывается из информации docker (запасной вариант, по умолчанию: /var/lib/docker)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker-tls</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Использовать TLS для подключения к Docker</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker-tls-ca string По умолчанию: "ca.pem"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к доверенному CA</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker-tls-cert string По умолчанию: "cert.pem"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">путь к клиентскому сертификату</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--docker-tls-key string По умолчанию: "key.pem"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к приватному ключу</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--enable-load-reader</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Включить считыватель нагрузки процессора</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--event-storage-age-limit string По умолчанию: "default=0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Максимальный период времени для хранения события (по каждому типу). Значение флага — список из ключей и значений, разделенные запятыми, где ключи — это типы событий (например: создание, oom) либо "default", а значение — длительность. По умолчанию флаг применяется ко всем неуказанным типам событий</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--event-storage-event-limit string По умолчанию: "default=0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Максимальное количество событий для хранения (по каждому типу). Значение флага — список из ключей и значений, разделенные запятыми, где ключи — это типы событий (например: создание, oom) либо "default", а значение — целое число. По умолчанию флаг применяется ко всем неуказанным типам событий</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--global-housekeeping-interval duration По умолчанию: 1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Интервал между глобальными служебными операциями (housekeepings)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-h, --help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Получить справочную информацию по команде kubectl</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--housekeeping-interval duration По умолчанию: 10s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Интервал между служебными операциями (housekeepings) контейнера</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--insecure-skip-tls-verify</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Если true, значит сертификат сервера не будет проверятся на достоверность. Это сделает подключения через HTTPS небезопасными.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--kubeconfig string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Путь к файлу kubeconfig для использования в CLI-запросах.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--log-backtrace-at traceLocation По умолчанию: :0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">При логировании указанной строки (file:N), сгенерировать трассировку стека</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--log-cadvisor-usage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Записывать ли в журнал использование контейнера cAdvisor</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--log-dir string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Если указан, хранить лог-файлы в этой директории.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--log-file string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Если указан, использовать этот лог-файл</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--log-file-max-size uint По умолчанию: 1800</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Установить максимальный размер файла лог-файла (в Мб). Если значение равно 0, максимальный размер файла не ограничен.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--log-flush-frequency duration По умолчанию: 5s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Максимальное количество секунд между очисткой лог-файлов</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--logtostderr По умолчанию: true</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Логировать в стандартный поток ошибок вместо сохранения логов в файлы</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--machine-id-file string По умолчанию: "/etc/machine-id,/var/lib/dbus/machine-id"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Список файлов, разделенных запятыми, для проверки machine-id. Используйте первый существующий.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--match-server-version</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Убедиться, что версия сервера соответствует версии клиента</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-n, --namespace string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Указать область пространства имен для данного запроса CLI</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--password string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Пароль для базовой аутентификации на API-сервере</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile string По умолчанию: "none"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя профиля. Может быть одним из перечисленных значений: none|cpu|heap|goroutine|threadcreate|block|mutex</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--profile-output string По умолчанию: "profile.pprof"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя файла для записи профиля.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--request-timeout string По умолчанию: "0"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Время ожидания перед тем, как перестать ожидать ответ от сервера. Значения должны содержать соответствующую единицу времени (например, 1s, 2m, 3h). Нулевое значение означает, что у запросов нет тайм-аута.
|
||||
.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-s, --server string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Адрес и порт API-сервера Kubernetes</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--skip-headers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Если true, не отображать заголовки в сообщениях лога.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--skip-log-headers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Если true, не отображать заголовки при открытии лог-файлов.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--stderrthreshold severity По умолчанию: 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Логи указанного уровня серьёзности или выше выводить в поток stderr</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-buffer-duration duration По умолчанию: 1m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Буферизировать запись в драйвере хранилища в течение указанного времени, и сохранять в файловом хранилище в виде одной транзакции</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-db string По умолчанию: "cadvisor"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя базы данных</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-host string По умолчанию: "localhost:8086"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Хост и порт базы данных, записанный в формате host:port</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-password string По умолчанию: "root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Пароль к базе данных</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-secure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Использовать безопасное соединение с базой данных</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-table string По умолчанию: "stats"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя таблицы</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--storage-driver-user string По умолчанию: "root"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя пользователя базы данных</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--token string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Аутентификационный (bearer) токен для аутентификации на API-сервере</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--update-machine-info-interval duration По умолчанию: 5m0s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Интервал между обновлениями информации о машине.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--user string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя пользователя для kubeconfig</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--username string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Имя пользователя для базовой аутентификации на API-сервере</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-v, --v Level</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Номер уровня серьёзности логирования</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--version version[=true]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Вывод версии команды</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--vmodule moduleSpec</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">Список, разделённый запятыми, в виде настроек pattern=N для фильтрации лог-файлов</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture seealso %}}
|
||||
|
||||
* [kubectl annotate](/docs/reference/generated/kubectl/kubectl-commands#annotate) - Обновить аннотации ресурса
|
||||
* [kubectl api-resources](/docs/reference/generated/kubectl/kubectl-commands#api-resources) - Вывести доступные API-ресурсы на сервере
|
||||
* [kubectl api-versions](/docs/reference/generated/kubectl/kubectl-commands#api-versions) - Вывести доступные API-версии на сервере в виде "group/version".
|
||||
* [kubectl apply](/docs/reference/generated/kubectl/kubectl-commands#apply) - Внести изменения в конфигурацию ресурса из файла или потока stdin.
|
||||
* [kubectl attach](/docs/reference/generated/kubectl/kubectl-commands#attach) - Присоединиться к запущенному контейнеру
|
||||
* [kubectl auth](/docs/reference/generated/kubectl/kubectl-commands#auth) - Проверить разрешение на выполнение определённых действий
|
||||
* [kubectl autoscale](/docs/reference/generated/kubectl/kubectl-commands#autoscale) - Автоматически промасштабировать Deployment, ReplicaSet или ReplicationController
|
||||
* [kubectl certificate](/docs/reference/generated/kubectl/kubectl-commands#certificate) - Изменить сертификаты ресурсов.
|
||||
* [kubectl cluster-info](/docs/reference/generated/kubectl/kubectl-commands#cluster-info) - Показать информацию по кластеру
|
||||
* [kubectl completion](/docs/reference/generated/kubectl/kubectl-commands#completion) - Вывод кода автодополнения указанной командной оболочки (bash или zsh)
|
||||
* [kubectl config](/docs/reference/generated/kubectl/kubectl-commands#config) - Изменить файлы kubeconfig
|
||||
* [kubectl convert](/docs/reference/generated/kubectl/kubectl-commands#convert) - Конвертировать конфигурационные файлы в различные API-версии
|
||||
* [kubectl cordon](/docs/reference/generated/kubectl/kubectl-commands#cordon) - Отметить узел как неназначаемый
|
||||
* [kubectl cp](/docs/reference/generated/kubectl/kubectl-commands#cp) - Копировать файлы и директории в/из контейнеров.
|
||||
* [kubectl create](/docs/reference/generated/kubectl/kubectl-commands#create) - Создать ресурс из файла или потока stdin.
|
||||
* [kubectl delete](/docs/reference/generated/kubectl/kubectl-commands#delete) - Удалить ресурсы из файла, потока stdin, либо с помощью селекторов меток, имен, селекторов ресурсов или ресурсов
|
||||
* [kubectl describe](/docs/reference/generated/kubectl/kubectl-commands#describe) - Показать подробную информацию о конкретном ресурсе или группе ресурсов
|
||||
* [kubectl diff](/docs/reference/generated/kubectl/kubectl-commands#diff) - Сравнить действующую версию с новой (применяемой)
|
||||
* [kubectl drain](/docs/reference/generated/kubectl/kubectl-commands#drain) - Вытеснить узел для подготовки к эксплуатации
|
||||
* [kubectl edit](/docs/reference/generated/kubectl/kubectl-commands#edit) - Отредактировать ресурс на сервере
|
||||
* [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands#exec) - Выполнить команду в контейнере
|
||||
* [kubectl explain](/docs/reference/generated/kubectl/kubectl-commands#explain) - Получить документацию ресурсов
|
||||
* [kubectl expose](/docs/reference/generated/kubectl/kubectl-commands#expose) - Создать новый сервис Kubernetes из контроллера репликации, сервиса, развёртывания или пода
|
||||
* [kubectl get](/docs/reference/generated/kubectl/kubectl-commands#get) - Вывести один или несколько ресурсов
|
||||
* [kubectl kustomize](/docs/reference/generated/kubectl/kubectl-commands#kustomize) - Собрать ресурсы kustomization из директории или URL-адреса.
|
||||
* [kubectl label](/docs/reference/generated/kubectl/kubectl-commands#label) - Обновить метки ресурса
|
||||
* [kubectl logs](/docs/reference/generated/kubectl/kubectl-commands#logs) - Вывести логи контейнера в поде
|
||||
* [kubectl options](/docs/reference/generated/kubectl/kubectl-commands#options) - Вывести список флагов, применяемых ко всем командам
|
||||
* [kubectl patch](/docs/reference/generated/kubectl/kubectl-commands#patch) - Обновить один или несколько полей ресурса, используя стратегию слияния патча
|
||||
* [kubectl plugin](/docs/reference/generated/kubectl/kubectl-commands#plugin) - Команда для работы с плагинами.
|
||||
* [kubectl port-forward](/docs/reference/generated/kubectl/kubectl-commands#port-forward) - Переадресовать один или несколько локальных портов в под
|
||||
* [kubectl proxy](/docs/reference/generated/kubectl/kubectl-commands#proxy) - Запустить прокси на API-сервер Kubernetes
|
||||
* [kubectl replace](/docs/reference/generated/kubectl/kubectl-commands#replace) - Заменить ресурс из определения в файле или потоке stdin.
|
||||
* [kubectl rollout](/docs/reference/generated/kubectl/kubectl-commands#rollout) - Управление плавающим обновлением ресурса
|
||||
* [kubectl run](/docs/reference/generated/kubectl/kubectl-commands#run) - Запустить указанный образ в кластере
|
||||
* [kubectl scale](/docs/reference/generated/kubectl/kubectl-commands#scale) - Задать новый размер для Deployment, ReplicaSet или Replication Controller.
|
||||
* [kubectl set](/docs/reference/generated/kubectl/kubectl-commands#set) - Конфигурировать ресурсы в объектах
|
||||
* [kubectl taint](/docs/reference/generated/kubectl/kubectl-commands#taint) - Обновить ограничения для одного или нескольких узлов
|
||||
* [kubectl top](/docs/reference/generated/kubectl/kubectl-commands#top) - Показать информацию по использованию системных ресурсов (процессор, память, диск)
|
||||
* [kubectl uncordon](/docs/reference/generated/kubectl/kubectl-commands#uncordon) - Отметить узел как назначаемый
|
||||
* [kubectl version](/docs/reference/generated/kubectl/kubectl-commands#version) - Вывести информацию о версии клиента и сервера
|
||||
* [kubectl wait](/docs/reference/generated/kubectl/kubectl-commands#wait) - Экспериментально: ожидать выполнения определенного условия в одном или нескольких ресурсах.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
@@ -0,0 +1,463 @@
|
||||
---
|
||||
reviewers:
|
||||
- hw-qiaolei
|
||||
title: Обзор kubectl
|
||||
content_template: templates/concept
|
||||
weight: 20
|
||||
card:
|
||||
name: reference
|
||||
weight: 20
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
Kubectl — это инструмент командной строки для управления кластерами Kubernetes. `kubectl` ищет файл config в директории $HOME/.kube. Вы можете указать другие файлы [kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/), установив переменную окружения KUBECONFIG или флаг [`--kubeconfig`](/docs/concepts/configuration/organize-cluster-access-kubeconfig/).
|
||||
|
||||
На этой странице рассматривается синтаксис kubectl, описаны командные операции и приведены распространённые примеры. Подробную информацию о каждой команде, включая все поддерживаемые в ней флаги и подкоманды, смотрите в справочной документации [kubectl](/docs/reference/generated/kubectl/kubectl-commands/). Инструкции по установке находятся на странице [Установка и настройка kubectl](/ru/docs/tasks/kubectl/install/).
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Синтаксис
|
||||
|
||||
Используйте следующий синтаксис для выполнения команд `kubectl` в терминале:
|
||||
|
||||
```shell
|
||||
kubectl [command] [TYPE] [NAME] [flags]
|
||||
```
|
||||
|
||||
где `command`, `TYPE`, `NAME` и `flags`:
|
||||
|
||||
* `command`: определяет выполняемую операцию с одним или несколькими ресурсами, например, `create`, `get`, `describe`, `delete`.
|
||||
|
||||
* `TYPE`: определяет [тип ресурса](#типы-ресурсов). Типы ресурсов не чувствительны к регистру, кроме этого вы можете использовать единственную, множественную или сокращенную форму. Например, следующие команды выведут одно и то же.
|
||||
|
||||
```shell
|
||||
kubectl get pod pod1
|
||||
kubectl get pods pod1
|
||||
kubectl get po pod1
|
||||
```
|
||||
|
||||
* `NAME`: определяет имя ресурса. Имена чувствительны к регистру. Если имя не указано, то отображаются подробности по всем ресурсам, например, `kubectl get pods`.
|
||||
|
||||
При выполнении операции с несколькими ресурсами можно выбрать каждый ресурс по типу и имени, либо сделать это в одном или нескольких файлов:
|
||||
|
||||
* Выбор ресурсов по типу и имени:
|
||||
|
||||
* Сгруппировать ресурсы, если все они одного типа: `TYPE1 name1 name2 name<#>`.<br/>
|
||||
Пример: `kubectl get pod example-pod1 example-pod2`
|
||||
|
||||
* Выбор нескольких типов ресурсов по отдельности: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`.<br/>
|
||||
Пример: `kubectl get pod/example-pod1 replicationcontroller/example-rc1`
|
||||
|
||||
* Выбор ресурсов по одному или нескольким файлов: `-f file1 -f file2 -f file<#>`
|
||||
|
||||
* [Используйте YAML вместо JSON](/docs/concepts/configuration/overview/#general-configuration-tips), так так YAML удобнее для пользователей, особенно в конфигурационных файлов.<br/>
|
||||
Пример: `kubectl get pod -f ./pod.yaml`
|
||||
|
||||
* `flags`: определяет дополнительные флаги. Например, вы можете использовать флаги `-s` или `--server`, чтобы указать адрес и порт API-сервера Kubernetes.<br/>
|
||||
|
||||
{{< caution >}}
|
||||
Указанные вами флаги из командной строки переопределят значения по умолчанию и связанные переменные окружения.
|
||||
{{< /caution >}}
|
||||
|
||||
Если вам нужна помощь, выполните команду `kubectl help`.
|
||||
|
||||
## Операции
|
||||
|
||||
В следующей таблице приведены краткие описания и общий синтаксис всех операций `kubectl`:
|
||||
|
||||
Операция | Синтаксис | Описание
|
||||
-------------------- | -------------------- | --------------------
|
||||
`annotate` | <code>kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]</code> | Добавить или обновить аннотации одного или нескольких ресурсов.
|
||||
`api-versions` | `kubectl api-versions [flags]` | Вывести доступные версии API.
|
||||
`apply` | `kubectl apply -f FILENAME [flags]`| Внести изменения в конфигурацию ресурса из файла или потока stdin.
|
||||
`attach` | `kubectl attach POD -c CONTAINER [-i] [-t] [flags]` | Подключиться к запущенному контейнеру либо для просмотра потока вывода, либо для работы с контейнером (stdin).
|
||||
`autoscale` | <code>kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags]</code> | Автоматически промасштабировать набор подов, управляемых контроллером репликации.
|
||||
`cluster-info` | `kubectl cluster-info [flags]` | Показать информацию о главном узле и сервисов в кластере.
|
||||
`config` | `kubectl config SUBCOMMAND [flags]` | Изменить файлы kubeconfig. Подробные сведения смотрите в отдельных подкомандах.
|
||||
`create` | `kubectl create -f FILENAME [flags]` | Создать один или несколько ресурсов из файла или stdin.
|
||||
`delete` | <code>kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags]</code> | Удалить ресурсы из файла, потока stdin, либо с помощью селекторов меток, имен, селекторов ресурсов или ресурсов.
|
||||
`describe` | <code>kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags]</code> | Показать подробное состояние одного или нескольких ресурсов.
|
||||
`diff` | `kubectl diff -f FILENAME [flags]`| Diff file or stdin against live configuration (**BETA**)
|
||||
`edit` | <code>kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags]</code> | Отредактировать и обновить определение одного или нескольких ресурсов на сервере, используя редактор по умолчанию.
|
||||
`exec` | `kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]` | Выполнить команду в контейнере пода.
|
||||
`explain` | `kubectl explain [--recursive=false] [flags]` | Посмотреть документацию по ресурсам. Например, поды, узлы, сервисы и т.д.
|
||||
`expose` | <code>kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags]</code> | Создать Kubernetes-сервис из контроллера репликации, сервиса или пода.
|
||||
`get` | <code>kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]</code> | Вывести один или несколько ресурсов.
|
||||
`label` | <code>kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]</code> | Добавить или обновить метки для одного или нескольких ресурсов.
|
||||
`logs` | `kubectl logs POD [-c CONTAINER] [--follow] [flags]` | Вывести логи контейнера в поде.
|
||||
`patch` | <code>kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags]</code> | Обновить один или несколько полей ресурса, используя стратегию слияния патча.
|
||||
`port-forward` | `kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]` | Переадресовать один или несколько локальных портов в под.
|
||||
`proxy` | `kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]` | Запустить прокси для API Kubernetes.
|
||||
`replace` | `kubectl replace -f FILENAME` | Заменить ресурс из файла или потока stdin.
|
||||
`rolling-update` | <code>kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [flags]</code> | Выполните плавающее обновление, постепенно заменяя указанный контроллер репликации и его поды.
|
||||
`run` | `kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags]` | Запустить указанный образ в кластере.
|
||||
`scale` | <code>kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags]</code> | Обновить размер указанного контроллера репликации.
|
||||
`version` | `kubectl version [--client] [flags]` | Отобразить версию Kubernetes, запущенного на клиенте и сервере.
|
||||
|
||||
Примечание: подробную информацию о командных операциях смотрите в справочную документацию [kubectl](/ru/docs/user-guide/kubectl/).
|
||||
|
||||
## Типы ресурсов
|
||||
|
||||
В следующей таблице перечислены все доступные типы ресурсов вместе с сокращенными аббревиатурами.
|
||||
|
||||
(Это актуальный вывод команды `kubectl api-resources` с версии Kubernetes 1.13.3.)
|
||||
|
||||
| Resource Name | Short Names | API Group | Namespaced | Resource Kind |
|
||||
|---|---|---|---|---|
|
||||
| `bindings` | | | true | Binding|
|
||||
| `componentstatuses` | `cs` | | false | ComponentStatus |
|
||||
| `configmaps` | `cm` | | true | ConfigMap |
|
||||
| `endpoints` | `ep` | | true | Endpoints |
|
||||
| `limitranges` | `limits` | | true | LimitRange |
|
||||
| `namespaces` | `ns` | | false | Namespace |
|
||||
| `nodes` | `no` | | false | Node |
|
||||
| `persistentvolumeclaims` | `pvc` | | true | PersistentVolumeClaim |
|
||||
| `persistentvolumes` | `pv` | | false | PersistentVolume |
|
||||
| `pods` | `po` | | true | Pod |
|
||||
| `podtemplates` | | | true | PodTemplate |
|
||||
| `replicationcontrollers` | `rc` | | true| ReplicationController |
|
||||
| `resourcequotas` | `quota` | | true | ResourceQuota |
|
||||
| `secrets` | | | true | Secret |
|
||||
| `serviceaccounts` | `sa` | | true | ServiceAccount |
|
||||
| `services` | `svc` | | true | Service |
|
||||
| `mutatingwebhookconfigurations` | | admissionregistration.k8s.io | false | MutatingWebhookConfiguration |
|
||||
| `validatingwebhookconfigurations` | | admissionregistration.k8s.io | false | ValidatingWebhookConfiguration |
|
||||
| `customresourcedefinitions` | `crd`, `crds` | apiextensions.k8s.io | false | CustomResourceDefinition |
|
||||
| `apiservices` | | apiregistration.k8s.io | false | APIService |
|
||||
| `controllerrevisions` | | apps | true | ControllerRevision |
|
||||
| `daemonsets` | `ds` | apps | true | DaemonSet |
|
||||
| `deployments` | `deploy` | apps | true | Deployment |
|
||||
| `replicasets` | `rs` | apps | true | ReplicaSet |
|
||||
| `statefulsets` | `sts` | apps | true | StatefulSet |
|
||||
| `tokenreviews` | | authentication.k8s.io | false | TokenReview |
|
||||
| `localsubjectaccessreviews` | | authorization.k8s.io | true | LocalSubjectAccessReview |
|
||||
| `selfsubjectaccessreviews` | | authorization.k8s.io | false | SelfSubjectAccessReview |
|
||||
| `selfsubjectrulesreviews` | | authorization.k8s.io | false | SelfSubjectRulesReview |
|
||||
| `subjectaccessreviews` | | authorization.k8s.io | false | SubjectAccessReview |
|
||||
| `horizontalpodautoscalers` | `hpa` | autoscaling | true | HorizontalPodAutoscaler |
|
||||
| `cronjobs` | `cj` | batch | true | CronJob |
|
||||
| `jobs` | | batch | true | Job |
|
||||
| `certificatesigningrequests` | `csr` | certificates.k8s.io | false | CertificateSigningRequest |
|
||||
| `leases` | | coordination.k8s.io | true | Lease |
|
||||
| `events` | `ev` | events.k8s.io | true | Event |
|
||||
| `ingresses` | `ing` | extensions | true | Ingress |
|
||||
| `networkpolicies` | `netpol` | networking.k8s.io | true | NetworkPolicy |
|
||||
| `poddisruptionbudgets` | `pdb` | policy | true | PodDisruptionBudget |
|
||||
| `podsecuritypolicies` | `psp` | policy | false | PodSecurityPolicy |
|
||||
| `clusterrolebindings` | | rbac.authorization.k8s.io | false | ClusterRoleBinding |
|
||||
| `clusterroles` | | rbac.authorization.k8s.io | false | ClusterRole |
|
||||
| `rolebindings` | | rbac.authorization.k8s.io | true | RoleBinding |
|
||||
| `roles` | | rbac.authorization.k8s.io | true | Role |
|
||||
| `priorityclasses` | `pc` | scheduling.k8s.io | false | PriorityClass |
|
||||
| `csidrivers` | | storage.k8s.io | false | CSIDriver |
|
||||
| `csinodes` | | storage.k8s.io | false | CSINode |
|
||||
| `storageclasses` | `sc` | storage.k8s.io | false | StorageClass |
|
||||
| `volumeattachments` | | storage.k8s.io | false | VolumeAttachment |
|
||||
|
||||
## Опции вывода
|
||||
|
||||
В следующих разделах рассматривается форматирование и сортировка вывода определенных команд. Дополнительные сведения о том, какие команды поддерживают разные варианты вывода, смотрите в справочной документации [kubectl](/ru/docs/user-guide/kubectl/).
|
||||
|
||||
### Форматирование вывода
|
||||
|
||||
Стандартный формат вывода всех команд `kubectl` представлен в человекочитаемом текстовом формате. Чтобы вывести подробности в определенном формате можно добавить флаги `-o` или `--output` к команде `kubectl`.
|
||||
|
||||
#### Синтаксис
|
||||
|
||||
```shell
|
||||
kubectl [command] [TYPE] [NAME] -o <output_format>
|
||||
```
|
||||
|
||||
В зависимости от операции `kubectl` поддерживаются следующие форматы вывода:
|
||||
|
||||
Выходной формат | Описание
|
||||
--------------| -----------
|
||||
`-o custom-columns=<spec>` | Вывести таблицу с использованием списка [пользовательских столбцов](#пользовательские-столбцы), разделённого запятыми.
|
||||
`-o custom-columns-file=<filename>` | Вывести таблицу с использованием шаблона с [пользовательскими столбцами](#пользовательские-столбцы) в файле `<filename>`.
|
||||
`-o json` | Вывести API-объект в формате JSON.
|
||||
`-o jsonpath=<template>` | Вывести поля, определенные в выражении [jsonpath](/ru/docs/reference/kubectl/jsonpath/).
|
||||
`-o jsonpath-file=<filename>` | Вывести поля, определённые в выражении [jsonpath](/ru/docs/reference/kubectl/jsonpath/) из файла `<filename>`.
|
||||
`-o name` | Вывести только имя ресурса.
|
||||
`-o wide` | Вывести в текстовом формате с дополнительной информацией. Для подов отображается имя узла.
|
||||
`-o yaml` | Вывести API-объект в формате YAML
|
||||
|
||||
##### Пример
|
||||
|
||||
В данном примере следующая команда выводит подробную информацию по указанному поду в виде объекта в YAML-формате:
|
||||
|
||||
```shell
|
||||
kubectl get pod web-pod-13je7 -o yaml
|
||||
```
|
||||
|
||||
Примечание: подробную информацию о доступных форматах вывода в определенной команде смотрите в справочной документации [kubectl](/ru/docs/user-guide/kubectl/).
|
||||
|
||||
#### Пользовательские столбцы
|
||||
|
||||
Для определения пользовательских столбцов и вывода в таблицу только нужных данных, можно использовать опцию `custom-columns`. Вы можете определить пользовательские столбцы в самой опции, либо сделать это в файле шаблона: `-o custom-columns=<spec>` или `-o custom-columns-file=<filename>`.
|
||||
|
||||
##### Примеры
|
||||
|
||||
Столбцы указаны в самой команде:
|
||||
|
||||
```shell
|
||||
kubectl get pods <pod-name> -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
|
||||
```
|
||||
|
||||
Столбцы указаны в файле шаблона:
|
||||
|
||||
```shell
|
||||
kubectl get pods <pod-name> -o custom-columns-file=template.txt
|
||||
```
|
||||
|
||||
где файл `template.txt` содержит следующее:
|
||||
|
||||
```
|
||||
NAME RSRC
|
||||
metadata.name metadata.resourceVersion
|
||||
```
|
||||
|
||||
Результат выполнения любой из показанной выше команды:
|
||||
|
||||
```shell
|
||||
NAME RSRC
|
||||
submit-queue 610995
|
||||
```
|
||||
|
||||
#### Получение вывода с сервера
|
||||
|
||||
`kubectl` может получать информацию об объектах с сервера.
|
||||
Это означает, что для любого указанного ресурса сервер вернет столбцы и строки по этому ресурсу, которые отобразит клиент.
|
||||
Благодаря тому, что сервер инкапсулирует реализацию вывода, гарантируется единообразный и человекочитаемый вывод на всех клиентах, использующих один и тот же кластер.
|
||||
|
||||
Эта функциональность включена по умолчанию, начиная с `kubectl` 1.11 и выше. Чтобы отключить ее, добавьте флаг `--server-print=false` в команду `kubectl get`.
|
||||
|
||||
##### Примеры
|
||||
|
||||
Для вывода информации о состоянии пода, используйте следующую команду:
|
||||
|
||||
```shell
|
||||
kubectl get pods <pod-name> --server-print=false
|
||||
```
|
||||
|
||||
Вывод будет выглядеть следующим образом:
|
||||
|
||||
```shell
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
pod-name 1/1 Running 0 1m
|
||||
```
|
||||
|
||||
### Сортировка списка объектов
|
||||
|
||||
Для вывода объектов в виде отсортированного списка в терминал используется флаг `--sort-by` к команде `kubectl`. Для сортировки объектов нужно указать любое числовое или строковое поле в флаге `--sort-by`. Для определения поля используйте выражение [jsonpath](/ru/docs/reference/kubectl/jsonpath/).
|
||||
|
||||
#### Синтаксис
|
||||
|
||||
```shell
|
||||
kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>
|
||||
```
|
||||
|
||||
##### Пример
|
||||
|
||||
Чтобы вывести список подов, отсортированных по имени, выполните команду ниже:
|
||||
|
||||
```shell
|
||||
kubectl get pods --sort-by=.metadata.name
|
||||
```
|
||||
|
||||
## Примеры: распространенные операции
|
||||
|
||||
Посмотрите следующие примеры, чтобы ознакомиться с часто используемыми операциями `kubectl`:
|
||||
|
||||
`kubectl apply` - Внести изменения или обновить ресурс из файла или потока stdin.
|
||||
|
||||
```shell
|
||||
# Создать сервис из определения в example-service.yaml.
|
||||
kubectl apply -f example-service.yaml
|
||||
|
||||
# Создать контроллер репликации из определения в example-controller.yaml.
|
||||
kubectl apply -f example-controller.yaml
|
||||
|
||||
# Создать объекты, которые определены в файлах с расширением .yaml, .yml или .json в директории <directory>.
|
||||
kubectl apply -f <directory>
|
||||
```
|
||||
|
||||
`kubectl get` - Вывести один или несколько ресурсов.
|
||||
|
||||
```shell
|
||||
# Вывести все поды в текстовом формате вывода.
|
||||
kubectl get pods
|
||||
|
||||
# Вывести все поды в текстовом формате вывода и включить дополнительную информацию (например, имя узла).
|
||||
kubectl get pods -o wide
|
||||
|
||||
# Вывести контроллер репликации с указанным именем в текстовом формате вывода. Совет: вы можете использовать сокращенный псевдоним 'rc' вместо 'replicationcontroller'.
|
||||
kubectl get replicationcontroller <rc-name>
|
||||
|
||||
# Вывести все контроллеры репликации и сервисы вместе в текстовом формате вывода.
|
||||
kubectl get rc,services
|
||||
|
||||
# Вывести все наборы демонов в текстовом формате вывода.
|
||||
kubectl get ds
|
||||
|
||||
# Вывести все поды, запущенные на узле server01
|
||||
kubectl get pods --field-selector=spec.nodeName=server01
|
||||
```
|
||||
|
||||
`kubectl describe` - Показать подробное состояние одного или нескольких ресурсов, по умолчанию также включаются неинициализированные ресурсы.
|
||||
|
||||
```shell
|
||||
# Показать информацию об узле с именем <node-name>.
|
||||
kubectl describe nodes <node-name>
|
||||
|
||||
# Показать подробности пода <pod-name>.
|
||||
kubectl describe pods/<pod-name>
|
||||
|
||||
# Показать подробности всех подов, управляемые контроллером репликации <rc-name>.
|
||||
# Обратите внимание: любые поды, созданные контроллером репликации, имеют префикс с именем контроллера репликации.
|
||||
kubectl describe pods <rc-name>
|
||||
|
||||
# Показать подробности по всем подам
|
||||
kubectl describe pods
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
Как правило, команда `kubectl get` используется для получения одного или нескольких ресурсов одного и того же типа. Она поддерживает большой набор флагов, с помощью которых можно настроить формат вывода, например, с помощью флага `-o` или `--output`.
|
||||
Вы можете указать флаг `-w` или `--watch`, чтобы отслеживать изменения в конкретном объекте. Команда `kubectl describe` в основном сфокусирована на описание многих взаимосвязанных аспектов указанного ресурса. При генерации вывода для пользователя она может обращаться к API-серверу. К примеру, команда `kubectl describe node` выдает не только информацию об узле, но и краткий обзор запущенных на нем подов, генерируемых событий и т.д.
|
||||
{{< /note >}}
|
||||
|
||||
`kubectl delete` - Удалить ресурсы из файла, потока stdin или с помощью селекторов меток, имена, селекторов ресурсов или имен ресурсов.
|
||||
|
||||
```shell
|
||||
# Удалить под по типу и имени, указанных в файле pod.yaml.
|
||||
kubectl delete -f pod.yaml
|
||||
|
||||
# Удалить все поды и сервисы с именем метки <label-name>.
|
||||
kubectl delete pods,services -l name=<label-name>
|
||||
|
||||
# Удалить все поды, включая неинициализированные.
|
||||
kubectl delete pods --all
|
||||
```
|
||||
|
||||
`kubectl exec` - Выполнить команду в контейнера пода.
|
||||
|
||||
```shell
|
||||
# Получить вывод от запущенной команды 'date' в поде <pod-name>. По умолчанию отображается вывод из первого контейнера.
|
||||
kubectl exec <pod-name> date
|
||||
|
||||
# Получить вывод из запущенной команды 'date' в контейнере <container-name> пода <pod-name>.
|
||||
kubectl exec <pod-name> -c <container-name> date
|
||||
|
||||
# Получить интерактивный терминал (TTY) и запустить /bin/bash в поде <pod-name>. По умолчанию отображается вывод из первого контейнера.
|
||||
kubectl exec -ti <pod-name> /bin/bash
|
||||
```
|
||||
|
||||
`kubectl logs` - Вывести логи контейнера в поде.
|
||||
|
||||
```shell
|
||||
# Возвращает текущие логи в поде <pod-name>.
|
||||
kubectl logs <pod-name>
|
||||
|
||||
# Вывод логов в поде <pod-name> в режиме реального времени. Это похоже на команду 'tail -f' Linux.
|
||||
kubectl logs -f <pod-name>
|
||||
```
|
||||
|
||||
## Примеры: создание и использование плагинов
|
||||
|
||||
Посмотрите следующие примеры, чтобы ознакомиться с тем, как писать и использовать плагины `kubectl`:
|
||||
|
||||
```shell
|
||||
# Плагин может быть на на любом языке, а сам исполняемый файл должен начинается с префикса "kubectl-".
|
||||
cat ./kubectl-hello
|
||||
#!/bin/bash
|
||||
|
||||
# Этот плагин выводит строку "hello world"
|
||||
echo "hello world"
|
||||
|
||||
# Сделать плагин исполняемым
|
||||
sudo chmod +x ./kubectl-hello
|
||||
|
||||
# Переместить его в директорию из PATH
|
||||
sudo mv ./kubectl-hello /usr/local/bin
|
||||
|
||||
# Плагин дял kubectl создан и "установлен".
|
||||
# Воспользоваться плагином можно через kubectl, вызвав его подобно обычной команды.
|
||||
kubectl hello
|
||||
```
|
||||
|
||||
```
|
||||
hello world
|
||||
```
|
||||
|
||||
```
|
||||
# "Отмена установки" плагина происходит через удаление его файла из директории в PATH.
|
||||
sudo rm /usr/local/bin/kubectl-hello
|
||||
```
|
||||
|
||||
Посмотреть все доступные плагины `kubectl` можно с помощью подкоманды `kubectl plugin list`:
|
||||
|
||||
```shell
|
||||
kubectl plugin list
|
||||
```
|
||||
|
||||
```
|
||||
The following kubectl-compatible plugins are available:
|
||||
|
||||
/usr/local/bin/kubectl-hello
|
||||
/usr/local/bin/kubectl-foo
|
||||
/usr/local/bin/kubectl-bar
|
||||
```
|
||||
|
||||
```
|
||||
# Эта команда также может сообщить, что плагин является неисполняемым,
|
||||
# либо что плагин переопределен другими плагинами
|
||||
|
||||
sudo chmod -x /usr/local/bin/kubectl-foo
|
||||
kubectl plugin list
|
||||
```
|
||||
|
||||
```
|
||||
The following kubectl-compatible plugins are available:
|
||||
|
||||
/usr/local/bin/kubectl-hello
|
||||
/usr/local/bin/kubectl-foo
|
||||
- warning: /usr/local/bin/kubectl-foo identified as a plugin, but it is not executable
|
||||
/usr/local/bin/kubectl-bar
|
||||
|
||||
error: one plugin warning was found
|
||||
```
|
||||
|
||||
Плагины можно рассматривать как способ создания более сложной функциональности поверх существующих команд kubectl:
|
||||
|
||||
```shell
|
||||
cat ./kubectl-whoami
|
||||
#!/bin/bash
|
||||
|
||||
# Этот плагин использует команду `kubectl config` для вывода
|
||||
# информации о текущем пользователе из текущего выбранного контекста
|
||||
kubectl config view --template='{{ range .contexts }}{{ if eq .name "'$(kubectl config current-context)'" }}Current user: {{ .context.user }}{{ end }}{{ end }}'
|
||||
```
|
||||
|
||||
Выполнение этого плагина генерирует вывод, содержащий пользователя для текущего выбранного контекста в файле KUBECONFIG:
|
||||
|
||||
```shell
|
||||
# Сделать файл исполняемым
|
||||
sudo chmod +x ./kubectl-whoami
|
||||
|
||||
# Перенести файл в директорию из PATH
|
||||
sudo mv ./kubectl-whoami /usr/local/bin
|
||||
|
||||
kubectl whoami
|
||||
Current user: plugins-user
|
||||
```
|
||||
|
||||
Чтобы узнать больше о плагинах, изучите [пример CLI-плагина](https://github.com/kubernetes/sample-cli-plugin).
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
|
||||
Начните использовать команды [kubectl](/ru/docs/reference/generated/kubectl/kubectl-commands/).
|
||||
|
||||
{{% /capture %}}
|
||||
Reference in New Issue
Block a user