Docker и Kubernetes во внешнем интерфейсе

Docker Kubernetes
Docker и Kubernetes во внешнем интерфейсе

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

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

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

В этой статье мы рассмотрим некоторый связанный контент от Docker до Kubernetes и, наконец, взглянем на преимущества и новые способы использования Kubernetes в области внешнего интерфейса.

Установка докера

В случае с Windows 10 Windows 7 будет использовать VirtualBox для установки Linux в качестве хоста Docker. Windows 10 Pro будет использовать Hyper-V для установки Linux в качестве хоста Docker.

Основы докера

Место хранения Docker по умолчанию:/var/lib/docker, все образы, контейнеры, тома будут здесь, если вы используете несколько жёстких дисков или монтируете SSD не/, вам необходимо изменить путь (график) по умолчанию в подходящее место, файл конфигурации/etc/docker/daemon.json, например

{
  "bip": "192.168.0.1/16",
  "graph": "/mnt/ssd/0/docker"
}

Docker автоматически создаст сетевую карту docker0 в процессе установки и назначит ей ip. Указанный выше bip — это IP-адрес указанной сетевой карты docker0.Если он не указан, соответствующий IP-адрес будет автоматически выбран в соответствии с IP-адресом хоста при создании docker0.Однако из-за сложности сети, особенно в сети компьютерного зала легко найти конфликты выбора адреса, в этом случае вам нужно вручную указать bip в качестве соответствующего значения. Правила выбора ip Docker хорошо проанализированы в этой статье, вы можете обратиться кblog.CSDN.net/Longxing_12….

После установки и запуска можно пройтиdocker infoОзнакомьтесь с некоторой информацией о конфигурации для Docker.

Docker hello world

Первая тестовая команда Docker для проверки правильности установки проста.

docker run hello-world

Сначала он пошел бы на Docker Hub Hello-World загрузить это изображение, а затем запустить зеркально, после начала этой услуги называется Docker Containers. Будет реализовывать положения контейнера создавать программу въезда, выполнение программы после вывода некоторой информации в поток выходит в контейнер, закончит эту запись с завершением программы.

  • просмотреть все контейнеры
docker ps -a

Результат выглядит следующим образом:

cf9a6bc212f9        hello-world                     "/hello"                 28 hours ago        Exited (0) 3 min

Первый столбец — это идентификатор контейнера, который требуется для многих операций с контейнерами, таких как следующие распространенные операции.

docker rm container_id
docker stop container_id
docker start container_id
docker describe container_id

вотdocker start container_id, Запустите контейнер, указав, что даже после выхода из контейнера его ресурсы все еще существуют, и вы все еще можете использоватьdocker startПерезапустите этот контейнер. Чтобы контейнер автоматически удалялся после выхода, вы можетеdocker runуказано, когда--rmпараметр.

Когда мы запустим эту команду, Docker загрузит изображение hello-world и кэширует его локально, поэтому при следующем запуске этой команды нам не нужно будет загружать его из источника.

  • Посмотреть локальное зеркало
docker images

Запустить Nginx

Nginx также популярен в мире Docker как широко используемый веб-сервер.Он часто используется для запуска сетевой службы для проверки конфигурации сети.Используйте следующую команду для запуска контейнера Nginxdocker run --rm -p 80:80 nginx.

доступlocalhost:80Вы можете видеть, что служба Nginx запущена, а вывод журнала службы Nginx можно увидеть в консоли.

Поскольку сеть внутри Docker изолирована от внешнего мира, нам нужно вручную указать перенаправление портов.-p 80:80Чтобы явно перенаправить 80 хоста (спереди) на порт 80 контейнера, раскрытие порта является одним из наиболее часто используемых способов предоставления услуг. Существуют также некоторые другие типы служб, такие как обработка журналов, сбор данных, для обслуживания которых требуется общий том данных, и все они должны быть указаны явно при запуске контейнера.

Nginx服务

Некоторые общие параметры запуска:

  • -pсобственный порт: порт контейнера сопоставляет локальный порт с контейнером
  • -PСопоставьте порты контейнера с собственными случайными портами
  • -vЛокальный путь или имя тома: путь к контейнеру Подключите локальный путь или том данных к указанному расположению контейнера.
  • -itЗапустить как интерактивную команду
  • -dзапустить контейнер в фоновом режиме
  • --rmОчистить ресурсы после выхода из контейнера

Как работает Докер

