산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

PLCnext에서 클러스터 관리: Kubernetes로 산업 자동화 활용하기

IT 분야에서 수년간 표준이었지만, 산업 분야에서는 아직 큰 영향을 미치지 못했습니다. 종종 이러한 기술은 너무 복잡하고 불필요하다고 여겨집니다. 드는 질문은, 이들이 우리에게 이점을 가져다주는가입니다.

Kubernetes를 예로 들어 PLCnext에 대한 비전.

Kubernetes

Kubernetes는 컨테이너를 사용하여 다양한 장치를 통해 네트워크를 형성하는 오케스트레이터(관리 시스템, 마스터)입니다. 이 시스템은 애플리케이션을 약간 다른 방식으로 제공하는 데 사용됩니다.

전통적으로 애플리케이션은 장치에 분산되어 유지관리됩니다. 애플리케이션이 어떤 컴퓨터에서 실행되는지 알려져 있습니다. 애플리케이션이 다른 컴퓨터에서 실행되어야 한다면 사람이 해야 합니다. 컴퓨터 중 하나가 실패하면 해당 컴퓨터의 모든 애플리케이션을 더 이상 사용할 수 없습니다.

Kubernetes에서는 마스터에게 애플리케이션의 상태 설명이 주어지고, 마스터가 나머지를 처리합니다. 요청된 상태가 항상 유지되도록 보장합니다. 그러나 애플리케이션이 현재 어떤 노드에서 실행 중인지는 알 수 없지만, 원칙적으로 접근 가능합니다.

질문과 답변

상태 설명이란 무엇인가

클러스터 설치 방법

애플리케이션 업데이트 수행 방법

노드가 실패하면 어떻게 되는가

마스터가 실패하면 어떻게 되는가

특정 애플리케이션이 하드웨어 접근 때문에 특정 노드에서 실행되어야 한다

PLCnext에서 클러스터 관리: Kubernetes로 산업 자동화 활용하기 PLCnext에서 클러스터 관리: Kubernetes로 산업 자동화 활용하기

예제

프론트엔드, 백엔드, 데이터베이스 세 개의 컨테이너로 구성된 애플리케이션의 상태 설명 예제.

배포:

서비스:

인그레스:

# 배포 종류
kind: Deployment
apiVersion: apps/v1
metadata:
  name: MyApplicationName
  labels:
    app: MyApplication
    MyApplication: MyApplicationName
    namespace: default

## 컨테이너 사양
  spec:
    containers:

## 프론트엔드 컨테이너 사양
## 컨테이너 이름
    - name: MyContainer-frontend

## 사용할 컨테이너 이미지
      image: MyApplicationImage_frontend

## 프론트엔드 포트, http
      ports:
      - containerPort: 80

## 백엔드 컨테이너 사양
    - name: MyContainerName-backend
      image: MyApplicationImage_backend
      ports:
      - containerPort: 3000

## MongoDB 컨테이너 사양
    - name: MyContainerName-mongo
      image: mongo:3.4

## Mongo DB 시작 명령
      command:
      - "mongod"
      - "--bind_ip"
      - "0.0.0.0"
      ports:
      - containerPort: 27017
---
## 서비스 선언, 포트를 쿠버네티스 API에 노출(내부만 접근 가능)

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

---
## 인그레스 선언, 프록시를 프론트엔드와 백엔드에 바인딩

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

## 인그레스를 traefik 서비스 프록시에 바인딩

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

## 프론트엔드 인그레스 클래스, DNS 인그레스를 서비스 포트 80에 매핑
spec:
  rules:
  - host: MyApp.Mydomain.de
    http:
      paths:
      - path: /
        backend:
          serviceName: MyApplicationName
          servicePort: frontend

## 백엔드 인그레스 클래스, DNS 인그레스를 서비스 포트 3000에 매핑
  - host: MyApplicationName.MyDomain.de
    http:
      paths:
      - path: /api
        backend:
          serviceName: MyApplicationName
          servicePort: backend

참고 자료

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
https://github.com/k3s-io/k3s
https://github.com/rancher/k3d
https://github.com/inercia/k3x

산업기술

  1. 프레스 가공(스탬핑) 완벽 가이드: 종류, 공정, 응용 분야 총정리
  2. 마찰 용접 완벽 가이드: 원리, 장점 및 응용 분야
  3. 열분사(써멀 스프레이) 설명: 종류, 응용 및 이점
  4. 규산나트륨: 주조 생산 효율 및 품질 향상
  5. PLCnext Control에서 리눅스 터미널 명령어로 VLAN 설정 간소화하기
  6. PLCnext 디바이스에서 grpcurl로 안전한 원격 gRPC 접근 구현
  7. PLCnext CLI 템플릿: C++ 개발 효율화하기
  8. DHCP로 IP 할당된 PLCnext 웹 서버에 안전하게 액세스하기
  9. C#으로 PLCnext 콘솔 애플리케이션 개발하기: 초보자 가이드
  10. Tableau 대시보드로 PLCnext 실시간 모니터링하기