Открытие доступа к приложениям с помощью сервисов
Поймите роль сервисов в предоставлении стабильных сетевых конечных точек для Pods.
«Открытие доступа к приложениям с помощью сервисов» — бесплатный урок Kubernetes Basics на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kubernetes Basics, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kubernetes Basics содержит 4 уроков всего.
Поды: сегодня есть, завтра исчезли
В Kubernetes поды — это наименьшие развёртываемые единицы. Они предназначены для временной работы, поэтому Kubernetes может в любой момент создать, уничтожить или переместить их.
Такая гибкость отлично подходит для обеспечения устойчивости, но создаёт проблему: как другим приложениям надёжно находить эти постоянно меняющиеся поды и связываться с ними?
Проблема подвижной цели
Каждый под получает собственный IP-адрес. При перезапуске или масштабировании под часто получает новый IP-адрес. Прямое подключение к IP-адресу пода похоже на попытку попасть в движущуюся цель!
Представьте веб-приложение с несколькими подами. Если один под перезапустится, его IP-адрес изменится, из-за чего соединения с другими службами или пользователями будут разорваны.
Службы спешат на помощь!
Здесь на помощь приходят службы Kubernetes! Служба предоставляет стабильную фиксированную сетевую конечную точку для набора подов.
Представьте её как постоянный адрес приложения, даже если поды за ней постоянно меняют свои индивидуальные адреса.
Стабильный шлюз для подов
Служба выступает в роли уровня абстракции над группой подов. Она предоставляет им единый постоянный IP-адрес и имя DNS.
- Другие приложения используют стабильный IP-адрес или имя службы.
- Затем служба направляет трафик к работоспособным подам, которыми она управляет.
- Это избавляет клиентов от зависимости от IP-адресов отдельных подов.
Подключение служб к подам
Как служба узнаёт, к каким подам направлять трафик? Она использует метки и селекторы!
При определении службы Вы указываете selector. Любой под с соответствующими метками автоматически становится частью группы этой службы.
Благодаря такой динамической связи новые поды добавляются автоматически, а неработоспособные удаляются.
Направление сетевого трафика
Службы управляют потоком сетевого трафика. Они определяют порты, сопоставляя входящие запросы с правильными портами подов.
Основные понятия, связанные с портами:
port: порт, на котором сама служба принимает соединения.targetPort: порт пода, на который служба перенаправляет трафик.
Создание манифеста службы
Как и большинство ресурсов Kubernetes, службы определяются с помощью YAML-файлов. Рассмотрим базовую структуру:
apiVersion:v1kind:Servicemetadata: имя, меткиspec: содержит основное определение, включаяselectorиports.
Ваша первая служба: ClusterIP
Наиболее распространённый тип службы для внутреннего взаимодействия — ClusterIP. Он предоставляет доступ к службе по внутреннему IP-адресу внутри кластера.
Вот пример простого веб-приложения:
apiVersion: v1
kind: Service
metadata:
name: my-web-service
spec:
selector:
app: my-webapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPРазвёртывание службы
Получив YAML службы, Вы можете развернуть её в кластере с помощью kubectl, как и поды или Deployments.
Эта команда сообщает Kubernetes, что нужно создать службу на основе Вашего определения:
kubectl apply -f service.yamlИспользование новой службы
После развёртывания служба получает стабильные IP-адрес и имя DNS внутри кластера. Теперь другие поды могут обращаться к приложению по этому имени.
Например, другой под может подключиться к my-web-service:80, а служба направит трафик к правильным подам my-webapp.
Проверка знаний о службах
Вы узнали, как службы Kubernetes обеспечивают стабильный сетевой доступ к динамическим подам.
Какое из следующих утверждений лучше всего описывает основную роль службы Kubernetes?
Итоги: стабильные соединения
Отличная работа! В этом уроке мы рассмотрели службы Kubernetes.
- Поды непостоянны и имеют динамические IP-адреса.
- Службы предоставляют стабильные сетевые конечные точки для подов.
- Для поиска целевых подов они используют селекторы.
- Службы сопоставляют внешний
portс внутреннимtargetPort. - ClusterIP — распространённый тип для внутреннего взаимодействия.
Далее мы подробнее рассмотрим различные типы служб и варианты их использования!
Часто задаваемые вопросы
Урок «Открытие доступа к приложениям с помощью сервисов» бесплатный?
Да — полный текст урока «Открытие доступа к приложениям с помощью сервисов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kubernetes Basics, подпишись на CoddyKit PRO. Курс Kubernetes Basics содержит 4 уроков всего.
Чему я научусь в уроке «Открытие доступа к приложениям с помощью сервисов»?
Поймите роль сервисов в предоставлении стабильных сетевых конечных точек для Pods. Ты практикуешь Kubernetes Basics с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kubernetes Basics?
Предыдущий опыт не требуется. Kubernetes Basics на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Открытие доступа к приложениям с помощью сервисов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kubernetes Basics?
Да. Каждый урок Kubernetes Basics включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Открытие доступа к приложениям с помощью сервисов
- Типы сервисов: ClusterIP, NodePort, LoadBalancer
- Ingress для внешнего доступа
- DNS и обнаружение служб