Основополагающий основной принцип Docker заключается в использовании функций пространства имен и контрольных групп ядра Linux, где пространства имен используются для изоляции ресурсов, а контрольные группы используются для квот ресурсов.Всего в ядре Linux существует 6 пространств имен, которые соответствуют последующий.

Namespace функция системного вызова Содержание карантина
UTS CLONE_NEWUTS Хостинг и доменные имена
IPC CLONE_NEWIPC Семафоры, очереди сообщений и разделяемая память
PID CLONE_NEWPID номер процесса
Network CLONE_NEWNET Сетевые устройства, сетевые стеки, порты и т. д.
Mount CLONE_NEWNS точка монтирования (файловая система)
User CLONE_NEWUSER пользователи и группы пользователей

В системном вызове есть три функции, связанные с пространством имен:

  1. clone full7.org/Linux/полный страх…

Если я хочу, чтобы дочерний процесс имел независимый сетевой адрес, стек протоколов TCP/IP можно указать следующим образом.

 clone(cb, *stack , CLONE_NEWNET, 0)
  1. unshare full7.org/Linux/полный страх…

Переместите текущий процесс в новое пространство имен. Например, процесс, созданный с помощью fork или vfork, по умолчанию будет совместно использовать ресурсы родительского процесса и использовать unshare, чтобы отменить общий доступ к дочернему процессу от родительского.

  1. setns full7.org/Linux/полный страх…

Укажите пространство имен для указанного PID, обычно используемого для общих пространств имен.

Linux поддерживает изоляцию пространств имен в системных вызовах на уровне ядра.Назначая отдельное пространство имен процессу, чтобы изолировать его в различных измерениях ресурсов, каждый процесс может получить свое собственное имя хоста, IPC, PID, IP, корневую файловую систему, группа пользователей и другая информация такие же, как и в эксклюзивной системе, но хотя ресурсы изолированы, ядро ​​по-прежнему использует одно и то же, что является одной из причин, почему оно легче, чем традиционные виртуальные машины.

Кроме того, одной только изоляции ресурсов недостаточно.Чтобы обеспечить истинную изоляцию сбоев, не влияя друг на друга, также необходимо ограничивать ЦП, память, ГП и т. д., потому что, если в программе есть бесконечный цикл или утечка памяти, другие программы не сможет запустить. Квота ресурсов выполняется с помощью функции ядра cgroup.Студенты, которые хотят узнать подробности, могут обратиться к:блог woo woo woo.cn on.com/Sammy pomegranate/afraid/…. (Кроме того, настоятельно рекомендуется запускать контейнеры в ядре Linux 4.9 или более поздней версии. В Linux 3.x существуют известные проблемы с нестабильностью ядра, приводящие к перезапуску хоста.)

Докер-сеть

Чтобы контейнер мог предоставлять услуги, ему необходимо открыть собственную сеть. Docker изолирован от среды на хост-компьютере. Чтобы предоставить службы, вам нужно отобразить и сообщить Docker, какие порты разрешают внешний доступ.docker run -p 80:80 nginxВ это время порт 80 внутри контейнера открыт для порта хост-компьютера 80. Конкретная переадресация портов будет подробно проанализирована ниже. Сетевая часть контейнера является наиболее важной частью контейнера, а также краеугольным камнем построения большого кластера.Когда мы развертываем приложения Docker, нам необходимо иметь базовое представление о сети.

Docker предоставляет четыре сетевых режима, а именноHost,Container,None,Bridgeиспользовать--netуказать

Режим хоста:

docker run --net host nginx

Режим хоста не будет создавать сетевое пространство имен только для контейнера.Сетевая карта хоста используется непосредственно внутри контейнера.В это время IP-адрес, полученный в контейнере, является IP-адресом хоста, а привязка порта напрямую привязана к сети хоста. Преимущество в том, что трансляция NAT не требуется во время передачи по сети, более эффективно и быстро.

Режим контейнера:

docker run --net container:xxx_containerid nginx

Поделитесь сетевым пространством имен с указанным контейнером, поделитесь конфигурацией сети, IP-адресом и портом, а контейнер с сетевым режимом Host не может быть использован совместно.

Нет режима:

docker run --net none busybox ifconfig

Контейнеры, указанные в режиме None, не будут выделять устройства NIC, только внутренниеloИнтернет.

None 网络

Режим моста

docekr run --net bridge busybox ifconfig

Bridge网络

Этот режим является режимом по умолчанию. При запуске контейнера ему будет назначено отдельное сетевое пространство имен. В то же время Docker создаст мост с именем docker0 на хосте во время установки/инициализации. Мост также действует как шлюз по умолчанию для контейнер.Сеть будет выделять ip внутри сетевого сегмента шлюза.

