Легко заблудиться в современном постоянно меняющемся ландшафте облачных местных технологий. Кривой обучения с точки зрения новичка довольно крутой, и без надлежащего контекста становится все труднее просеять через все словечки.
Если вы разрабатывали программное обеспечение, шансы, возможно, вы, возможно, слышали о Kubernetes сейчас. Перед тем, как прыгнуть в то, что Kubernetes это, очень важно, чтобы ознакомиться с контейнеризации и как это произошло.
В этом руководстве мы собираемся рисовать контекстуальную картину того, как развивались развертывания, что обещается контейнерную контейнеров, где Kubernetes вписывается в картину, и общие заблуждения вокруг него. Мы также изучим основную архитектуру Kubernetes, Core Concepts и некоторых примеров. Наша цель данного руководства является снижение барьера для входа и оснащать вас с ума карты для навигации этот ландшафт более уверенно.
Используйте ссылки, чтобы пропустить вперед в руководстве:
👉 Эволюция модели развертывания 🥚 👉 Demystifying контейнер оркестровку 🔓 👉 Что именно Kubernetes? ☸️ 👉 Покажите мне пример ⚽️ 👉 Основные функции 🐎 👉 экосистем 🔄 👉. Общие вопросы ❓.
🥚 Эволюция модели развертывания
Эта эволюция может быть классифицирована на три грубая категория, а именно традиционные, виртуализированные и контейнерные развертывания. Давайте кратко коснумся каждому, чтобы лучше актуализировать эту эволюцию.
0️⃣ голый металл
Некоторые из нас достаточно взрослые, чтобы вспомнить архаичные дни, когда самый распространенный способ развертывания приложений был на внутреннем физических серверах. Облако все еще не было, организации пришлось планировать емкость серверов, чтобы иметь возможность бюджет для этого. Заказ новых серверов был медленной и утомительной задачей, которая заняла несколько недель управления поставщиком и переговоры. Когда-то блестящие новые серверы приехали, они пришли с накладными расходами установки, развертывания, время работы, обслуживание, безопасность и аварийное восстановление.
Из перспективы развертывания не было хорошего способа определить границы ресурсов в этой модели. Несколько приложений, когда развернуты на одном сервере, будут мешать друг другу, из-за отсутствия изоляции. Это принудительное развертывание приложений на выделенных серверах, которые оказались дорогим усилением, получающим использование ресурсов самой большой неэффективностью.
В те дни компании должны были поддерживать свои собственные серверные комнаты (многие еще) и имеют дело с предварительными условиями, такими как кондиционер, бесперебойная мощность и подключение к Интернету. Даже с такими высокими капитальными и эксплуатационными расходами они были ограничены в их способности масштабироваться по мере увеличения спроса. Добавление дополнительной емкости для обработки повышенной нагрузки будет включать в себя установку новых физических серверов. » Пишите один раз и бегите повсюду «Был утопический сон, это были дни» работает на моей машине «.
1️⃣ виртуальные машины
Введите виртуализацию. Это решение представляет собой слой абстракции на вершине физических серверов, так что позволяет использовать несколько виртуальных машин на любом данном сервере. Он применяет уровень изоляции и безопасности, что позволяет улучшать использование ресурсов, масштабируемость и снижение затрат.
Это позволяет нам запустить несколько приложений, каждый из которых находится выделенная виртуальная машина, обеспечивающая полную изоляцию. Если кто-то снизится, он не мешает другому. Кроме того, мы можем указать бюджеты ресурсов для каждого. Например, выделите 40% физических серверов ресурсов на VM1 и 60% до VM2.
Так что это адресует проблемы изоляции и использование ресурсов, но как насчет масштабирования с увеличенной нагрузкой? Спиннинг VM — это путь быстрее, чем добавление физического сервера. Однако масштабирование виртуальных машин все еще связано с имеющейся аппаратной емкостью.
Именно здесь публичные поставщики облаков приходят на картину. Они оптимизируют логистику покупки, поддержания, эксплуатации и масштабирования серверов по сравнению с арендой платы. Это означает, что организации не должны планировать потенциал заранее. Это приводит к столичному затрату на покупку сервера и операционные затраты на поддержание его значительно.
2️⃣ контейнеры
Если мы уже обратились к проблеме изоляции, использование ресурсов и масштабирования с виртуальными машинами, то почему мы даже говорим о контейнерах? Контейнеры принимают это на выемку. Вы можете думать о них как мини-виртуальные машины, которые вместо упаковки полноценной операционной системы, старайтесь использовать базовую организацию для большинства вещей. Виртуализация на основе контейнеров гарантирует более высокую плотность применения и максимальное использование ресурсов сервера.
Важным различием между виртуальными машинами и контейнерами является то, что VM виртуализирует базовое оборудование, тогда как контейнер виртуализирует базовую операционную систему. Оба имеют свои случаи использования, на самом деле, многие развертывания контейнеров используют VM в качестве своей операционной системы Host, а не находящиеся непосредственно на голом металле.
Появление докера двигателя ускорило принятие этой технологии. Сейчас он стал стандартом Defacto для создания и совместного использования контейнерных приложений — от рабочего стола к облаку. Сдвиг в сторону микросервисов как превосходный подход к разработке приложений является еще одним важным фактором, подпитывающим рост контейнера.
🔓 демистифицирующая оркестровка контейнера
В то время как контейнеры сами по себе чрезвычайно полезны, они могут стать совершенно сложными для развертывания, управления и масштабирования на нескольких хостах в разных средах. Контейнерное оркестография — это другое модное слово для оптимизации этого процесса.
На сегодняшний день существует несколько открытых источников и запатентованных решений для управления там контейнерами.
Пейзаж с открытым исходным кодом
Если мы посмотрим на ландшафт с открытым исходным кодом, некоторые заметные варианты включают
- Кубернеты
- Докер рой
- Апач марафон на мезо
- Hashicorp Nomad.
- Titus по Netflix.
Проприетарный пейзаж
С другой стороны, если мы посмотрим на ландшафт опорещения, большинство из них преобладает крупные общедоступные облачные поставщики. Все они придумали свое домашнее решение для управления контейнерами. Некоторые из заметных упоминаний относятся:
Amazon Web Services (AWS)
- Эластичный бобовый
- Упругая контейнерная служба (ECS)
- Фаршировать
Google Cloud Platform (GCP)
- Облачный пробег
- Вычислить двигатель
Microsoft Azure.
- Экземпляры контейнеров
- Веб-приложения для контейнеров
Золотой стандарт
Подобно тому, как Docker стал де-факто для контейнеразации, отрасль обнаружила Kubernetes, чтобы управлять ландшафтом оркестрации контейнера. Вот почему большинство крупных облачных провайдеров начали предлагать управляемое обслуживание Kubernetes. Мы узнаем больше о них позже в разделе экосистема.
☸️. Что именно kubernetes?
Kubernetes — это программное обеспечение с открытым исходным кодом, который стал стандартом Defacto для организовательных контейнерных нагрузок в частных, общественных и гибридных облачных средах.
Изначально он был разработан инженерами в Google, кто дистиллированные годы опыта При запуске рабочих нагрузочных нагрузок в масштабе в Кубейнет. Он был открыт в 2014 году и с тех пор был сохранен CNCF (Фонд облачного нативного вычисления). Это часто сокращено как K8s, который является Номерность (Начиная с буквы «K» и заканчивая «S» с 8 другими персонажами между ними).
Управление контейнерами в масштабе обычно называют довольно сложными, почему это так? Запуск одного контейнера Docker на вашем ноутбуке может показаться тривиальным (мы увидим это в примере ниже), но выполняем это для большого количества контейнеров в нескольких хостах в автоматизированном моделе, обеспечивающем нулевое время простоя не так тривиально.
Давайте возьмем пример адресной платформы Netflix, подобной Netflix, состоящей из 100+ микроэвиксов, приводящих к 5000+ контейнерам, работающим на 100+ VMS различных размеров. Разные команды несут ответственность за разные микросервисы. Они следуют Непрерывная интеграция и непрерывная доставка (CI/CD) управляемый рабочий процесс и нажмите на производство несколько раз в день. Ожидание на рабочих нагрузках на производстве — всегда доступно, масштабировать вверх и вниз, если автоматически уменьшается, если потребуется изменения, и восстановление от сбоев при встречении.
В таких ситуациях, утилита инструментов оркестрации контейнеров действительно сияет. Инструменты, такие как Kubernetes, позволяют вам абстрагировать базовый кластер виртуальных или физических машин в один унифицированный Blob ресурсов. Как правило, они выставляют API, используя, с помощью которых вы можете указать, сколько контейнеров вы хотели бы развернуть для данного приложения, и как они должны вести себя под повышенной нагрузкой. API-первая природа этих инструментов позволяет автоматизировать процессы развертывания внутри вашего трубопровода CI, предоставляя команды возможность быстро повторять. Возможность управлять этим видом сложности в упорядоченной способности является одной из главных причин, почему инструменты, такие как Кубернаны, приобрели такую популярность.
Архитектура Куберанес
Чтобы понять взгляд Куберателя о мире, нам нужно сначала ознакомиться с архитектурой кластера. Cubernetes Cluster — это группа физических или виртуальных машин, которые разделены на два компонента высокого уровня, контрольную плоскость и рабочие узлы. Это нормально, если некоторые терминологии, упомянутые ниже, еще не имейте большого смысла.
Управляющий самолет — действует как мозг для всего кластера. В этом он несет ответственность за принятие инструкций от пользователей, здоровья, проверка всех серверов, решая о том, как наилучшим образом расписание рабочих нагрузок и оргастративную связь между компонентами. Усознания плоскости управления включают в себя:
- Kube-Apisiserver — Отвечает за разоблачение API Kubernetes. Другими словами, это ворота в Кубебени
- etcd — Распределенный, надежный магазин ключа-значений, который используется в качестве хранилища для всех данных кластера
- Kube-планировщик — Ответственный за выбор узел рабочего для вновь созданных стручков (также известный как планирование)
- Kube-Controller-Manager — Ответственный за выполнение процессов контроллера, как узел, репликация, конечные точки и т. Д. Эти контроллеры начнут иметь больше смысла после обсуждения K8S объекты
- Облачный контроллер-менеджер — Держит облачную, специфичную логику управления
Рабочие узлы — Это машины, ответственные за прием инструкций от плоскости управления и работают на контейнерных рабочих нагрузках. Узел имеет следующие подтеалы:
- Кублет — агент, который гарантирует, что все контейнеры работают в любом данном POD. Мы доберемся до того, что это значит немного.
- Kube-Proxy — сетевой прокси, который используется для реализации концепции обслуживания. Мы доберемся до того, что это значит немного.
- Контейнерное время выполнения — Это программное обеспечение, отвечающее за управление контейнерами. Kubernetes поддерживает Docker, Containerd, RKT, чтобы назвать несколько.
Ключевой вынос здесь состоит в том, что плоскость управления является мозгом, ответственным за прием инструкций пользователя и выяснение наилучшего способа выполнения их. Принимая во внимание, что рабочие узлы — это машины, ответственные за подвичные инструкции из плоскости управления и работают контейнерные рабочие нагрузки.
Кубернаные предметы
Теперь, когда у нас есть некоторые ноу-хау kubernetes Architection, следующая веха в нашем путешествии — это понимание объектной модели Kubernetes. Kubernetes имеет несколько абстракций, которые составляют строительные блоки любой контейнерной рабочей нагрузки.
Мы отправимся на несколько различных типов объектов, доступных в Kubernetes, которые вы с большей вероятностью взаимодействуете с:
- Стручок — Это самая маленькая развертываемая единица вычислений в иерархии Кубера. Он может содержать один или несколько тесно связанных контейнеров, совместную среду, объемы и пространство IP. Как правило, он обескуражен для пользователей, чтобы пользователи напрямую управлять струями, вместо этого Kubernetes предлагает объекты более высокого уровня (развертывание, состояние, состояние и Daemonset) для инкапсуляции этого управления.
- Развертывание — Объект высокого уровня, предназначенный для облегчения управления жизненным циклом реплицированных стручков. Пользователи описывают желаемое состояние в объекте развертывания, а контроллер развертывания изменяет фактическое состояние для соответствия желаемому состоянию. Как правило, это пользователи объекта взаимодействуют с большинством. Лучше всего подходит для приложений без гражданства.
- Установка штата — Вы можете подумать об этом как об этом как специализированное развертывание, наиболее подходящее для заложенных приложений, таких как реляционная база данных. Они предлагают заказа и уникальность гарантий.
- Набор демона — Вы можете думать об этом как об этом как специализированное развертывание, когда вы хотите, чтобы ваши стручки были на каждом узле (или подмножестве). Лучше всего подходит для служб поддержки кластера, таких как агрегация журнала, безопасность и т. Д.
- Секретная и конфигурация карта — Эти объекты позволяют пользователям хранить конфиденциальную информацию и конфигурацию соответственно. Затем они могут быть подвержены определенным приложениям, что позволяет для более оптимизации конфигурации и управления секретами
- Сервис — Этот объект группирует набор стручков вместе и делает их доступными через DNS в кластере. Различные типы услуг включают NodePort, Clusterip и LoadBalancer.
- Вход — Объект входа позволяет внешнему доступу к службе в кластере, используя IP-адрес или какой-то URL. Кроме того, он может обеспечить конхождение SSL и балансировку нагрузки
- Пространство имен — Этот объект используется для логически групповых ресурсов внутри кластера
Примечание. Существуют другие объекты, такие как контроллер репликации, набор реплики, задание, задание CRON и т. Д., Что мы сознательно пропущены для простоты.
⚽️ Показать мне пример
Теперь, когда мы коснулись некоторых из наиболее часто используемых объектов Kubernetes, которые действуют как строительные блоки контейнерных рабочих нагрузок, давайте поставить его на работу. Для этого примера мы сделаем следующее:
- Настройка предупреждений, таких как Docker, Kubernetes & Kubectl
- Создайте очень простое приложение Hello World Node
- Контейнеризировать его, используя Docker и подтолкнуть его к публичному рееструке
- Используйте некоторые из вышеупомянутых объектов Kubernetes, чтобы объявить нашу контейнерную спецификацию рабочей нагрузки
0️⃣ Настройка
В этом руководстве предполагается, что вы находитесь на MacOS, установленные и запущены Docker Desktop. Он поставляется со стандартным экземпляром Kubernetes, который является кластерным узлом, отличный выбор в наши дни, чтобы запустить Kubernetes локально. Кроме того, вы также должны установить Kubectl. Это инструмент командной строки, который позволяет нам запустить команды против кластеров Kubernetes.
Самый простой способ встать и работать на Mac — использовать менеджер на домобеременном пакете, как так:
# Install docker brew cask install docker # Install kubectl brew install kubectl
Инструкции по настройке и исходный код для этого упражнения можно найти здесь Отказ
1️⃣ Образец приложения Hello World
Здесь у нас очень простое приложение Hello World, написанное в Nodejs. Он создает HTTP-сервер, слушает порта 3000 и отвечает на «Hello World».
const http = require("http"); const hostname = "0.0.0.0"; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader("Content-Type", "text/plain"); res.end("Hello World"); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
2️⃣. Контейнеризация приложения образца
Чтобы доблокировать наше приложение, нам нужно будет создать докерфиль. Он описывает, как собрать изображение. Вот как выглядит наш Докерефил:
# Use node alpine as base image for small image size FROM node:12-alpine # Create app directory WORKDIR /usr/src/app # Install app dependencies COPY package*.json ./ RUN npm install # Bundle app source COPY . . # Expose port EXPOSE 3000 # Launch container with this command CMD [ "node", "app.js" ]
Давайте использовать Docker CLI для создания и проверки изображения с помощью вышеупомянутого:
# Build docker image docker build -t sarmadsaleem/scout-apm:node-app . # Run container based on docker image docker run -p 3000:3000 -it --rm sarmadsaleem/scout-apm:node-app # Verify functionality curl http://localhost:3000
Теперь, когда мы проверили, наш контейнер отлично работает на месте, давайте нажимаем на этот документ Docker в публичный реестр. Для этого примера мы будем использовать публичный репозиторий на Docker Hub, чтобы подтолкнуть изображение докера.
# Docker hub login docker login --username sarmadsaleem # Push image to Docker Hub repository docker push sarmadsaleem/scout-apm:node-app
На данный момент мы упаковали наше приложение узла в контейнере докера и сделали его публикой в виде изображения. Любой может вытащить его из нашего публичного хранилища и никуда беги.
3️⃣ Определите спецификацию рабочей нагрузки с использованием объектов Kubernetes
С нашим приложенным приложением приложении готово, единственное, что осталось сделать, это объявить наше желаемое состояние рабочей нагрузки с использованием объектов Kubernetes. Мы будем иметь дело с пространством имен, развертывание и обслуживание в этом примере.
Как правило, Kubernetes Mainests объявляются в файлах YAML, которые описывают желаемое состояние. Затем он передается в API Kubernetes, используя kubectl.
apiVersion: v1 kind: Namespace metadata: name: scout-apm --- apiVersion: apps/v1 kind: Deployment metadata: name: node-app-deployment namespace: scout-apm spec: selector: matchLabels: app: scout-apm-node-app replicas: 3 template: metadata: labels: app: scout-apm-node-app spec: containers: - name: node-app image: docker.io/sarmadsaleem/scout-apm:node-app resources: limits: memory: "256Mi" cpu: "500m" imagePullPolicy: Always ports: - name: http containerPort: 3000 --- apiVersion: v1 kind: Service metadata: name: node-app-service namespace: scout-apm labels: app: scout-apm-node-app spec: selector: app: scout-apm-node-app type: NodePort ports: - protocol: TCP port: 3000 targetPort: 3000
Это нормально, если некоторые вещи в этом манифесте еще не имеют смысла. Ключевым выносным положением является то, что мы объявили спецификацию для нашей контейнерной рабочей нагрузки с использованием объектов Kubernetes. Объект пространства имен — это просто обертка для группировки вещей вместе. Объект развертывания делает тяжелый съемку создания стручков (которые удерживают контейнеры), поддерживая указанное количество реплик, и управлять их жизненным циклом. Объект сервиса Оптимизирует доступ к сети доступа к всем стручкам.
Теперь, когда у нас есть готовые, давайте выберем правильный контекст для KUBECTL и применить манифест:
# Switch kube context kubectl config use-context docker-desktop # Apply kube manifests kubectl apply -f path/to/app.yaml
Это было быстро, что только что произошло? Кубернаны приняли наших объявленных проявлений и пытались его выполнить. При этом он создал пространство имен, кучу стручков, набор реплики, развертывание и сервис. Мы должны быть в состоянии проверить все они, делая это:
# Get state of kube objects kubectl get pod,replicaset,deployment,service -n scout-apm
Это означает, что наше приложение работает? Да! Мы должны быть в состоянии достичь приложения нашего узла, посетив следующую:
# Get service port kubectl get service -n scout-apm # Verify functionality curl http://localhost:# Let's clean up after ourselves kubectl delete -f path/to/app.yaml
В более готовой к создании продукции вам, вероятно, придется иметь дело с соображениями, такими как оптимизация ваших изображений Docker, автоматизация развертываний, создание проверки здоровья, обеспечению кластера, управление входящим трафиком на SSL, инструментируя ваши приложения для наблюдательности и т. Д. Целью этого простых упражнений было прыгать от теории на практическую игровую площадку, где мы можем видеть Docker в действии, научиться взаимодействовать с Kubernetes и развернуть рабочую нагрузку.
🐎 Основные характеристики
Давайте прикоснемся к некоторым из основных функций Kubernetes:
- Самовосстановление — Один из самых больших точек продажи Kubernetes состоит в том, что он обеспечивает возможности самовосстановления, что делает ваши приложения более надежными и устойчивыми.
- Горизонтальное масштабирование и балансировка нагрузки — Kubernetes рекламирует себя, чтобы быть планеты. В этом он предоставляет несколько способов масштабирования приложений вверх и вниз. Эти горизонтальные возможности масштабирования растягивают из контейнеров до базовых узлов.
- Автоматические разъединения и откаты — Это обеспечивает возможность постепенно развертывать изменения при мониторинге здоровья приложений. Если что-то пойдет не так, изменения автоматически возвращаются на последнюю рабочую версию.
- Открытие услуг — Оптимизирует механизм обнаружения сервиса, предоставив подмышению их IP и консолидируя все эти IPS за обслуживанием, так что единственное имя DNS можно использовать для достижения всех стручек, и нагрузка может быть сбалансирована на них.
- Управление секретом и конфигурацией — в соответствии с Двенадцать факторов приложение Kubernetes Kubernetes предоставляет инструменты для экстекции секретов и конфигураций. Это означает, что чувствительная информация и конфигурация могут быть обновлены без восстановления вашего изображения и риск встраивания секретов в изображениях нейтрализуется.
- Орчестровка хранения — Предоставляет способы монтирования систем хранения, такие как локальное хранение или что-то из общедоступного поставщика облака. Это монтируемое хранение затем доступно для рабочих нагрузок через единую API.
- Пакетное исполнение — В дополнение к долгоживущим нагрузкам, он также предоставляет способы управления краткосрочными процессорами пакетных нагрузок
🔄 Kubernetes Ecosystem.
В последние несколько лет экосистема Куберанес выросла экспоненциально. Популярность Kubernetes привела к большему принятию, таким образом, вдохновляющим инновациями в разных вертикалях, таких как (но не ограничена) следующее:
- Кластерное обеспечение — Управляемая службами Kubernetes, как EKS, GKE, и AKS, довольно последние дополнения к ландшафту. Большинство из этих платформ предоставляют интерфейсы API, CLI и GUI для обеспечения кластеров. До этого предоставление нового кластера и поддержания вашей плоскости управления, используемая для включения нетривиальных усилий. Некоторые из популярных инструментов для предоставления и кластеров Bootstrap включают КОС, KUBEALM, KUBESPRAY и RANCHER.
- Управляемый управляющий самолет — Как мы уже узнали, в наши дни большинство облачных провайдеров предлагают управляемые кубернаны. Что значит, что провайдер отвечает за управление и поддержание кластера. Это уменьшает обслуживание и управление накладным расходом. Однако это очень конкретно, в некоторых случаях, в некоторых случаях вы хотели бы самостоятельно управлять этим, чтобы иметь лучшую гибкость. Некоторые из сумасшедших товаров Kubernetes включают EKS, GKE и AKS.
- Кластерное управление — Наиболее распространенный способ взаимодействия и управления кластерами все еще является Kubectl, однако этот вертикаль развивается на быстрых темпах. Хелм появился как kubernetes Goto Package Manager, подумайте об этом как на доморье для вашего кластера. Чтобы оптимизировать управление шаблонами YAML, Kustomize ведет заряд и уже встроен с kubectl.
- Управление секретами — Встроенные секреты Kubernetes Base64 кодированы, не зашифрованы. Компании находятся в наличии встроенные функциональные возможности довольно быстро и обратитесь к более сложным решениям, такими как герметичные секреты, хранилище и облачные секретные магазины (менеджер секретов AWS, Cloud KMS, Azure Key и т. Д.)
- Мониторинг, регистрация и отслеживание — Kubernetes предоставляет некоторые основные функции вокруг мониторинга, регистрации и отслеживания, но, как только вы попадаете в эксплуатацию нескольких микросервисов, эти функции могут упасть коротко. Общий мониторинг стека в отрасли сегодня — Прометей, Alertmanager & Grafana. Когда дело доходит до агрегации в журнале, лося (эластичности, логистаст, кибана) и EFK (Elasticsearch, Flyentd, Kibana), приобрели популярность. Наконец для распределенного трассировки, Jaeger и Zipkin — это два инструмента с открытым исходным кодом, которые, кажется, имеют высокую скорость усыновления.
- Инструментарий разработки — Окето, Наклон и сад — это некоторые из знаменитых инструментов разработки, которые помогают оптимизировать рабочий процесс разработки при работе с несколькими микросимами в облачном контексте.
- Инфраструктура как код — Инфраструктура как код (IAC) — это управление инфраструктурой в описательной модели. Инструменты, такие как Terraform и Pulumi, становятся популярными вариантами и имеют поддержку для обеспечения ресурсов Kubernetes, используя код. Существует несколько преимуществ этой стратегии включают в себя контролируемую версию инфраструктуру, слышимость, статический анализ и автоматизацию для названия нескольких.
- Управление трафиком — Как правило, Kubernetes использует контроллеры входа для выставления услуг к внешнему миру. Это где может произойти окончание SSL. Некоторые из популярных контроллеров входа включают Nginx, AWS Alb Ingress Controller, ISTIO, KONG и TRAEFIK. Кроме того, новые конструкции, такие как API Gateway & Service Mesh, были введены в экосистему в последнее время, и граница между тем, как можно управлять проникновением трафика (к северу на юге), а внутренний трафик (восток на запад) стал всё размытым.
❓ Общие вопросы
Давайте ответим на некоторые общие вопросы и проясните некоторые заблуждения вокруг Куберанес в этом разделе.
Кюбернаны бесплатно?
Версия с открытым исходным кобелем сама Kubernetes может бесплатно скачать, строить, расширять и использовать для всех, поэтому нет расходов, связанных с самим программным обеспечением. Как правило, организации проводят свои кластеры Kubernetes на публичных, частных, гибридных или многоуровневых условиях, в этих случаях они должны платить за основные ресурсы.
Кто создал Кубернеты?
Kubernetes возникла в Google и дистиллированным годам опыта работы в рабочих нагрузках на производстве в масштабе. Он был основан Джо Беду, Бренэндом Бернс, Крейг Маклакки, которые были быстро присоединились к другим инженерам Google в своих усилиях. Позже было пожертвовано на основе нативных вычислений Comput Computing (CNCF) и теперь поддерживается основой вместе с сообществом с открытым исходным кодом по лицензии Apache.
В чем разница между Docker и Kubernetes?
Docker — это контейнерное время выполнения, предназначенное для запуска на одном узле, в то время как Kubernetes — это инструмент для оркестрации контейнера, предназначенный для пробега в кластере узлов. Они не противоположные технологии. Они дополняют друг друга. Мы подробно рассмотрели эту тему в одном из наших более ранних сообщений блога здесь Отказ
Как вы обновляете Kubernetes?
Обновление версии Kubernetes — это обычная практика, чтобы не отставать от новейших патчей безопасности, новые функции и исправления ошибок. Этот процесс обычно продиктован инструментом, который вы использовали для обеспечения кластера. Если это управляемая плоскость управления, облачный провайдер обнажает API для запуска обновления. Если это самоуправляемая управляющая плоскость, инструменты нагрузки, такие как KOP и KUBEALM, упрощают этот рабочий процесс.
Kubernetes Лучший способ управлять контейнерами в производстве сегодня?
Это может быть противоречивым. Kubernetes, возможно, является наиболее особенным комплектным инструментом контейнерного оркесторания с оживленным сообществом и жужжанием экосистемы. Это лучший способ управлять контейнерами в производстве сегодня? Это зависит от вашего использования. Возможно, в некоторых случаях вы можете получить, используя решение PAAS, как Heroku. В качестве альтернативы, вы сможете использовать контейнерные услуги New-Age Conserless, такие как Google Cloud Run или AWS Fargate. В других случаях, когда вы хотите полного контроля и гибкости по поводу ваших рабочих нагрузок, Kubernetes может представлять собой передний бегун среди инструментов оркестрации контейнеров.
Оригинал: «https://dev.to/sarmadsaleem/introductory-guide-what-is-kubernetes-bki»