Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Gestion de cluster sur PLCnext : exploiter Kubernetes pour l'automatisation industrielle

Standard dans l'IT depuis des années, Kubernetes n'a pas encore beaucoup impacté l'industrie. Souvent jugé trop complexe et inutile. La question : apporte-t-il des avantages ?

Une vision pour PLCnext à travers l'exemple de Kubernetes.

Kubernetes

Kubernetes est un orchestrateur (système de gestion, maître) qui utilise, entre autres, des conteneurs et forme un réseau via divers périphériques. Le système fournit les applications différemment.

Classiquement, les applications sont distribuées et maintenues sur des périphériques. On sait sur quel ordinateur l'application tourne. Pour la déplacer, une intervention humaine est nécessaire. Si un ordinateur tombe, toutes ses applications deviennent indisponibles.

Avec Kubernetes, le maître reçoit une description d'état de l'application et s'occupe du reste. Il garantit que l'état demandé est maintenu en permanence. On ne sait pas sur quel nœud l'application tourne actuellement, mais elle reste accessible.

Questions et réponses

Qu'est-ce qu'une description d'état ?

Comment installer le cluster ?

Comment mettre à jour les applications ?

Que se passe-t-il si un nœud tombe ?

Que se passe-t-il si le maître tombe ?

Certaines applications doivent tourner sur certains nœuds pour accéder au matériel.

Gestion de cluster sur PLCnext : exploiter Kubernetes pour l automatisation industrielle Gestion de cluster sur PLCnext : exploiter Kubernetes pour l automatisation industrielle

Exemple

Description d'état d'une application à trois conteneurs (frontend, backend, base de données).

Deployment : définit tous les réglages nécessaires pour les conteneurs.

Service : crée une interface vers l'application centralement dans le cluster. Interface toujours valide quel que soit le nœud hébergeant le deployment.

Ingress : lie l'interface au frontend via une entrée DNS. Frontend toujours accessible sur un domaine.
Proxy https://MyApp.MyDomain.de/ vers service frontend (port 80)
Proxy https://MyApp.MyDomain.de/api vers service backend (port 3000)

# 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 frontend 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

À consulter

Technologie industrielle

  1. L'emboutissage expliqué : types, procédés et applications
  2. Soudage par Friction : Procédé, Avantages et Applications
  3. Projection Thermique Expliquée : Types, Applications et Avantages
  4. Silicate de sodium : améliorer l'efficacité et la qualité dans la production de moulage
  5. Simplifier la configuration VLAN sur PLCnext Control avec commandes terminal Linux
  6. Accès distant gRPC sécurisé avec grpcurl sur appareils PLCnext
  7. Modèles PLCnext CLI : rationalisez votre développement C++
  8. Accéder en toute sécurité à un serveur web PLCnext avec IP DHCP
  9. Développer une application console PLCnext en C# : guide pour débutants