Kubectl контролирует кластер Kubernetes. Это один из ключевых компонентов Kubernetes, который запускается на рабочей станции на любом компьютере после завершения установки. Он имеет возможность управлять узлами в кластере.
Команды Kubectl используются для взаимодействия и управления объектами Kubernetes и кластером. В этой главе мы обсудим несколько команд, используемых в Kubernetes через kubectl.
kubectl annotate — обновляет аннотацию на ресурсе.
$kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N = VAL_N [--resource-version = version]
Например,
kubectl annotate pods tomcat description = 'my frontend'
api-версии kubectl — печатает поддерживаемые версии API в кластере.
$ kubectl api-version;
kubectl apply — имеет возможность конфигурировать ресурс по файлу или стандартному вводу.
$ kubectl apply –f <filename>
kubectl attach — это прикрепляет вещи к работающему контейнеру.
$ kubectl attach <pod> –c <container> $ kubectl attach 123456-7890 -c tomcat-conatiner
kubectl autoscale — используется для автоматического масштабирования таких модулей, как Развертывание, набор реплик, Контроллер репликации.
$ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min = MINPODS] -- max = MAXPODS [--cpu-percent = CPU] [flags] $ kubectl autoscale deployment foo --min = 2 --max = 10
kubectl cluster-info — отображает информацию о кластере.
$ kubectl cluster-info
kubectl cluster-info dump — выводит соответствующую информацию о кластере для отладки и диагностики.
$ kubectl cluster-info dump $ kubectl cluster-info dump --output-directory = /path/to/cluster-state
kubectl config — изменяет файл kubeconfig.
$ kubectl config <SUBCOMMAD> $ kubectl config –-kubeconfig <String of File name>
kubectl config current-context — отображает текущий контекст.
$ kubectl config current-context #deploys the current context
kubectl config delete-cluster — удаляет указанный кластер из kubeconfig.
$ kubectl config delete-cluster <Cluster Name>
kubectl config delete-context — удаляет указанный контекст из kubeconfig.
$ kubectl config delete-context <Context Name>
kubectl config get-clusters — отображает кластер, определенный в kubeconfig.
$ kubectl config get-cluster $ kubectl config get-cluster <Cluser Name>
kubectl config get-contexts — описывает один или несколько контекстов.
$ kubectl config get-context <Context Name>
kubectl config set-cluster — Устанавливает запись кластера в Kubernetes.
$ kubectl config set-cluster NAME [--server = server] [--certificateauthority = path/to/certificate/authority] [--insecure-skip-tls-verify = true]
kubectl config set-context — устанавливает запись контекста в точке входа kubernetes.
$ kubectl config set-context NAME [--cluster = cluster_nickname] [-- user = user_nickname] [--namespace = namespace] $ kubectl config set-context prod –user = vipin-mishra
kubectl config set-credentials — Устанавливает запись пользователя в kubeconfig.
$ kubectl config set-credentials cluster-admin --username = vipin -- password = uXFGweU9l35qcif
kubectl config set — устанавливает индивидуальное значение в файле kubeconfig.
$ kubectl config set PROPERTY_NAME PROPERTY_VALUE
kubectl config unset — сбрасывает определенный компонент в kubectl.
$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE
kubectl config use-context — устанавливает текущий контекст в файле kubectl.
$ kubectl config use-context <Context Name>
представление конфигурации kubectl
$ kubectl config view $ kubectl config view –o jsonpath='{.users[?(@.name == "e2e")].user.password}'
kubectl cp — копирование файлов и каталогов в контейнеры и из них.
$ kubectl cp <Files from source> <Files to Destinatiion> $ kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
kubectl create — создать ресурс по имени файла или стандартному вводу. Для этого принимаются форматы JSON или YAML.
$ kubectl create –f <File Name> $ cat <file name> | kubectl create –f -
Таким же образом, мы можем создать несколько вещей, перечисленных в списке, используя команду create вместе с kubectl .
- развертывание
- Пространство имен
- квота
- секретный докер-реестр
- секрет
- секретный дженерик
- секретный тлс
- ServiceAccount
- сервисный кластер
- сервис балансировки нагрузки
- сервисный узел
kubectl delete — удаляет ресурсы по имени файла, стандартному имени, ресурсу и именам.
$ kubectl delete –f ([-f FILENAME] | TYPE [(NAME | -l label | --all)])
kubectl description — описывает любой конкретный ресурс в kubernetes. Показывает детали ресурса или группы ресурсов.
$ kubectl describe <type> <type name> $ kubectl describe pod tomcat
Слив kubectl — Это используется для слива узла в целях обслуживания. Он готовит узел к техническому обслуживанию. Это пометит узел как недоступный, так что ему не следует назначать новый контейнер, который будет создан.
$ kubectl drain tomcat –force
kubectl edit — используется для завершения ресурсов на сервере. Это позволяет напрямую редактировать ресурс, который можно получить с помощью инструмента командной строки.
$ kubectl edit <Resource/Name | File Name) Ex. $ kubectl edit rc/tomcat
kubectl exec — это помогает выполнить команду в контейнере.
$ kubectl exec POD <-c CONTAINER > -- COMMAND < args...> $ kubectl exec tomcat 123-5-456 date
kubectl expose — используется для представления объектов Kubernetes, таких как pod, контроллер репликации и служба, в качестве новой службы Kubernetes. Это имеет возможность выставить его через работающий контейнер или из файла yaml .
$ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol = TCP|UDP] [--target-port = number-or-name] [--name = name] [--external-ip = external-ip-ofservice] [--type = type] $ kubectl expose rc tomcat –-port=80 –target-port = 30000 $ kubectl expose –f tomcat.yaml –port = 80 –target-port =
kubectl get — эта команда способна извлекать данные в кластере о ресурсах Kubernetes.
$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...| go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (TYPE [NAME | -l label] | TYPE/NAME ...) [flags]
Например,
$ kubectl get pod <pod name> $ kubectl get service <Service name>
kubectl logs — они используются для получения журналов контейнера в модуле. Печать журналов может определять имя контейнера в модуле. Если POD имеет только один контейнер, нет необходимости определять его имя.
$ kubectl logs [-f] [-p] POD [-c CONTAINER] Example $ kubectl logs tomcat. $ kubectl logs –p –c tomcat.8
kubectl port-forward — они используются для переадресации одного или нескольких локальных портов на модули.
$ kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] $ kubectl port-forward tomcat 3000 4000 $ kubectl port-forward tomcat 3000:5000
kubectl replace — возможность замены ресурса по имени файла или стандартному вводу .
$ kubectl replace -f FILENAME $ kubectl replace –f tomcat.yml $ cat tomcat.yml | kubectl replace –f -
kubectl roll-update — выполняет непрерывное обновление на контроллере репликации. Заменяет указанный контроллер репликации новым контроллером репликации, одновременно обновляя POD.
$ kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] -- image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) $ kubectl rolling-update frontend-v1 –f freontend-v2.yaml
Развертывание kubectl — оно способно управлять развертыванием развертывания.
$ Kubectl rollout <Sub Command> $ kubectl rollout undo deployment/tomcat
Помимо вышесказанного, мы можем выполнить несколько задач, используя развертывание, таких как —
- история развертывания
- пауза
- развертывание резюме
- статус развертывания
- отмена отмены
kubectl run — команда Run позволяет запускать образ в кластере Kubernetes.
$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [-- replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] -- [COMMAND] [args...] $ kubectl run tomcat --image = tomcat:7.0 $ kubectl run tomcat –-image = tomcat:7.0 –port = 5000
kubectl scale — масштабирует размер развертываний Kubernetes, ReplicaSet, Replication Controller или задания.
$ kubectl scale [--resource-version = version] [--current-replicas = count] -- replicas = COUNT (-f FILENAME | TYPE NAME ) $ kubectl scale –-replica = 3 rs/tomcat $ kubectl scale –replica = 3 tomcat.yaml
kubectl set image — обновляет изображение шаблона pod.
$ kubectl set image (-f FILENAME | TYPE NAME) CONTAINER_NAME_1 = CONTAINER_IMAGE_1 ... CONTAINER_NAME_N = CONTAINER_IMAGE_N $ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1 $ kubectl set image deployments, rc tomcat = tomcat6.0 --all
kubectl set resources — используется для установки содержимого ресурса. Обновляет ресурс / лимиты на объект с помощью шаблона pod.
$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits = LIMITS & -- requests = REQUESTS] $ kubectl set resources deployment tomcat -c = tomcat -- limits = cpu = 200m,memory = 512Mi
Верхний узел kubectl — отображает использование процессора / памяти / хранилища. Команда top позволяет увидеть потребление ресурсов для узлов.
$ kubectl top node [node Name]
Эту же команду можно использовать и с модулем.