Англійський словник для операцій Kubernetes
Освоєння операційної англійської мови, необхідної для впевненого спілкування про цикли життя підсистем, команди kubectl, стани вузлів і події кластерів.
Kubernetes має свій власний щільний оперативний словник, і не-рідні носії англійської часто борються не з концепціями, а з тим, як висловити їх вголос. Ви, можливо, точно знаєте, що таке CrashLoopBackOff; найскладніше — спокійно пояснити це менеджеру під час відеозв’ язку о 23: 00. Цей посібник містить інформацію англійською мовою, яка потрібна для професійного опису, діагностики і обговорення операцій Kubernetes.
Порядок дій у цій ситуації: Кожен з них має знати, що робити
Підшипник проходить кілька фаз протягом свого життя. Знання назви кожної фази є кроком першим; знання того, як використовувати її в реченні, є кроком другим.
| Phase | Meaning | Example sentence |
|---|---|---|
| Pending | The 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.” |
| Running | The pod is bound to a node and at least one container is running. | ”All three replicas are Running, so the rollout succeeded.” |
| Succeeded | All containers in the pod completed successfully and exited. | ”The batch job pod is in Succeeded — we can archive the logs.” |
| Failed | One or more containers exited with a non-zero code. | ”The pod Failed on startup — I’m pulling the logs now.” |
| Unknown | The 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, розгляньте можливість написання короткого резюме інциденту англійською мовою після кожної розв’ язаної проблеми. Навіть два або три речення — що зламалося, що ви знайшли, що змінили — прискорять ваш оперативний словник швидше, ніж будь- який список слів.