Англійський словник для операцій Kubernetes

Освоєння операційної англійської мови, необхідної для впевненого спілкування про цикли життя підсистем, команди kubectl, стани вузлів і події кластерів.

Kubernetes має свій власний щільний оперативний словник, і не-рідні носії англійської часто борються не з концепціями, а з тим, як висловити їх вголос. Ви, можливо, точно знаєте, що таке CrashLoopBackOff; найскладніше — спокійно пояснити це менеджеру під час відеозв’ язку о 23: 00. Цей посібник містить інформацію англійською мовою, яка потрібна для професійного опису, діагностики і обговорення операцій Kubernetes.


Порядок дій у цій ситуації: Кожен з них має знати, що робити

Підшипник проходить кілька фаз протягом свого життя. Знання назви кожної фази є кроком першим; знання того, як використовувати її в реченні, є кроком другим.

PhaseMeaningExample sentence
PendingThe pod has been accepted but is not yet running — waiting for scheduling or image pull.”The pod has been in Pending for three minutes — let me check if the node has enough resources.”
RunningThe pod is bound to a node and at least one container is running.”All three replicas are Running, so the rollout succeeded.”
SucceededAll containers in the pod completed successfully and exited.”The batch job pod is in Succeeded — we can archive the logs.”
FailedOne or more containers exited with a non-zero code.”The pod Failed on startup — I’m pulling the logs now.”
UnknownThe pod state cannot be determined, usually a node communication problem.”We have two pods in Unknown — the node may have gone offline.”

CrashLoopBackOff

Це один з найчастіше обговорюваних станів Kubernetes — і один, що спонукає людей до розмови.

  • Неправильно: «Под crashes loop back off.»
  • Праворуч: « Под знаходиться в CrashLoopBackOff. » (розглядати як одну фразу з іменником)

Корисні речення:

  • «The pod keeps entering CrashLoopBackOff — it starts, crashes, and Kubernetes keeps restarting it with increasing delay.»
  • Нам потрібно описати капсулу і перевірити останній код виходу, щоб зрозуміти, чому він циклічний
  • “CrashLoopBackOff означає, що контейнер виходить майже відразу після запуску. Моє перше підозріння — відсутня змінна середовища»

Команди kubectl як вимовлені фрази

Коли ви описуєте дії, які ви виконуєте у кластері, ви оповідаєте про команди kubectl. Ось як сказати кожне з них природно.

** kubectl get pods **

  • «Дай мені отримати список під. / Я запускаю get pods, щоб перевірити стан. »

** kubectl describe pod <name> **

  • «Я описую під, щоб побачити розділ подій.» / «Вивід опису показує подію OOMKilled.»

** kubectl logs <pod> --previous **

  • «Дай мені витягнути журнали з попереднього контейнера — поточний вже перезапустився.» / «Попередні журнали повинні показувати стековий слід до аварії.»

** kubectl exec -it <pod> -- /bin/sh **

  • «Я запустю в під, щоб перевірити конфігурацію безпосередньо.» / «Чи можете ви запустити в запущений під і перевірити, чи змонтовано секрет?»

** kubectl rollout status deployment/<name> **

  • «Я дивлюся на стан розгортання — він на 2 з 3 оновлених реплік»

** kubectl rollout undo deployment/<name> **

  • «Нова версія кидає 500-ки — я збираюся повернути розгортання зараз»

Описуючи стани вузлів

Ноди - це машини, які керують вашими підсистемами. Якщо щось не так на рівні інфраструктури, ви почуєте і вам доведеться скористатися цими фразами.

** « вузол не готовий ». ** Це означає, що кубелет на цьому вузлі перестав спілкуватися з площиною керування. На практиці: «Вузол worker-3 був NotReady протягом шести хвилин. Підшипники на ньому евакуюються і переплануються на здорові вузли»

** “Вузол знаходиться під тиском пам’ яті.” ** Kubernetes повідомляє такі умови, як MemoryPressure, DiskPressure, і PIDPressure. Використання: «Вузол worker-1 був позначений MemoryPressure — тому він не приймає нові піди»

“Капу евакуювали.” Висилання відбувається, коли вузол працює з низьким рівнем ресурсів і Kubernetes вилучає піди, щоб захистити вузол. Використання: “Три капсули були виселені з worker-2 через тиск диска. Я збільшив обмеження на ефемерне зберігання в специфікації розгортання»


