Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Управление кластерами на PLCnext: Использование Kubernetes для промышленной автоматизации

Стандарт в IT уже годами, но в промышленности он еще не произвел большого воздействия. Часто такие технологии считаются слишком сложными и ненужными. Вопрос, который возникает: приносят ли они нам преимущества?

Видение для PLCnext на примере Kubernetes.

Kubernetes

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

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

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

Вопросы и ответы

Что описывает описание состояния

Как установить кластер

Как выполнять обновления приложений

Что происходит, если нода выходит из строя

Что происходит, если мастер выходит из строя

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

Управление кластерами на PLCnext: Использование Kubernetes для промышленной автоматизации Управление кластерами на PLCnext: Использование Kubernetes для промышленной автоматизации

Пример

Пример описания состояния приложения, состоящего из трех контейнеров (frontend, backend, database).

Deployment:

Service:

Ingress:

# Kind of the Deployment
kind: Deployment
apiVersion: apps/v1
metadata:
  name: MyApplicationName
  labels:
    app: MyApplication
    MyApplication: MyApplicationName
    namespace: default

## Container specs
  spec:
    containers:

## Container spec for Frontend
## Name for the Container
    - name: MyContainer-frontend

## Container Image to use
      image: MyApplicationImage_frontend

## Ports for the frontend, http
      ports:
      - containerPort: 80

## Container spec for Backend
    - name: MyContainerName-backend
      image: MyApplicationImage_backend
      ports:
      - containerPort: 3000

## Container spec for mongodb
    - name: MyContainerName-mongo
      image: mongo:3.4

## Startup commands for Mongo DB
      command:
      - "mongod"
      - "--bind_ip"
      - "0.0.0.0"
      ports:
      - containerPort: 27017
---
## Service declaration, expose Ports to the kubernetes api (only internal reachable)

apiVersion: v1
kind: Service
metadata:
  name: MyApplicationName
spec:
  ports:
  - name: frontend
    targetPort: 80
    port: 80
  - name: backend
    targetPort: 3000
    port: 3000
  selector:
    app: MyApplication
    task: MyApplicationName

---
## Ingress declaration, bind proxy to fronted and backend

apiVersion: networking.k8s.io/v1beta1
kind: Ingress

## Bind ingress to traefik service proxy

metadata:
  name: MyApplicationName
  annotations:
    kubernetes.io/ingress.class: traefik

## Ingress class for frontend, map dns ingress to service port 80
spec:
  rules:
  - host: MyApp.Mydomain.de
    http:
      paths:
      - path: /
        backend:
          serviceName: MyApplicationName
          servicePort: frontend

## Ingress class for backend, map dns ingress to service port 3000
  - host: MyApplicationName.MyDomain.de
    http:
      paths:
      - path: /api
        backend:
          serviceName: MyApplicationName
          servicePort: backend

Посмотрите

Промышленные технологии

  1. Штамповка: виды, процессы и применение в металлообработке
  2. Трение сварка: процесс, преимущества и применение
  3. Термическое напыление: Типы, применение и преимущества
  4. Жидкое стекло: повышение эффективности и качества в производстве литья
  5. Оптимизация настройки VLAN на PLCnext Control с командами Linux терминала
  6. Безопасный удаленный gRPC доступ с grpcurl на устройствах PLCnext
  7. PLCnext CLI Templates: Ускорение разработки на C++
  8. Безопасный доступ к веб-серверу PLCnext с IP по DHCP
  9. Разработка консольного приложения PLCnext на C#: Руководство для начинающих
  10. Мониторинг PLCnext в реальном времени с дашбордами Tableau