когда я выполняюdocker run -p 3000:80 nginx, Docker создаст на хосте следующее правило переадресации iptable.

iptables

Нижнее правило показывает, что когда порт 3000 сетевой карты хоста запрашивается извне, он будет подвергаться трансляции адреса назначения (DNAT), а адрес назначения изменяется на172.18.0.2, порт изменен на 80. После изменения адреса назначения трафик будет перенаправлен с локальной сетевой карты по умолчанию в соответствующий контейнер через docker0, поэтому при внешнем запросе на порт 3000 хоста трафик будет быть перенаправлены во внутреннюю службу контейнеров внутри, чтобы реализовать выставленную службу.

DNAT

Точно так же внутренний доступ Docker к внешнему интерфейсу также будет выполнять трансляцию исходного адреса (SNAT), а внутренний запрос контейнераgoogle.com, сервер получит ip сетевой карты хоста.

SNAT

Режим моста менее эффективен, чем режим хоста, из-за дополнительного уровня трансляции NAT, но он может хорошо изолировать внешнюю сетевую среду, позволяя контейнеру иметь эксклюзивный IP-адрес и полное пространство портов.

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

Flannel

Сетевое решение с несколькими хостами включает в себя спецификацию CNI, запущенную CNCF, и решение CNM, которое поставляется с Docker, но спецификация CNI в настоящее время используется наиболее часто, и одной из реализаций является Flannel.

Flannel использует технологию вложенных сообщений для решения проблем взаимодействия в сети с несколькими хостами, пакетирования, указания исходного пакета, указания IP-адреса хоста пакета, и пакет достигает хоста, а затем распаковывает соответствующий контейнер. На следующем рисунке показано, что Flannel использует более высокий протокол UDP для передачи пакетов между хостами.

flannel

В настоящее время существует три широко используемых основных межхостовых взаимодействия, каждое из которых имеет свои преимущества и недостатки, в зависимости от выбранной сцены:

  • overlay, то есть указанное выше вложение сообщений.
  • hostgwПереадресация реализуется путем модификации таблицы маршрутизации хоста, которая не требует распаковки и пакетирования, что является более эффективным, но также имеет множество ограничений, и подходит только для хостов в одной локальной сети.
  • реализовано с помощью программного обеспеченияBGP(протокол пограничного шлюза) для трансляции правил маршрутизации маршрутизаторам в сети. Как и hostgw, распаковка не требуется, но стоимость реализации выше.

С помощью CNI на этой основе можно построить кластер Kubernetes.

Введение в Кубернет

Действительно удобно использовать Docker для развертывания приложений одним щелчком мыши в небольших сценариях и достижения цели развертывания одним щелчком.Однако, когда несколько копий развернуты на сотнях хостов, необходимо управлять рабочим статусом так много хостов и статус службы. В случае сбоя службу необходимо перезапустить на другом хосте. Представьте себе, что ручной метод не является желательным решением. В настоящее время вам необходимо использовать многомерную оркестровку такой инструмент, как Kubernetes для управления. Kubernetes для краткости называют K8S. Проще говоря, K8S абстрагирует аппаратные ресурсы и абстрагирует N физических машин или облачных хостов в пул ресурсов. Планирование контейнеров передается K8S, чтобы заботиться о наших контейнерах, как мать. машина с достаточным объемом памяти, если память не соответствует требованиям, она найдет машину с достаточным объемом памяти для создания на ней соответствующего контейнера.Служба почему-то зависает, и K8S поможет нам автоматически мигрировать и перезагрузиться. Как разработчики, мы заботимся только о собственном коде, и работоспособность приложения гарантируется K8S.

Конкретный метод установки здесь не рассматривается.Если вы используете Windows или MacOS, вы можете напрямую использовать параметр Kubernetes в Docker Desktop, чтобы установить кластер с одним хостом одним щелчком мыши, или вы можете использоватьдобрый инструментМоделируйте мультикластерный K8S локально.

Базовой единицей планирования K8S является модуль, а модуль представляет собой один или несколько контейнеров. Цитата из книги

Причина, по которой контейнер не используется в качестве единицы планирования, заключается в том, что один контейнер не составляет концепцию службы; например, веб-приложение имеет внешний и внутренний пример, и необходимы NodeJS и Tomcat. чтобы сформировать полный сервис, поэтому необходимо развернуть два контейнера для реализации полного сервиса, хотя также возможно поместить их все в контейнер, это явно нарушает основную идею контейнера как процесса-- 《Битва с Service Mesh — Реализация Service Mesh с программными загрузками istio》

