본문으로 건너뛰기

업그레이드

컨테이너 모드 (2026.05+, 권장)

# 자동 (META-INF/VERSION.JSON 의 최신 build_date)
sudo bash /opt/kopens/install/upgrade.sh

# 특정 tag
sudo bash /opt/kopens/install/upgrade.sh --to 2026-20260601

# 직전 tag 로 rollback
sudo bash /opt/kopens/install/upgrade.sh --rollback

# 새 빌드 존재 여부만 확인
sudo bash /opt/kopens/install/upgrade.sh --check

수행 순서 (자동):

  1. META-INF/VERSION.JSON 의 build_date 비교
  2. pre-snapshot/data1/pp-backups/pe-backup-<ts>.tar.zst (backup.sh 호출, SKIP_BACKUP=1 로 우회 가능)
  3. docker pull <new-tag>
  4. /etc/kopens/version.env 갱신 + systemctl restart
  5. /api/v1/system/health 90초 probe
  6. all UP → success / DEGRADED → 자동 rollback + snapshot 경로 안내

진행 상태: cat /etc/kopens/upgrade.status — JSON (idle / running / success / rolling-back / rolled-back / error + snapshot path).

UI / API 트리거:

# 컨테이너 안 (ConfigController) 에서 자동
echo '{"target_tag":"2026-20260601"}' > /etc/kopens/upgrade.request
# 호스트의 kopens-upgrade.path (inotify) 감지 → upgrade.sh --from-trigger 실행

자세한 가이드: 컨테이너 모드 운영 가이드 의 "OTA 업그레이드" 절.


(legacy) Native 모드

$PE_HOME/bin/upgrade.sh

수행 순서:

  1. backup.sh 호출 (자동)
  2. product.kopens.io 에서 최신 install.sh 다운로드
  3. install.sh 가 산출물(KOPENS_EDGE_V<VER>.tar.zstd) 다운로드 → /opt/kopens 갈아끼움
  4. start.sh 호출

정상 출력:

[1] BACKUP ... done (/data1/pp-backup/20260508-040215/)
[2] DOWNLOAD install.sh ... 22 KB OK
[3] EXEC install.sh ...
- downloading KOPENS_EDGE_V2026.tar.zstd ... 727 MB OK
- extracting ... OK
- finalizing ...
[4] START ... (start.sh 호출됨)
UPGRADE COMPLETED.

소요는 산출물 크기 + 회선 + 압축 해제 (보통 5–15분).

업그레이드 동안 게이트웨이는 다운타임

upgrade.sh 가 동작하는 동안 게이트웨이는 정지 상태 입니다. 외부 SCADA / Sparkplug 수신측에 미리 공지하세요. 가능하면 야간 점검 창 에 실행.


2. 사전 점검

업그레이드를 시작하기 전에:

# 1. 외부 망이 충분히 빠른지 — 회선이 느리면 download 만 수십 분
$PE_HOME/bin/network-speed-test.sh

# 2. 디스크 여유 (산출물 크기의 2–3배는 있어야)
df -h /opt /data1

# 3. 살아있는 백업이 있는지
ls -lt /data1/pp-backup | head -3

3. 업그레이드 결과 검증

$PE_HOME/bin/ps.sh # 모든 컴포넌트 살아있는지
curl -s http://127.0.0.1/api/v1/edge | jq # 버전/엣지 ID 새 값 확인
curl -s http://127.0.0.1/ui/opcua/tree | jq '.data.tree | length' # 사이트/태그 정상
$PE_HOME/bin/log-viewer.sh # 30초 정도 봐서 SEVERE 없는지
# (Ctrl+C)

외부 SCADA / Sparkplug 수신측에서도 정상 도착 여부를 함께 확인.


4. 자주 빠지는 함정

증상원인 / 해결
download install.sh 에서 멈춤외부 망 / product.kopens.io 점검. curl -v http://product.kopens.io/... 로 직접 확인
extracting 후 새 산출물이 깨져있음다운로드 중 중단. 디스크 공간 + 다시 시도
업그레이드 후 일부 컴포넌트만 살아있음start.sh 의 단계별 실패 — log-viewer.sh 로 어디서 막혔는지 확인
업그레이드 후 과거 버전으로 롤백백업으로부터 복구 → 백업 / 복구

5. firmware.sh — OS 패키지 업데이트

$PE_HOME/bin/firmware.sh

내부적으로:

dnf update -y
dnf clean all

분기 단위로 보안 패치를 적용할 때 사용. 커널 업데이트가 포함되면 reboot 이 필요 합니다.

$PE_HOME/bin/firmware.sh
needs-restarting -r # 새 커널이 깔렸는지 확인
# 결과가 "Reboot is required" 이면
$PE_HOME/bin/stop.sh
$PE_HOME/bin/reboot.sh

6. 더 알아보기

  • 업그레이드 통합 시나리오 (안전한 절차) → 운영 시나리오 — 신버전 배포
  • 산출물은 GitLab 릴리즈 체인(edge:libsedge:deploy-devedge:imageedge:stagingedge:version)이 만든다.
  • 설치 / 배포 (개발자용): 설치 / 배포