Как представить веб-приложение HR как услугу в кластере

[Статья в блоге]

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

Метод 1: Служба Kubernetes
Если вы используете Kubernetes для управления своим кластером, вы можете представить свое веб-приложение для отдела кадров как службу, используя ресурс службы Kubernetes. Это позволяет вам определить желаемый порт и сделать приложение доступным внутри кластера. Вот пример определения службы Kubernetes, который предоставляет веб-приложению отдела кадров порт 30082:

apiVersion: v1
kind: Service
metadata:
  name: hr-web-app-service
spec:
  selector:
    app: hr-web-app
  ports:
    - protocol: TCP
      port: 30082
      targetPort: 80

Метод 2: Ingress Controller
Ingress Controller — это еще один способ представить ваше веб-приложение HR как услугу. Он действует как обратный прокси-сервер и позволяет определять правила маршрутизации для входящего трафика. Вот пример ресурса Ingress, который предоставляет веб-приложение отдела кадров через порт 30082:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: hr-web-app-ingress
spec:
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: hr-web-app-service
                port:
                  number: 80

Метод 3: служба NodePort
Если вы хотите напрямую предоставить доступ к веб-приложению отдела кадров через определенный порт на узлах кластера, вы можете использовать службу NodePort. Это полезно, когда вам нужен доступ к веб-приложению отдела кадров из-за пределов кластера. Вот пример определения службы NodePort, которая предоставляет веб-приложению отдела кадров порт 30082:

apiVersion: v1
kind: Service
metadata:
  name: hr-web-app-service
spec:
  type: NodePort
  selector:
    app: hr-web-app
  ports:
    - protocol: TCP
      port: 30082
      targetPort: 80

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