Рубрики
Uncategorized

Что такое капсулы в Kubernetes?

После долгого шутки, когда я изучал Kubernetes, я наконец -то серьезно относился к этому два … Теги с кубиковыми, DevOps, новичками.

После долгого шутки, когда я изучал Kubernetes, я наконец -то серьезно относился к этому две недели назад. Я поболтал с моим боссом, и он призвал меня узнать что -то за пределами моего домена, так что это казалось хорошей возможностью, наконец, спуститься и разобраться с ним.

Я кодер самоучки. Большая часть моих основополагающих знаний пришла от проведения ночей на моей документации по чтению компьютера, просмотра учебных пособий в Интернете и получения рук. Я всегда был учащимся, который делится, то есть, когда я узнаю что -то техническое, мне нравится писать об этом в блоге. Частично так, когда мне придется снова искать это, я могу легко найти это, но также и поэтому я могу поделиться с другими тем, что я узнал, в надежде, что это поможет любому, кто его найдет.

Я все еще на ранних стадиях моего путешествия в Kubernetes, но в этом году я поставил перед собой цель получить сертифицированную сертификацию Certified Kubernetes Developer (CKAD). Это далеко далеко, так как я все еще обнимаю голову вокруг оснований, но я поставил перед собой цель как к чему -то, к чему стремиться.

Имея в виду эту цель, моя краткосрочная цель-разобраться в основе и создать серию постов в блоге, охватывающих каждую тему.

Итак, с этим вступлением, давайте погрузимся в нашу первую тему, стручки!

В этом сообщении мы рассмотрим:

  • Что такое стручки?
  • В чем разница между отдельными контейнерами и мультиконтракозными стручками?
  • Как мы можем создавать стручки в Kubernetes?
  • Как мы можем развернуть и взаимодействовать с нашими стручками, используя kubectl?
  • Как мы можем гарантировать, что наши капсулы в Kubernetes будут здоровыми?

Что такое стручки?

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

Kubernetes использует POD для запуска экземпляра нашего приложения, а один POD представляет один экземпляр этого приложения. Мы можем масштабировать наше приложение по горизонтали, добавив больше реплик POD.

Стручки могут содержать одну или несколько контейнеров в качестве группы, которые имеют одни и те же ресурсы в этом POD (хранилище, сетевые ресурсы, пространства имен). Стручки обычно имеют сопоставление 1-1 с контейнерами, но в более продвинутых ситуациях мы можем запускать несколько контейнеров в стручке.

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

Контейнеры POD поделится пространством имен сети и интерфейсом имени. Контейнерные процессы должны связываться с различными портами в капсулах, а порты могут быть повторно использованы контейнерами в отдельных контейнерах. Стручки не опускают узлы в нашем кластере Kubernetes.

В чем разница между отдельными контейнерами и мультиконтракозными стручками?

Как я уже упоминал ранее, капсулы могут содержать либо одну, либо несколько контейнеров.

Запуск Одиночный контейнер в стручке является общим вариантом использования. Здесь стручка действует как обертка вокруг одного контейнера, а Kubernetes управляет стручками, а не контейнерами напрямую.

Мы также можем запустить Несколько контейнеров в стручке Анкет Здесь POD оборачивается вокруг приложения, состоящего из нескольких контейнеров и обмена ресурсами.

Если нам нужно запустить несколько контейнеров в одном стручке, рекомендуется сделать это только в тех случаях, когда контейнеры тесно связаны.

Как мы можем создавать стручки в Kubernetes?

Мы можем определить стручки в Kubernetes, используя файлы YAML. Используя эти файлы YAML, мы можем создавать объекты, которые взаимодействуют с API Kubernetes (POD, пространство имен, развертывания и т. Д.). Под капотом Kubectl преобразует информацию, которую мы определили в нашем файле YAML в JSON, которая делает запрос в API Kubernetes.

Я фанат YAML, легко понять, что происходит, и благодаря расширениям в таких инструментах, как Visual Studio Code, их легко создавать и управлять.

Я получаю, что отступ может быть болью. Я использую Yaml code adviness Эта Red Hat разработала в коде Visual Studio, чтобы помочь мне написать мои файлы YAML. Для Intellisense для Kubernetes я использую Kubernetes Code Extension Анкет

