Info
Content

7. Продвинутые инструменты для работы с Kubernetes

Команда.kubectl.explain.выводит.документацию.для.заданного. типа.ресурсов: kubectl explain pods

На.самом.деле.exp.lain.по- зволяет.копнуть.настолько.глубоко,.насколько.вы.захотите

$ kubectl explain deploy.spec.template.spec.containers.livenessProbe.exec
KIND:     Deployment
VERSION:  apps/v1

RESOURCE: exec <Object>

DESCRIPTION:
     One and only one of the following should be specified. Exec specifies the
     action to take.

     ExecAction describes a "run in container" action.

FIELDS:
   command	<[]string>
     Command is the command line to execute inside the container, the working
     directory for the command is root ('/') in the container's filesystem. The
     command is simply exec'd, it is not run inside a shell, so traditional
     shell instructions ('|', etc) won't work. To use a shell, you need to
     explicitly call out to that shell. Exit status of 0 is treated as
     live/healthy and non-zero is unhealthy.

создает.развертывание.для.выполнения.в.заданном.контейнере. Большинство. ресурсов. можно. создавать. явным. образом. с. помощью. команды. kubectl.create: kubectl create namespace my-new-namespace namespace "my-new-namespace" created Аналогично.kubectl.delete.и.удалит.ресурс: kubectl delete namespace my-new-namespace namespace "my-new-namespace" deleted Команда.kubectl.edit.дает.вам.возможность.просматривать.и.модифицировать. любые.ресурсы: kubectl edit deployments my-deployment Этим. вы. откроете. свой. стандартный. текстовый. редактор. с. файлом. манифеста. в.формате.YAML,.который.представляет.заданный.ресурс. Это. хороший. способ. получить. детальную. информацию. о. конфигурации. любого. ресурса,.но.также.вы.можете.в.редакторе.внести.и.необходимые.изменения..После. сохранения.файла.и.выхода.из.редактора.kubectl.обновит.ресурс.так,.словно.вы. применили.к.манифесту.ресурса.команду.kubectl.apply. Если.вы.допустили.какие-либо.ошибки.(например,.некорректный.формат.YAML),. kubectl.об.этом.сообщит.и.откроет.файл,.чтобы.вы.могли.исправить.проблему.

Не используйте императивные команды kubectl, такие как create или edit, в про- мышленных кластерах. Вместо этого всегда управляйте ресурсами с помощью YAML-манифестов в системе контроля версий и применяйте их командой kubectl apply (или используя чарты Helm).

kubectl diff позволяет увидеть разницу между ресурсом в кластере и описанием ресурса в файле

императивные команды можно использовать для генерации манифестов
вместо того чтобы руками писать однотипные огромные шаблонные манифесты, можно генерировать их через kubectl

[node1 ~]$ kubectl run demo --image=cloudnatived/demo:hello --dry-run=client -o yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: demo
  name: demo
spec:
  containers:
  - image: cloudnatived/demo:hello
    name: demo
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

С.точки.зрения.Kubernetes.журналом.считается. все,.что.контейнер.записывает.в.потоки вывода сообщений об ошибках.—.это.то,.что. выводит.на.экран.программа,.запущенная.в.терминале.

$ kubectl --namespace kube-system logs --tail 5 openstack-cloud-controller-manager-8lpjb
I0701 17:37:55.155260       1 named_certificates.go:53] loaded SNI cert [0/"self-signed loopback"]: "apiserver-loopback-client@1625161074" [serving] validServingFor=[apiserver-loopback-client] issuer="apiserver-loopback-client-ca@1625161074" (2021-07-01 16:37:53 +0000 UTC to 2022-07-01 16:37:53 +0000 UTC (now=2021-07-01 17:37:55.155236083 +0000 UTC))
I0701 17:37:55.155317       1 secure_serving.go:197] Serving securely on [::]:10258
I0701 17:37:55.155379       1 leaderelection.go:243] attempting to acquire leader lease kube-system/cloud-controller-manager...
I0701 17:37:55.156540       1 tlsconfig.go:240] Starting DynamicServingCertificateController
E0701 17:48:33.165811       1 leaderelection.go:325] error retrieving resource lock kube-system/cloud-controller-manager: etcdserver: request timed out

k attach pod-name - позволяет зааттачиться к поду

$ ksys attach coredns-558bd4d5db-6s25r
If you don't see a command prompt, try pressing enter.

^C

Кон- текст. —. это. сочетание. кластера,. пользователя. и. пространства. имен

Когда.вы.запускаете.команды.kubectl,.они.всегда.выполняются.в.текущем контек- сте

Это.замечательно.—.приготовить. изящный.однострочный.скрипт.командной.оболочки.для.интерактивной.отладки. и.исследования,.но.он.может.оказаться.слишком.сложным.для.чтения.и.обслужи- вания. Для. настоящих. системных. программистов,. которые. автоматизируют. промыш- ленные. рабочие. процессы,. мы. настоятельно. советуем. использовать. и. настоящие системные.языки.программирования..Язык.Go.—.логичный.выбор,.поскольку.он. удовлетворил.требованиям.создателей.Kubernetes,.и,.таким.образом,.данная.плат- форма.включает.в.себя.полноценную.клиентскую.библиотеку.(github.com/kubernetes/ client-go).для.программ.на.Go

No Comments
Back to top