Отличия K8S от традиционных систем IaaS:

IaaS — это инфраструктура как услуга, так называемая инфраструктура как услуга.Если разработчик хочет запустить новое приложение, ему необходимо подать заявку на ряд ресурсов, таких как хост, ip, доменное имя и т. д., а затем войти на хост для создания необходимой среды и развертывания приложения в Интернете.Это не только неблагоприятно.Крупномасштабные операции также увеличивают вероятность ошибок.Эксплуатация и обслуживание или разработка часто выполняются автоматически путем самостоятельного написания сценариев.Это очень болезненно вручную изменять сценарии при обнаружении некоторых различий.

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

Чтобы понять основные концепции K8S, давайте развернем приложение Node SSR:

Инициализировать шаблон приложения

npm install create-next-app
npx create-next-app next-app
cd next-app

После создания проекта добавьте Dockerfile для сборки образа сервиса.

Dockerfile

FROM node:8.16.1-slim as build

COPY ./ /app

WORKDIR /app
RUN npm install
RUN npm run build
RUN rm -rf .git


FROM node:8.16.1-slim

COPY --from=build /app /

EXPOSE 3000
WORKDIR /app

CMD ["npm", "start"]

Этот Dockerfile оптимизирован в двух частях

  1. Узел Lite, использующий базовый образ, значительно уменьшает объем зеркала.
  2. Использование пошагового метода сборки может уменьшить количество слоев изображения и удалить временные файлы, чтобы уменьшить размер изображения.

построить образ

docker build  . --tag next-app

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

Deployment.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app-ingress
spec:
  rules:
  - host: next-app-server
    http:
      paths:
      - backend:
          serviceName: app-service
          servicePort: 80

---
kind: Service
apiVersion: v1
metadata:
  name: app-service
spec:
  selector:
    app: web
  ports:
  - port: 80
    targetPort: 3000

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: next-app
        name: next-app
          imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3000

Приведенный выше список сообщает K8S:

  • Сначала вам нужен контроллер развертывания, образnext-app, сервисный порт 3000, создайте мне две реплики.
  • Вам также необходимо создать Сервис, этот Сервис указывает на несколько копий, созданных контроллером реплики.next-app.
  • Подать заявку на вход Ingress с доменным именемnext-app-server, который прямо сейчас указывает на службу.

Отправьте это приложение в K8S.

kubectl apply -f ./Deployment.yaml

Затем вы можете увидеть развернутые модули.

sh-4.4$ kubectl get pod
NAME                              READY     STATUS    RESTARTS   AGE
app-deployment-594c48dbdb-4f4cg   1/1       Running   0          1m
app-deployment-594c48dbdb-snj54   1/1       Running   0          1m

Затем браузер открывает доменное имя, настроенное в Ingress, для доступа к соответствующему приложению (при условии, что доменное имя может достигать вашего узла кластера K8S).

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

  • Ingress

    Конфигурация балансировки нагрузки уровня L7 может указывать на разные сервисы в соответствии с разными доменными именами или путями. Ingress очень похож на Nginx. На самом деле одной реализацией Ingress является Nginx, поэтому Ingress можно использовать как Nginx, но нам не нужно модифицироваться вручнуюnginx.conf, и нет необходимости вручную перезапускать службу Nginx.

  • Service

    Абстракция для набора модулей, используемая для выбора модулей, предоставляющих один и тот же сервис. Поскольку модули нестабильны, часто происходит разрушение и реконструкция, а IP-адреса модулей часто меняются, для представления местоположения модулей требуется абстрактная служба ресурсов. Служба также является внутренним механизмом обнаружения служб K8S, который автоматически записывает имя службы во внутреннюю запись DNS.

  • Deployment

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

система публикации приложений

K8S отвечает только за оркестровку контейнеров.На самом деле, если приложение развернуто, требуется поддержка внешнего конвейера.Построение кода, статическая проверка и упаковка образа выполняются конвейером.

;

В настоящее время наиболее широко используемые издательские системы в Китае часто состоят из следующих сервисов: GitLab/GitHub, Jenkins, Sonar, Harbour.