Давайте посмотрим на пример определения YAML для капсула Kubernetes:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-2
  labels:
    name: nginx-2
    env: production
spec:
  containers:
  - name: nginx
    image: nginx

Давайте немного разберем это. Чтобы создать объекты Kubernetes с использованием YAML, нам нужно установить значения для следующих полей.

Apiversion — Это определяет версию API Kubernetes, которую мы хотим использовать в этом файле YAML. Вы можете прочитать больше о версиях API в Kubernetes Здесь Анкет

добрый — Это определяет, какой объект Kubernetes мы хотим создать.

Метаданные — Это данные, которые помогают нам однозначно определить объект, который мы хотим создать. Здесь мы можем предоставить имя для нашего приложения, а также применить этикетки к нашему объекту.

Spec — Это определяет состояние, которое мы хотим или наш объект. Формат, который мы используем для спецификации. Для нашего файла POD мы предоставили информацию о контейнерах, которые мы хотим разместить в нашей капсуле.

Чтобы увидеть, что еще мы можем определить в нашем файле Pod Yaml, Эта документация из Kubernetes поможет вам.

Как мы можем развернуть и взаимодействовать с нашими стручками, используя kubectl?

Есть несколько способов использовать Kubectl для развертывания и взаимодействия с нашими стручками!

Подожди, что такое kubectl?

Kubectl, (Kube-Control, или, как его называют некоторые люди, Kube-Cuddle)-это инструмент командной строки Kubernetes. Это позволяет нам запускать команды против кластеров Kubernetes.

С Kubectl мы можем создать POD, используя наш файл определения YAML, как SO:

kubectl apply -f mypod.yaml

Мы можем перечислить все наши капсулы, как так:

kubectl get pods

Мы можем разоблачить контейнерный порт снаружи, используя kubectl. Помните по умолчанию, стручки и контейнеры доступны только в кластере Kubernetes. Используя kubectl, мы можем запустить следующую команду:

kubectl port-forward mypod 8080:80

Мы также можем удалить стручок. Мы можем сделать это, удалив стручок напрямую как так:

kubectl delete pod mypod

Это приведет к разрушению и созданию стручки. Мы также можем удалить развертывание, которое управляет POD (я расскажу о развертывании Kubernetes в будущем сообщении), как SO:

kubectl delete deployment mydeployment

Как мы можем гарантировать, что наши капсулы в Kubernetes будут здоровыми?

Kubernetes полагается на зонды, чтобы определить, является ли стручка здоровым. Зонды — это диагностические операции, которые периодически выполняются кубелетом на контейнерах.

Есть три типа зондов:

  • Датчики жизни — Они используются для определения того, является ли стручка здоровым и работает, как и ожидалось. Если расследование Lifine не удалось, Kubelet убьет контейнер, а контейнер перезапустит его в соответствии с его определенной политикой (мы можем определить их как всегда, Onfailure и никогда)
  • Готовность зондов — Они используются для определения того, должен ли POD получать запросы. Если зонд сбой, контроллер конечных точек удаляет IP -адрес POD из конечных точек всех служб, которые соответствуют POD.
  • Зонд стартапа — Это используется для определения того, начался ли контейнер. Все остальные зонды отключены, если предоставлен датчик запуска, пока он не преуспеет.

Чтобы выполнить диагностические проверки, Кубелет позвонит обработчику, который был реализован контейнером. Эти типы обработчиков:

  • Выполнение — Это выполняет действие внутри контейнера
  • TCPSocketAction — Проверки TCP выполняются против AddReess IP -контейнеров на указанном порту.
  • Httpgetaction — http Запросы получены с IP -адресом PODS на указанном порту и пути.

Эти зонды могут привести к либо, чтобы A Успех , Неудача или Неизвестно результат.

Вывод

Надеемся, что эта статья помогла вам понять основы стручков в Kubernetes!

Если вы хотите узнать больше о капсулах в Kubernetes, это те ресурсы, которые я использовал, чтобы обрести голову:

Счастливого кодирования 💻👩 ‍💻👨‍💻

Оригинал: «https://dev.to/willvelida/what-are-pods-in-kubernetes-27n4»