Мова програмування

Коли ти говориш про те, де приземляються капсули, ти використовуєш словник планування.

  • ** « Неможливо запланувати підрозділ » ** — жоден вузол не відповідає обмеженням підрозділу.
  • ** « На всіх вузлах недостатньо ресурсів ЦП » ** — поширена помилка планування.
  • ** « Правила зв’ язку вузлів занадто обмежують » ** — підрозділ дозволено лише на певних вузлах, і жодного з них не можна використовувати.
  • “Я додаю забарвлення до цього вузла, щоб там не планувалися нові підрозділи.”
  • “Відповідь має допуск на помилку обслуговування, тому вона все одно буде запущена на цьому вузлі.”

Фрази про інциденти і ескалації

Коли щось йде не так на виробництві, вам потрібно швидко і точно спілкуватися.

** Заявка на проблему: **

  • «Ми маємо піди в CrashLoopBackOff в просторі імен payments — це впливає на замовлення»
  • “Відповідь api-gateway має нуль готових реплік. Служба впала»

** Пояснюйте, що ви розслідуєте: **

  • «Я перевіряю, чи це помилка програми або проблема обмеження ресурсів.»
  • Події на поді показують, що це було OOMKilled — контейнер перевищив свій обсяг пам’яті

OOMKilled заслуговує особливої уваги. Це означає «Out Of Memory Killed» — ядро припинило контейнер, тому що він перевищив обмеження пам’ яті. Скажіть це так: “Контейнер був OOM-загинув” або “Ми бачимо OOMKilled виходи.”

** Пропонується виправлення: **

  • «Я збираюся збільшити обмеження пам’яті з 256Mi до 512Mi і викликати новий rollout.»
  • “Я буду кордон проблемний вузол, щоб запобігти нові піддони від планування там, поки ми розслідуємо.”

** Кордонування вузла ** означає позначення його як неможливого для планування без вилучення існуючих підрозділів. « Я кордонував worker-4 — нові підрозділи не будуть там приземлятися, але запущені залишаться »

** Витоку вузла ** витісняє всі підсистеми і кордонує його за один крок. « Мені потрібно виточити worker-4 перед вікном обслуговування. Я впевнюся, що PodDisruptionBudgets будуть дотримуватися»


Основні напрямки діяльності: оперативна діяльність

  • ** Реплікація ** — один запущений екземпляр підсистеми; розгортання керує декількома реплікаціями для зменшення кількості.
  • ** Простір імен ** — віртуальний розділ кластера; скажіть « розгорнути це до простору імен staging. »
  • ConfigMap / Secret — об’ єкти Kubernetes для введення налаштувань. «Програма читає адресу URL бази даних з ConfigMap.»
  • ** Liveness probe / Readiness probe ** — перевірки стану, які Kubernetes використовує для керування трафіком і перезапусків. « Збої у пробі готовності, отже Kubernetes ще не маршрутизує трафік до нового поду. »
  • ** Обмеження і запити щодо ресурсів ** — обмеження на використання ЦП і пам’ яті для контейнерів. « Обмеження встановлено занадто низьке — контейнер буде обмежено. »

Впровадження в практику

Наступного разу, коли ви працюватимете у кластері, спробуйте описати свої дії уголос або у гілки Slack. « Я описую підрозділ, який зазнав невдачі, щоб перевірити розділ подій. Остання подія показує помилку витягування зображення — мітки не існує у реєстрі». Ця звичка змушує вас використовувати словник у контексті, саме так він стає природнім.

Якщо ви регулярно працюєте з Kubernetes, розгляньте можливість написання короткого резюме інциденту англійською мовою після кожної розв’ язаної проблеми. Навіть два або три речення — що зламалося, що ви знайшли, що змінили — прискорять ваш оперативний словник швидше, ніж будь- який список слів.

Поширені запитання

Про що ця стаття "Англійський словник для операцій Kubernetes"?

Освоєння операційної англійської мови, необхідної для впевненого спілкування про цикли життя підсистем, команди kubectl, стани вузлів і події кластерів.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Англійський словник для операцій Kubernetes"?

Приблизно 8 min.