Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
CUBE는 아콘소프트에서 제공하는 쿠버네티스 배포판입니다.
cubectl
은 CUBE를 프로비저닝 및 라이프사이클 관리를 자동화하는 Command-Line-Interface 도구입니다.
주요기능:
쿠버네티스 클러스터 프로비저닝.
쿠버네티스 클러스터 노드 스케일 업/다운.
쿠버네티스 클러스터 버전 업그레이드.
폐쇄망 설치 지원.
GPU 애드온 설치.
사설 저장소 (Harbor) 및 스토리지 서버(NFS, Network File Server) 설치.
2 vCPUs
2 GB RAM
20 GB Storage
Control plane
3식
8 vCore
16 G
500 G
Worker nodes
1식
16 vCore
32 G
500 G
동시 빌드 15개 기준
Private Registry
1식
8 vCore
16 G
1 TB
NFS
1식
1 TB
Bastion
optional
4 vCore
4 G
500 G
설치, 원격운영지원
Control plane
3식
16 vCore
32 G
500 G
Worker nodes
3식
16 vCore
32 G
500 G
동시 빌드 5개 기준
Private Registry
1식
8 vCore
16 G
1 TB
NFS
1식
2 TB
Bastion
optional
4 vCore
4 G
500 G
설치, 원격운영지원
※ all nodes
SSH
Inbound/outbound
22
TCP
Inbound/outbound
80
http
TCP
Inbound/outbound
443
https
4(IPv4)
Inbound/outbound
calico(ipip)
TCP
Inbound/outbound
179
calico(ipip)
UDP
Inbound/outbound
4789
calico(vxlan)
TCP/UDP
Inbound/outbound
111
when using nfs
TCP/UDP
Inbound/outbound
2049
when using nfs
HTTP
outbound
8080
on air gaped network
※ control plane
TCP
Inbound
6443
Kubernetes API server
All
TCP
Inbound
2379~2380
etcd server client API
kube-apiserver, etcd
TCP
Inbound/outbound
10250
Kubelet API
Self, Control plane
TCP
Inbound
10259
kube-scheduler
Self
TCP
Inbound
10257
kube-controller-manager
Self
※ worker nodes
TCP
Inbound/outbound
10250
Kubelet API
Self, Control-plane
TCP
Inbound
30000-32767
NodePort Service Range
All
※ registry (harbor + linux-local-repository, optional)
TCP
Inbound
443
harbor https
All
TCP
Inbound
8080
linux-local-repository (on air gaped network)
All
/usr/bin/sh
⚫
⚫
⚫
필수
×
cubectl(ansible)
/usr/local/bin/podman
⚫
필수
×
run in cubectl
/usr/bin/cp
⚫
필수
×
run in cubectl
/usr/bin/tar
⚫
필수
×
run in cubectl
/usr/bin/helm
⚫
○
/usr/bin/cp
⚫
⚫
⚫
○
노드 관리용도
/usr/bin/tar
⚫
⚫
⚫
○
노드 관리용도
/usr/bin/ls
⚫
⚫
⚫
⚫
○
노드 관리용도
/usr/bin/cat
⚫
⚫
⚫
⚫
○
노드 관리용도
/usr/bin/systemctl
⚫
⚫
⚫
○
노드 관리용도
/usr/bin/journalctl
⚫
⚫
⚫
○
노드 관리용도
/usr/bin/kubectl
⚫
⚫
○
노드 관리용도
/usr/bin/kubeadm
⚫
⚫
○
노드 관리용도
/usr/bin/crictl
⚫
⚫
○
노드 관리용도
/usr/sbin/ipvsadm
⚫
⚫
○
노드 관리용도
/usr/bin/calicoctl
⚫
⚫
○
노드 관리용도
/usr/bin/netstat
⚫
⚫
○
노드 관리용도
/usr/bin/etcdctl
⚫
○
노드 관리용도
/usr/local/bin/docker-compose
⚫
○
노드 관리용도
/usr/bin/docker
⚫
○
노드 관리용도
/usr/bin/vi
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/chown
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/chmod
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/df
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/lsmod
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/modprobe
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/swapoff
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/grep
⚫
⚫
⚫
×
트러블 슈팅용도
/usr/bin/regctl
⚫
○
이미지 관리용도
cubectl
OS : linux, darwin(osx)
CPU : amd64(x86_64), arm64(aarch64)
CentOS 7, RedHat Enterprise Linux 7 은 /proc/sys/user/max_user_namespaces
10000 이상 값설정 필요.
RedHat Enterprise Linux 7(arm64)는 cubectl
실행을 지원하지 않습니다.
Supported CPU architectures
amd64(x86_64)
arm64(aarch64)
※ 멀티 리눅스 배포판으로 단일 클러스터 구성이 가능합니다.
CUBE는 최신 3개 패치버전 (v1.2.2, v1.2.1, v1.1.0) 을 지원합니다.
CUBE는 마이너 버전(v1.2 과 v1.1) 간 버전 호환성을 지원하지 않는것을 원칙으로 합니다.
CUBE v1.2은 CUBE v1.1로 설치한 private-registry(harbor)의 IP 및 도메인 변경을 지원하지 않습니다.
v1.31
2024-10-22
2024-12-31
2025-10-28
2025-12-31
v1.2, v1.3
v1.30
2024-06-28
2024-10-07
2025-07-28
2025-09-31
v1.2, v1.3
v1.29
2024-02-28
2024-07-12
2025-03-23
2025-06-30
v1.2, v1.3
v1.28
2023-08-15
2024-03-20
2024-11-26
2025-03-31
v1.1, v1.2, v1.3
v1.27
2023-04-11
2024-01-16
2024-07-24
2024-12-31
v1.1, v1.2, v1.3
v1.26
2022-12-09
2023-07-12
2024-06-11
2024-09-30
v1.1, v1.2, v1.3
v1.25
2022-08-23
2023-07-12
2024-05-01
2024-06-31
v1.1
지원하는 최신 마이너버전에서 하위 5개(총 6개) 버전을 지원합니다.
기술 지원이 종료된 버전은 보안 패치 및 버그 수정을 제공하지 않습니다.
Supported Linux Distributions
Ubuntu 20.04, 22.04
CentOS 9(stream)
Rocky 8, 9
RedHat Enterprise Linux 8, 9
Kubernetes
v1.31.3
v1.30.7
v1.29.11
v1.28.15
v1.27.16
v1.26.15
Components
containerd: v1.7.24
coredns: v1.9.3
pause: v3.10
haproxy: 3.1.1
etcd: v3.5.17
metrics-server: v0.7.2
Addons
calico: v3.29.1
helm: v3.16.4
csi-driver-nfs: v4.9.0
Private registry(harbor) / Linux package repository
harbor: v2.7.4
docker-compose: v2.32.0
nginx: 1.27.3
Supported Linux Distributions
Ubuntu 20.04, 22.04
CentOS 7.8, 7.9, 8(stream), 9(stream)
Rocky 8, 9
RedHat Enterprise Linux 7.9, 8, 9
Kubernetes
v1.31.3
v1.30.7
v1.29.11
v1.28.15
v1.27.16
v1.26.15
v1.25.16
Components
containerd: v1.6.28
coredns: v1.9.3
pause: v3.9
haproxy: 2.9.4
etcd: v3.5.7
metrics-server: v0.7.2
Addons
calico: v3.28.0
helm: v3.10.3
csi-driver-nfs: v4.8.0
Private registry(harbor) / Linux package repository
harbor: v2.7.4
docker-compose: v2.24.5
nginx: 1.25.3
Kubernetes
v1.28.6
v1.27.9
v1.26.14
v1.25.16
Components
containerd: v1.6.28
coredns: v1.9.3
pause: v3.9
haproxy: 2.9.4
etcd: v3.5.7
metrics-server: v0.7.0
Addons
calico: v3.27.0
helm: v3.10.3
Private Registry (harbor + linux package repository)
harbor: v2.6.4
docker-compose: v2.24.5
nginx: 1.25.3
v1.27
containerd : v1.6
etcd : v3.5
calico : v3.26
coredns : v1.9.3
metrics-server : v0.6
pause : v3.9
v1.26
containerd : v1.6
etcd : v3.5
calico : v3.25
coredns : v1.9.3
metrics-server : v0.6
pause : v3.9
v1.25
containerd : v1.6
etcd : v3.5
calico : v3.25
coredns : v1.8.6
metrics-server : v0.6
pause : v3.8
v1.24
containerd : v1.6
etcd : v3.5
calico : v3.24
coredns : v1.8.6
metrics-server : v0.6
pause : v3.7
v1.23
containerd : v1.6
etcd : v3.4
calico : v3.23
coredns : v1.8.6
metrics-server : v0.6
pause : v3.6
Image Registry (Harbor)
docker v19.03.15
docker-compose v1.29.2
harbor v2.6.4
Linux Package Repository
nginx v1.24.0
Storage Server
Latest (v2.6.1) 2023.06.12
2025.01.03
Features
EOS Linux distributions
CentOS 7,8
RedHat7
컴포넌트 버전 업
containerd : v1.6.28 → v1.7.24
etcd : v3.5.7 → v3.5.17
helm : v3.10.3 → v3.16.4
docker-compose : v2.24.5 → v2.32.0
regctl : v0.7.1 → v0.8.0
컨테이너 이미지 버전 업
calico : v3.28.0 → v3.29.1
haproxy : 2.9.4 → 3.1.1
nginx : 1.25.3 → 1.27.3
nfsplugin : [v4.6.0, v4.8.0] → [v4.6.0, v4.8.0, v4.9.0]
csi-provisioner : v4.0.0 → v5.0.2
csi-snapshotter : v6.3.3 → v8.0.1
csi-node-driver-registrar : v2.10.0 → v2.11.1
livenessprobe : v2.12.0 → v2.13.1
snapshot-controller : v6.3.3 → v8.0.1
(기능) CUBE Web Console
(기능) 설치 전 인프라 검증 및 설치 후 클러스터 검증 지원
(개선) 쿠버네티스 클러스터 보안취약점 개선
(개선) cubectl.toml
리뉴얼
2024.12.17
Features
쿠버네티스 클러스터 OpenStack 자동 설치
CUBE API (RESTful API)
"cubecli" to "CUBE" 마이그레이션
cubectl push
명령어 - 리눅스 패키지 및 이미지 업로드
cubectl destroy localrepo
명령어
애드온 버전 선택 설치 기능
Kubernetes v1.31 지원
GPU operator v24.9.0 지원
컴포넌트 버전 업
metrics-server v0.7.2
nfsplugin v4.8.0
Bugfixes
온라인 설치 시 redhat 계열 설치 안되는 현상
audit-log를 false 일 경우 클러스터 생성 실패 오류
클러스터 boolean 타입 설치 옵션 default 값 지정 오류
동일 호스트 대상으로 폐쇄망으로 설치 후 온라인 재설치 안되는 현상
redhat8, redhat7 멀티 설치 및 iptables 관련 오류
실행 런타임 오류 발생 후 ERROR[0007] 디스플레이되고 끝나는 현상
registry, repository 인벤토리 잘못 지정되는 현상
upgrade 명령 실행 시 cubectl.toml 에 private-registry ip, private_ip 둘다 기입했을 경우 설치 실패하는 현상
control-plane 노드 추가 안되는 현상
Improvement
기본제공 'cubectl.toml` 누락 옵션 반영
kubelet extra-args 옵션 map 방식으로 처리
실행 Timeout 을 90분으로 증가, 단일 Task timeout 은 20분에서 60분으로 변경
패키지 다운로드 시 "VERSION" 을 입력하지 않을 경우 alpha, beta 버전이 다운로드 되는 현상 개선
metrics-server control-plane 노드에 설치
destroy, upgrade, update-kubeconfig 명령 node annotation 반영
Enhancement
cubectl.toml 로컬 레파지토리 섹션 추가, private-registry 섹션과 분리
CUBE API 데이터베이스 sqlite 적용 및 기타 기능 향상
"private-key" Flag 필수 체크
2024.10.31
Features
어노테이션을 통해 노드별로 SSH 계정, 포트 별도 지정 기능
어노테이션을 통해 노드 스케일-인 수행 시 노드별로 삭제 대상 노드 목록에서 제외 지정 기능
2024.10.15
Features
GPU Operator 애드온 다운로드 서비스
metrics-server, network-cni(calico), haproxy 애드온 설치 여부 옵션 추가
nfs-cis-driver v4.8.0으로 버전 업
Control-Plane 스케일 인/아웃 기능
Kubernetes v1.30 및 패치버전 추가 지원: v1.30.4, v1.29.8, v.28.13, v1.27.16
Bugfixes
버전 업그레이드 시 calico vxlan 모드인 경우 워크로드간 통신하지 못하는 현상, always 옵션 적용
온라인 설치 시 centos9에서 local repository 설정 누락 오류
클러스터 이름이 적용되지 않는 현상
nfs-utils 패키지 설치 시 종속성 문제 - allowerasing 옵션 추가
멀티 클러스터에서 이미지 레지스트리 공유할 경우 인증서 다운로드 URL 가져오지 못하는 문제
설치옵션(extravars.cube) boolean type default 값 지정 오류
폐쇄망 설치 시 CentOS7 노드에서 패키지들 간 의존성 에러 발생 문제
폐쇄망 환경에서 podman archive 파일 찾지 못해 CUBECTL 실행하지 못하는 현상
Improvement
CUBE 다운로드 서비스 개선 및 도메인 이슈
리눅스 Local Repository 지원 종료 및 URL 변경이슈 개선 - CentOS 8(stream), CentOS 7, RHEL 7
이미지 레지스트리 도메인과 IP간 변경 기능
이미지 레지스트리 admin 비밀번호 옵션 적용
워커노드 haproxy 헬스체크 포트 "8081" 에서 "8054"로 변경
온라인 모드로 설치한 클러스터를 페쇄망 환경으로 전환가능하도록 개선
Enhancement
버전이 지정되지 않은 CUBECTL 인 경우 CUBE 이미지를 항상 최신 버전(latest) 을 pull 하도록 개선
CUBECTL 로그 개선
2024.07.12
Bugfixes
storage 서버 삭제 시 사용되지 않는 변수 삭제
artifacts 로그 갯수 제한
실행 Timeout 시간 7200초로 증가
calico vxlan mode default-value값 CrossSubnet 에서 Always 로 변경
addon data-dir 파라미터 제거하고 values 파일에 default-value 지정
폐쇄망에서 storage server 설치되지 않는 현상
2024.06.28
Features
리눅스 배포판 5종 추가 지원 (centos9 | rhel9 | rocky9 | ubuntu2304 | ubuntu2310)
멀티 CPU Architecture 지원 (amd64, arm64)
애드온 구조 개선
멀티 클러스터 프로비저닝 기능
cubectl 실행 환경(Container Runtime) 추가 지원 (podman (default), docker, containerd)
사설 레지스트리(harbor) IP 변경 기능
Enhancement/Improvement
Default pod cird 수정 (10.4.0.0/16)
calico, metrics-server 컴포넌트 버전업
Addons 별 차트 버전관리 방식 개선
Refactoring
멀티 클러스터 설치를 위한 구조 개선
Bugfixes
v1.0.x 로 설치 클러스터 업그레이드 시 누락된 Image 추가
폐쇄망 Centos8 노드 설치 오류
Storage 서버 패키지 설치 오류
2024.03.20
Features
Kubernetes Legacy Package Repositories Frozen 대응
Kubernetes v1.28 지원
Bugfixes
v1.0.x 로 설치 클러스터 업그레이드 시 누락된 Image 추가
폐쇄망 Centos8 노드 설치 오류
Storage 서버 패키지 설치 오류
Enhancement
폐쇄망 설치 리눅스 패키지 종속성 관리 방식 개선
Harbor HTTP 서비스 포트 8081번으로 변경
Improvement
Addons 별 차트 버전관리 방식 개선
Refactoring
Duplicate 코드 개선
폐쇄망 container image archive 파일 업로드 개선
Documentation
Image Registry IP 또는 도메인 변경 매뉴얼 제공
2024.01.16
Bugfixes
"ubuntu2004/ubuntu2204" 단일 리눅스 배포판으로 구성된 클러스터에서 "Failed to update apt cache: E:Failed to fetch file:/data/localrepo/ubuntu2004/./Packages File not found" 오류
2024.01.12
Features
Worker-node calicoctl 설치
GPU Time Slicing & MIG(multi instance GPU) Addon 지원
umask 027 설정 호스트 설치 지원
Enhancement
addon.toml "values_file" 개선
2023.12.05
Bugfixes
각 노드에서 파일 및 디렉토리 생성 시 항상 권한 지정하도록 수정
private-registry를 포함한 클러스터에서 Update를 통해 추가된 노드에서 인증서가 없는 오류
Update 시 이전 변경 사항 확인하는 과정에서 변경 대상 노드를 가져오지 못하는 오류
lbip를 입력해도 masterip가 lbip로 입력되는 오류
Improvement
Terraform/Openstack 기반 CI 파이프라인을 통한 테스트 자동화 반영
2023.10.16
Features
RedHat Enterprise Linux 7.9 지원
Bugfixes
리눅스 로컬 저장소 구성 시 Packages.gz 파일 권한 오류
폐쇄망 패키지 다운로드 오류
Enhancement
폐쇄망 설치 시 파일 유효성 체크 개선
K8S 패치 버전까지 지정해서 폐쇄망 패키지 파일 다운로드 가능하도록 개선
Refactoring
K8S 패치 버전까지 폐쇄망 패키지 파일 세분화
2023.09.08
Features
CentOS7 지원 (v7.8, v7.9)
멀티 OS 지원 동시 설치 지원 (6종, 일부 os 기능 제한)
Kubernetes v1.27 지원
칵테일 다운로드 URL (https://cube.k3.acornsoft.io/download-cocktail) 제공
Bugfixes
노드별로 다른 python 명령어 위치로 인해 발생하는 mitogen tool disable 오류
온라인 환경에서 사설 저장소만 설치할 경우 설치 오류
destroy
시 이전 network-cni 설정 정보 유지되는 현상
Cluster Configuration endpoint를 lb-ip로 지정하여 노드 join 안되는 현상
구버전의 cubectl로 설치한 클러스터가 v1.0.0 버전으로 업그레이드 안되는 오류
워커 노드수를 축소해서 업데이트 했을 경우 오류 메시지 출력 현상
워커 노드수를 0개에서 1개이상 증가 시킨후 update
실행 시 오류
update
실행 시 신규 노드 경우 label 누락되는 현상
클러스터 프로비저닝 이후 추가된 노드에 대한 업그레이드 오류
Improvement
etcd secret control-plane 노드에서 중복으로 생성되는 현상 개선
api-server 인증서에 첫번째 컨트롤플랜 노드 ip가 포함되는 현상 개선
Harbor 인증서 생성 방식 개선
폐쇄망 설치용 archive tar 파일 개선 및 버전 세분화
Enhancement
GPU노드를 위한 nvidia 관련 패키지 추가
calico v3.26 업그레이드
에드온 cis-driver-nfs 업그레이드
Refactoring
사용하지 않는 cubectl.toml 정리
mitogen-v0.2.9(extends ansible tools) 제거
2023.06.12
Create a Cluster
Delete a Cluster
Add & Remove worker nodes
Kubernetes version upgrade
update
since v1.0.0
쿠버네티스 클러스터에 워커 노드를 추가하거나 삭제합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
--kubeconfig <kubeconfig file>
업데이트할 쿠버네티스 클러스터의 kubeconfig 파일입니다.
Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
cubectl
은 cubectl.toml
에 지정된 설정 값을 기반으로 쿠버네티스 클러스터를 프로비저닝하고 관련 툴을 설치하는 Command Line Interface 입니다.
cubectl
command 구조는 다음과 같습니다.
create : 쿠버네티스 클러스터를 프로비저닝하고 사설 저장소(harbor), 스토리지 서버(NFS) 툴 설치합니다.
destroy : 프로비저닝된 쿠버네티스 클러스터, 사설 저장소(harbor), 스토리지 서버(NFS) 툴 제거합니다.
update : 쿠버네티스 노드를 추가,삭제 합니다.
update-kubeconfig : 쿠버네티스 클러스터의 KUBECONFIG 파일을 저장합니다.
upgrade : 쿠버네티스 클러스터 버전을 업그레이드 합니다.
config : 설정 정보 파일인 cubectl.toml
생성/조회하거나 프로비저닝된 쿠버네티스 클러스터와 cubectl.toml
파일을 동기화 합니다.
addon : 애드온 어플리케이션을 배포합니다.
push : 컨테이너 이미지를 레지스트리에 push 합니다, OS 패키지를 local repository에 push하고 재구성합니다.
version : CLI 버전 정보를 조회합니다.
help : 애플리케이션 내의 모든 명령어에 대한 도움말을 제공합니다.
설치 가능한 리눅스 배포판 확인
see Supported Versions Guide page for more information.
호스트간 방화벽 확인
see Firewall Settings Guide page for more information.
sudoers
실행 권한 확인
see Sudoers Table Guide page for more information.
호스트 간 Passwordless SSH 설정 확인
동일 계정 및 Private Key 필요
cubectl
은 상용 제품입니다. 다운로드 계정 발급은 서비스 데스크로 문의바랍니다.
See Download cubectl
Guide page for more information.
See Create a cluster Guide page for more information.
See Update kubeconfig Guide page for more information.
See Destroy a cluster Guide page for more information.
create
since v1.0.0
쿠버네티스 클러스터 및 사설 저장소(harbor), 스토리지 서버(Network File Server)를 설치합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
destroy
since v1.0.0
쿠버네티스 클러스터, Registry, Storage 서버를 제거합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
destroy cluster
since v1.0.0
쿠버네티스 클러스터를 제거합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
destroy registry
since v1.0.0
저장소를 제거합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
destroy localrepo
since v1.2.4
localrepo 서버를 제거합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
destroy storage
since v1.0.0
Storage 서버를 제거합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
CUBE는 다음과 같이 4가지 설치 패키지 다운로드를 제공합니다:
온라인 설치 패키지
칵테일 포함 온라인 설치 패키지
폐쇄망 설치 패키지
칵테일 포함 폐쇄망 설치 패키지
이전 이미 다운로드된 파일들이 존재한다면 새로운 파일로 Overwrite 됩니다.
CUBE는 상용 제품입니다. 다운로드 계정 발급은 서비스 데스크로 문의바랍니다.
ACCOUNT : 다운로드 계정명
PASSWD : 다운로드 계정 비밀번호
VERSION (optional)
CUBE 버전
예 : v1.2.0, v1.0.3, v1.0.4
Default: 최신 버전
AIRGAP (optional)
폐쇄망 설치 패키지를 다운로드 합니다.
설치 대상 노드들의 리눅스 배포판 이름을 입력합니다.
중복선택 가능합니다. (예: AIRGAP=ubuntu2204,rocky9,rhel8)
지원 리눅스 배포판 (12종) : ubuntu2004 | ubuntu2204 | ubuntu2304 | ubuntu2310 | centos7 | centos8 (stream) | centos9 (stream) | rocky8 | rocky9 | rhel7 | rhel8 | rhel9
NODE_ARCH (optional)
설치할 노드들의 CPU 아키텍처를 입력합니다.
중복선택 가능하며 amd64(x86_64), arm64 2종을 지원합니다.
Default: amd64
since v1.2.0
K8S (optional)
폐쇄망 설치 패키지의 쿠버네티스 버전을 입력합니다.
v1.29
와 같이 마이너 버전까지 입력한 경우 CUBE에서 지원하는 latest 버전 다운로드합니다.
v1.29.2
와 같이 패치 버전까지 입력한 경우 특정 버전 다운로드 가능합니다.
지원 쿠버네티스 버전은 * Supported Versions 을 참조하세요.
OS (optional)
cubectl
런타임 OS을 입력합니다.
linux, darwin 2종을 지원합니다.
Default: 현재 OS
ARCH (optional)
cubectl
런타임 OS CPU 아키텍처를 입력합니다.
amd64(x86_64), arm64 2종을 지원합니다.
Default: amd64(x86_64)
COCKTAIL (optional)
입력된 버전의 칵테일을 포함한 패키지를 다운로드합니다.
예 : v4.7.4
CCP (optional)
입력된 버전의 ccp
파일(칵테일 설치 CLI)을 포함한 패키지를 다운로드합니다.
예 : v1.1.1, v1.0
Default: 최신 버전
온라인 패키지 다운로드
폐쇄망 패키지 다운로드
칵테일 포함 온라인 패키지 다운로드
칵테일 포함 폐쇄망 패키지 다운로드
온라인 설치 패키지 (예)
칵테일 포함 온라인 설치 패키지 (예)
폐쇄망 설치 패키지 (예)
칵테일 포함 폐쇄망 설치 패키지 (예)
칵테일 tar 파일과 ccp
CLI 가 현재 디렉토리에 다운로드 됩니다.
ACCOUNT : 다운로드 계정명
PASSWD : 다운로드 계정 비밀번호
VERSION (optional)
칵테일 버전
예 : v4.7.4, v4.7, v4.7.4_R202308
Default: 최신 버전
CCP (optional)
ccp
버전
예 : v1.1.1, v1.0
Default: 최신 버전
update-kubeconfig
since v1.0.0
설치된 쿠버네티스 클러스터의 KUBECONFIG 파일을 다운로드받습니다.
acloud-client-kubeconfig
파일로 저장됩니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
addon list
since v1.2.0
애드온 목록을 조회합니다.
--kubeconfig <kubeconfig file>
쿠버네티스 클러스터의 kubeconfig 파일입니다.
Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig
addon enable
since v1.2.0
조회된 애드온 목록에서 설치할 ADDON_NAME을 확인하고 해당 애드온을 설치 합니다.
--kubeconfig <kubeconfig file>
애드온을 설치할 쿠버네티스 클러스터의 kubeconfig 파일입니다.
Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig
--profile <profile file>
애드온에 적용할 profile 파일명을 입력합니다. (확장자 제외)
Default : 미 입력시 default.yaml 사용됨
addon disable
since v1.2.0
설치된 애드온을 삭제 합니다.
--kubeconfig <kubeconfig file>
애드온을 삭제할 쿠버네티스 클러스터의 kubeconfig 파일입니다.
Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig
쿠버네티스 노드 관련 속성을 정의합니다.
노드들의 공통 속성들을 정의합니다.
노드별 backup, podman, log, kubelet, etcd, container 데이터 디렉터리입니다.
Type : string
Default : /data
Since : v1.0.0
설치 시 노드에 접속 할 SSH 포트 번호입니다.
Type : integer
Default : 22
Since : v1.0.0
컨트롤 플레인 노드 속성을 정의합니다.
컨트롤 플레인 노드들의 SSH 접속 IP 주소들 입니다.
Type : []string
Default : []
Since : v1.0.0
컨트롤 플레인 노드들의 노드 IP입니다.
node-pool.master.ip
과 동일할 경우 생략 가능합니다.
Type : []string
Default : []
Since : v1.0.0
값이 true
면 컨트롤 플레인 노드들에 워크로드가 스케줄링 되지 않도록 taint 처리 합니다.
Type : boolean
Default : true (since v1.2.0)
Since : v1.0.0
컨트롤 플레인 endpoint IP 주소입니다.
Type : string
Default : node-pool.master.private-ip[0]
Since : v1.0.0
컨트롤 플레인 endpoint 포트번호입니다.
Type : integer
Default : 6443
Since : v1.0.0
컨트롤 플레인 노드에 haproxy(static-pod)를 설치를 활성화힙니다.
haproxy는 내부 load balance 역할을 수행합니다.
Type : boolean
Default : true
Since : v1.0.0 ~ v1.0.1
워커 노드의 속성을 정의합니다.
워커 노드들의 SSH 접속 IP 주소들 입니다.
Type : []string
Default : []
Since : v1.0.0
워커 노드들의 노드 IP입니다.
node-pool.node.ip
과 동일할 경우 생략 가능합니다.
Type : []string
Default : []
Since : v1.0.0
local repository 설치를 활성화합니다.
Type : boolean
Default : false
Since : v1.2.4
local repository 노드의 공개 IP 주소입니다. local repository를 설치할 때 사용되는 필수 항목입니다.
Type : string
Default : ""
Since : v1.2.4
local repository 노드의 사설 IP 주소입니다. local repository 설치할 때 사용하는 필수 항목입니다.
ip
과 동일한 IP 주소를 사용하는 경우 건너뛸 수 있습니다.
Type : string
Default : ""
Since : v1.2.4
local repository 노드의 서비스 포트 입니다.
Type : int
Default : 8080
Since : v1.2.4
local repository 노드가 설치되는 경로입니다.
Type : string
Default : "/data/localrepo"
Since : v1.2.4
cubectl
실행 환경을 정의합니다.
설치되는 쿠버네티스 클러스터의 이름입니다.
Type : string
Default : kubernetes
Since : v1.0.0
인증서 만료기간 입니다.
Type : integer
Default : 36500 (100년)
Since : v1.0.0
노드별 CUBECTL 설치 스크립트 (harbor, shell scripts) 저장 디렉토리입니다.
Type : string
Default : "/var/lib/cubectl"
Since : v1.0.0
폐쇄망 설치 여부를 선택합니다.
폐쇄망 설치일 경우 :./archive
디렉토리에 설치 압축파일들이 반드시 존재해야 합니다.
Type : boolean
Default : false
Since : v1.0.0
리눅스 로컬 저장소 설치를 활성화 합니다.
폐쇄망 설치 시는 true
로 지정해야 하고 {CUBE_HOME}/archive/runtime
디렉토리에 harbor-offline-installer-{VERSION}-linux-{ARCH}.tgz
파일이 존재해야 합니다.
멀티 OS로 클러스터를 구성할 경우 Ubuntu 20.04는 지원하지 않습니다.
Type : boolean
Default : -
Since : v1.0.0
리눅스 로컬 저장소의 서비스의 URL입니다.
지정하지 않을 경우 사설 저장소의 IP address 가 자동 지정됩니다.
Type : string
Default : "http://{{ registry-ip }}:8080"
Since : v1.0.0
deprecated v1.2.0
리눅스 로컬 저장소의 서비스 포트번호 입니다.
upgrade
since v1.0.0
설치된 쿠버네티스 클러스터의 버전을 업그레이드합니다.
cubectl
로 프로비저닝된 클러스터만 업그레이드가 가능합니다.
업그레이드 버전 범위는 v1.24 에서 v1.27 까지이며 단계별로 업그레이드가 진행됩니다. (1.23 -> 1.24 -> 1.25 -> 1.26 -> 1.27)
다운그레이드는 불가능합니다.
-p <ssh key>
설치 호스트들의 Passwordless SSH 연결을 위한 Private-Key 입니다.
-u <username>
설치 호스트들의 Passwordless SSH 연결을 위한 사용자 계정명입니다.
--kubeconfig <kubeconfig file>
업그레이드할 쿠버네티스 클러스터의 kubeconfig 파일입니다.
Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig
-a, --auto-approve
optional
IP 확인 및 y/n 질의 절차를 생략합니다.
-c, --cluster
optional
Cluster 이름을 입력합니다.
Default : "default"
-f, --config
optional
cubectl.toml 경로를 입력합니다.
Default : ${CUBE_HOME}/config/cubectl.toml
--container-runtime
optional
컨테이너 런타임을 지정합니다. podman 또는 docker 중에서 선택할 수 있습니다.
Default : "podman"
--cube
optional
Cube의 버전을 지정합니다.
Default : "latest"
--port
optional
원격 호스트의 포트를 지정합니다.
Default : 22
-v, --verbose
optional
상세 출력을 활성화합니다.
※ 자세한 내용은 를 참조합니다.
: cubectl
실행 환경을 정의합니다.
: 쿠버네티스 관련 속성을 정의합니다.
: 노드 IP와 같은 노드관련 속성을 정의합니다.
: local repository 설치 여부 및 관련 속성을 정의합니다.
: 사설 저장소 설치 여부 및 관련 속성을 정의합니다.
: 스토리지 서버(Network File System) 설치 여부 및 관련 속성을 정의합니다.
스토리지 서버 설치 여부 및 관련 속성을 정의합니다.
CUBE는 스토리지 서버로 NFS(Network File System)를 설치합니다.
NFS 설치를 활성화 합니다.
Type : boolean
Default : false
Since : v1.0.0
NFS IP 주소입니다.
설치할 때 사용되는 필수 입력 항목입니다.
Type : string
Default : ""
Since : v1.0.0
NFS IP 주소입니다.
설치할 때 사용되는 필수 입력 항목입니다.
shared-storage.storage-ip
과 동일한 IP 주소를 사용하는 경우 건너뛸 수 있습니다.
Type : string
Default : ""
Since : v1.0.0
NFS 데이터 디렉토리입니다.
설치할 때 사용되는 필수 입력 항목입니다.
Type : string
Default : "/data/storage"
Since : v1.0.0
사설 저장소 설치 여부 및 관련 속성을 정의합니다.
CUBE는 사설 저장소로 harbor를 설치합니다.
Harbor 설치를 활성화합니다.
Type : boolean
Default : false
Since : v1.0.0
Harbor 노드의 공개 IP 주소입니다. Harbor를 설치할 때 사용되는 필수 항목입니다.
Type : string
Default : ""
Since : v1.0.0
Harbor 노드의 사설 IP 주소입니다. Harbor 설치할 때 사용하는 필수 항목입니다.
registry-ip
과 동일한 IP 주소를 사용하는 경우 건너뛸 수 있습니다.
Type : string
Default : ""
Since : v1.0.0
since v1.0.0 (deprecated v1.2.0)
~~설치될 Harbor 버전을 지정합니다. Harbor를 설치할 때 사용하는 필수 입력 항목입니다. ~~
주 버전만 입력하면 부 버전이 자동으로 마지막 버전을 선택합니다.
도메인 주소입니다. 도메인을 사용하는 경우 입력합니다.
Type : string
Default : private-registry.registry-ip
Since : v1.0.0
참고 - 칵테일 사용 시 도메인 사용 권장합니다.
Harbor 를 IP 로 설치했을 경우 향후 IP 변동 되었다면 칵테일 연동에 있어 다음과 같은 추가 작업이 필요합니다.
기존 Harbor 주소로 배포 되어 있는 이미지 주소를 변경IP 주소로 재 배포 작업.
칵테일 내부 설정 값 패치 작업 ( Harbor 연동 하는 API Server, Package, Addon Manager IP, 인증서 )
칵테일 Addon 재 설치 Database Migration 작업 ( 빌드 관련 정보 , 이미지 Pull Secret 등)
Harbor 를 새로 설치할 경우 Harbor 접속 정보 관련해서 이중으로 암호화 되어 있어 복구 및 Migration 작업 필요합니다.
Admin 계정의 비밀번호입니다.
Type : string
Default : 미공개
Since : v1.2.2
참고 - 비밀번호 변경 관련
Harbor의 비밀번호는 UI에서 변경해야합니다.
install.sh로 변경 시 DB 관련하여 문제가 생깁니다.
Harbor 비밀번호 변경 후 반드시 해당 옵션의 값을 일치시켜야 합니다.
Harbor 데이터 디렉터리 입니다.
Type : string
Default : "/data/harbor"
Since : v1.0.0
Harbor 서버 공개 인증을 활성화합니다.
Type : boolean
Default : false
Since : v1.0.0
인증서 파일을 지정합니다.
인증서 경로 입니다. 공인 인증을 활성화 했을 경우 필수 입력 항목입니다.
Type : string
Default : ""
Since : v1.0.0
인증서 키 경로입니다. 공인 인증을 활성화 했을 경우 필수 입력 항목입니다.
Type : string
Default : ""
Since : v1.0.0
쿠버네티스와 관련된 속성을 정의합니다.
쿠버네티스 버전입니다.
버전별 지원 현황은 릴리즈노트를 참고합니다.
Type : string
Default : latest
Since : v1.0.0
쿠버네티스 프록시 모드입니다.
Type : string
Default : "ipvs"
Ranges: ["ipvs" | "iptables"]
Since : v1.0.0
Service CIDR 입니다.
Type : string
Default : "10.96.0.0/20"
Since : v1.0.0
Pod CIDR 입니다.
Type : string
Default : "10.4.0.0/16"
Since : v1.0.0
노드 포트 범위입니다.
Type : string
Default : "30000-32767"
Since : v1.0.0
쿠버네티스 audit 로그를 활성화합니다.
로그는 {{node-pool.data-dir}}/k8s-audit/kubernetes-audit.log
에서 확인할 수 있습니다.
Type : boolean
Default : true
Since : v1.0.0
apiserver SAN을 추가합니다. --apiserver-cert-extra-sans
설정과 동일합니다.
version : v0.1.0
Type : []string
Default : 첫번째 컨트롤 플레인 노드 IP
Since : v1.0.0
Calico-cni를 설정합니다.
CUBE는 기본적으로 calico ipip 모드로 설치됩니다.
Calico VXLAN 모드를 활성화합니다. vxlan모드는 UDP 4789
포트를 사용합니다.
Type : boolean
Default : false
Since : v1.0.0
네트워크 연결 불안정, 노드 다운, 리소스 부족, 스케줄링 문제 등으로 업그레이드가 실패할 경우가 발생할 수 있으므로 서비스 무중단 운영 중 실시간 업그레이드를 권장하지 않습니다.
업그레이드 전 데이터베이스에 저장된 앱 상태와 같은 중요한 구성 요소를 백업하고 노드들의 스왑을 비활성화 해야 합니다.
여분의 리소스가 충분히 확보 되어야 합니다. 부족한 리소스는 업그레이드 실패의 원인이 될 수 있습니다.
업그레이드 수행 전 사전 작업을 통해 충분한 리소스를 확보합니다.
최소 노드 수는 Control-plane는 3개이상 Worker 노드는 2개 이상 입니다.
버전 업그레이드는 클러스터를 구성하는 Control-Plane , Worker 노드 순으로 단계별 진행됩니다.
이때 업그레이드 대상 노드는 drain을 통해 노드 내의 Pod들은 다른 노드들로 스케줄링 됩니다.
ReplicationController, ReplicaSet, Job, Daemonset, StatefulSet과 같은 컨트롤러에 의해 실행된 Pod는 다른 노드로 스케줄링 됩니다.
하지만 이와 같은 컨트롤러를 이용하지 않은 Pod는 축출된 후 다른 노드로 스케줄링되지 않으며 다른 노드로 복제가 불가능한 Pod는 옮겨지지 않습니다.
DaemonSet 컨트롤러에 의한 관리되는 Pod는 스케줄링되지 않습니다.
로컬 저장 공간을 사용하는 Pod는 축출되면서 사용하던 데이터를 잃게 되며 PodDisruptionBudgets(PDB) 설정에 의해 축출에 실패하거나 느려질 수 있습니다.
업그레이드가 종료되면 uncordon 을 통해 해당 노드에 대한 스케줄링이 다시 허용 됩니다. 하지만 다른 노드로 배치되었던 Pod가 다시 해당 노드로 스케줄링되지는 않습니다.
컨테이너 해시 값이 변경되기 때문에 업그레이드 후 모든 컨테이너가 다시 시작됩니다.
cubectl config sync
명령을 통해 클러스터 정보를 동기화 합니다.
cubectl update-kubeconfig
명령을 통해 KUBECONFIG 파일을 다운로드 받습니다.
cubectl.toml
파일을 수정합니다.
[kubernetes]
섹션에서 원하는 쿠버네티스 version을 입력합니다.
패치버전을 생략하면 latest 버전을 설치합니다.
cubectl upgrade
명령을 실행합니다.
폐쇄망 설치 환경에서는 을 확인하세요.
필수 인자값
ACCOUNT = NAS계정 PASSWD = NAS계정암호 NAME = ADDON종류(nfs | gpu | kore)
옵션인자값
VERSION = ADDON버전(단수값지원) OSEXT = GPU ADDON설치시 설치대상서버의 OS종류(default=ubuntu2004)
ADDON Download시 $CUBE_HOME 에 저장합니다.
만일 $CUBE_HOME 이 설정되어 있지 않은 경우 명령어를 실행한 디렉토리에 Download 받습니다.
ADDON Download시 기존 ADDON폴더에 profile폴더가 존재 할 경우 기존 profile 폴더를 현재 시각을 붙여 백업하고 Download받습니다
Worker 노드만 추가/삭제만 지원합니다. Control Plane 은 추가할 수 없습니다.
아래 표와 같이 기존의 클러스터는 컨트롤 플레인 노드 1대, 워커 노드 2대가 설치되어있다고 가정합니다.
기존의 클러스터에 워커 노드 1대를 추가 방법을 설명합니다.
노드 삭제 역시 노드 추가와 동일한 방식으로 삭제하고 싶은 노드 IP를 cubectl.toml
에서 제거합니다.
control-plane node
192.168.11.1
172.16.11.1
1번 worker node
192.168.11.2
172.16.11.2
2번 worker node
192.168.11.3
172.16.11.3
3번 worker node(추가할 노드)
192.168.11.4
172.16.11.4
cubectl config sync
명령을 통해 클러스터 정보를 동기화 합니다. cubectl.toml
파일이 존재한다면 생략 가능합니다.
cubectl update-kubeconfig
명령을 통해 KUBECONFIG 파일을 다운로드 받습니다. acloud-client-kubeconfig
파일이 존재한다면 생략 가능합니다.
cubectl.toml
수정 - 추가할 노드의 IP를 추가로 입력합니다.
Info
cubectl update
실행합니다.
Private Registry, Control plane, Worker nodes는 Ubuntu20.04
환경에서 구성됩니다.
쿠버네티스 버전은 v1.26
입니다.
이미지 레지스트리 주소를 192.168.77.154
에서 regi.acornsoft.io
로 변경합니다.
192.168.77.154
regi.acornsoft.io
openssl.conf
파일에 도메인을 추가합니다.
도메인 디렉토리를 생성합니다.
harbor.yml
의 hostname을 IP에서 도메인으로 변경합니다.
install.sh 스크립트를 실행하여 변경 사항을 적용합니다.
install.sh 스크립트를 실행하는 대신 harbor 환경변수를 수정하고 harbor를 재시작해도 변경사항이 반영됩니다.
/etc/containerd/certs.d
에 도메인 디렉토리를 생성한 후, /etc/containerd/certs.d/192.168.77.154/hosts.toml
파일을 복사합니다.
/etc/containerd/certs.d/regi.acornsoft.io/hosts.toml
의 IP를 도메인으로 변경합니다.
/etc/containerd/config.toml
의 IP를 도메인으로 변경합니다.
containerd를 재시작합니다.
IP 인증서는 더이상 사용하지 않으므로 hosts.toml
파일에서 ca
라인을 삭제합니다.
Addon, Coredns, Static Pods 및 기타 yaml파일에 대한 IP 주소를 도메인으로 변경합니다.
패키지 저장소 주소를 도메인으로 변경합니다.
/etc/docker/certs.d/
에 도메인 디렉토리를 생성합니다.
control-plane 에서는 calico와 metrics server를 업데이트하는 작업을 추가로 해줍니다.
kube-proxy daemonset 이미지 주소를 도메인으로 변경합니다.
coredns deployment 이미지 주소를 도메인으로 변경합니다.
kubelet을 재시작해줍니다.
컨테이너 이미지를 확인합니다. 이미지가 모두 올라오기까지 몇 분 소요될 수 있습니다.
참고: Private Registry IP를 새로운 서버의 IP로 변경하는 경우에는 cubectl update 명령서를 사용하십시오.
설치 가능한 애드온 명칭 및 profile 조회
--kubeconfig 미입력 시 기본값 : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig
--profile 미입력 시 기본값 : ${CUBE_HOME}/extends/addon/profile/csi-driver-nfs/default.yaml
${CUBE_HOME}/extends/addon/profile/csi-driver-nfs/default.yaml
수정
server: '{{ NFS node IP }}' IP 수정
Addon 설치
Addon 설치 확인
Addon 삭제
GPU 노드에서 디바이스 확인
NVIDIA 드라이버 설치
NVIDIA 드라이버는 사전에 설치되어 있어야 합니다.
지원하는 NVIDIA 드라이버는 아래 링크 참조하세요.
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/driver/tags
폐쇄망 설치일 경우 GPU Addon 이미지 및 차트 업로드합니다.
관련 파일 및 업로드 방법은 escho@acornsoft.io 로 문의 바랍니다.
설치 가능한 애드온 명칭 및 profile 조회
--kubeconfig 미입력 시 기본값 : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig
--profile 미입력 시 기본 적용 파일 : ${CUBE_HOME}/extends/addon/profile/gpu-operator/default.yaml
${CUBE_HOME}/extends/addon/profile/gpu-operator/default.yaml
설치하려는 OSEXT의 yaml 수정
default.yaml은 ubuntu와 동일합니다.
redhat.yaml을 적용하려면 profile 인자값에 해당 파일명을 입력합니다.
ex) bin/cubectl addon enable gpu-operator --profile redhat
폐쇄망 설치 시 repository 값 앞부분에 "{{ registry_domain }}/" 을 추가합니다.
repository: repository: nvcr.io/nvidia
-> repository: {{ registry_domain }}/repository: nvcr.io/nvidia
repository: nvcr.io/nvidia/cloud-native
-> repository: {{ registry_domain }}/nvcr.io/nvidia/cloud-native
repository: nvcr.io/nvidia/k8s
-> repository: {{ registry_domain }}/nvcr.io/nvidia/k8s
Addon 설치
Addon 설치 확인
Addon 삭제
MIG를 지원하는 GPU인 경우
GPU별 지원되는 프로필 확인
NVIDIA Supported MIG Profiles 공식 가이드 에서 GPU별 지원되는 프로필을 확인합니다.
MIG 프로필은 configmap/default-mig-parted-config
에서도 확인 가능합니다.
kubectl describe cm default-mig-parted-config -n gpu-operator
GPU노드에 label에 프로필명 적용
적용 확인 예
자세한 내용은 NVIDIA MIG 공식 가이드 참조하세요.
MIG를 지원하지 않는 장비에서 하나의 GPU 분할 사용
ConfigMap 생성
Time slicing을 어떻게 나눌지 정의하는 configmap 작성합니다.
NVIDIA ClusterPolicy 객체에 생성된 configmap 지정
적용 확인
적용 후 gpu-feature-discovery, nvidia-device-plugin-daemonset pod가 자동으로 재시작되고 그 후에 gpu-node의 describe로 정상적으로 적용되었는지 확인가능합니다.
자세한 내용은 NVIDIA Time-Slicing 공식 가이드 참조하세요.