Преимущества K8S в передней части

  1. Во-первых, интерфейсное приложение отличается от Java.Небольшой сервис NodeJS занимает всего около 40 МБ памяти, а это означает, что если у нас много приложений NodeJS, использование K8S сэкономит много аппаратных ресурсов.

  1. Используйте идею контейнеров для ненавязчивого логирования, сбора метрик производительности.

Поскольку контейнер — это процесс, мониторинг контейнера можно рассматривать как мониторинг нашего процесса NodeJS.В экосистеме K8S существует множество зрелых решений для мониторинга контейнеров, таких как Prometheus + Grafana, которые можно использовать для достижения ненавязчивого показатели производительности приложений.В сборник входят: Network IO/Disk IO/CPU/MEM.

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

  1. Уровень инфраструктуры интерфейсной микросервисной архитектуры.

В последние два года микросервисная архитектура становится все более популярным методом организации интерфейсной архитектуры.Микросервисная архитектура требует более гибкого и гибкого метода развертывания. Использование Docker позволяет абстрагировать наименьшую единицу обслуживания в сложной архитектуре, а K8S дает возможность автоматически поддерживать крупномасштабные кластеры. Можно сказать, что микросервисная архитектура естественным образом подходит для использования K8S.

K8S новый геймплей, распределение трафика

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

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

Используйте вышеNext.jsприложение для демонстрации сине-зеленого выпуска,Адрес склада

git clone https://github.com/Qquanwei/test-ab-deploy
cd test-ab-deploy
docker build . --tag next-app:stable
kubectl apply -f ./Deployment.yaml

здесь будетnext-app:stableОбраз развертывается в кластере, а модули помечаются.version: stableярлык.

После развертывания откройте дисплей следующим образом.

Далее мы разворачиваем тестовую ветку, которую будем строить какnext-app:test, и отметьте этот модуль при развертыванииversion: testТег.

git checkout test
docker build . --tag next-app:test
kubectl apply -f ./Deployment.yaml

На данный момент мы развернули две версии приложения, и все они готовы.

Но так как наша Службаversion=stable, поэтому все запросы не попадут в тестовую версию, но по-прежнему будут запрашивать стабильные службы.

Когда мы убедились, что служба тестовой версии доступна другими способами, например, настроив другую службу для тестирования (хорошо), мы можем переключить текущую службу на тестовое приложение с помощью следующей команды.

kubectl apply -f ./switch-to-test.yaml

После выполнения этой команды обновите страницу, чтобы увидеть следующее.

Функция сине-зеленой публикации легко реализуется путем переключения службы, и выполняется она в одно мгновение, потому что служба является относительно легковесным ресурсом в K8S, и она не будет такой же, как следующий Nginx, чтобы изменить конфигурацию на перезапустить службу и повлиять на всю онлайн-службу. Конечно, реальная производственная среда будет более строгой, чем демонстрация, и может быть специальная платформа и аудиторы для выполнения вторичной проверки каждой операции.

Для сине-зеленого метода выпуска в оттенках серого использование K8s может быть проще в реализации, давайте у нас будет больше способов проверить эту идею. Однако, если вы хотите добиться более продвинутой схемы распределения трафика (например, A/B-релиз), вам нужна сложная политика управления трафиком (аутентификация, аутентификация), нужно использовать сервисную сетку.

Istio — популярная в настоящее время инфраструктура сервисных сеток.По сравнению с K8S, который фокусируется на управлении запущенными контейнерами, Istio уделяет больше внимания передаче трафика сервисных сеток, состоящих из контейнеров.

Изображение ниже — официальный пример, снятый Istio.bookinfoТопология сервисов в микросервисах и некоторые метрики данных.

У использования Istio есть два явных преимущества:

  1. Istio может перехватывать цепочку вызовов между сервисами, не взламывая пользовательский код.
  2. Istio может управлять каждым подключением по отдельности.

Например, мы можем легко присвоить динамические веса версиям v1, v2, v3 разных версий приложения для проверки.

Можно не только распределять вес трафика, но также можно сформулировать некоторые схемы A/B, такие как запрос разных версий приложений в зависимости от того, совпадает ли URL-адрес, или различение пользователей в соответствии с файлами cookie в заголовке, чтобы запрашивать различные Приложения. Конечно, учитывая различные отраслевые сценарии, в Istio также будет много интересных геймплеев.

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

Суммировать

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

использованная литература

Эта статья была опубликована сКоманда внешнего интерфейса NetEase Cloud Music, Любое несанкционированное воспроизведение статьи запрещено. Мы всегда нанимаем, если вы готовы сменить работу и вам нравится облачная музыка, тоПрисоединяйтесь к нам!