강좌
클라우드/리눅스에 관한 강좌입니다.
클라우드 분류

[KT클라우드]DX Container 이용 방법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

DX Container 동영상 가이드
Cluster 생성
※ Cluster 생성 오류 발생 시, 브라우저 크롬 캐시 삭제 후 Cluster 생성 재시도
cloud.kt.com의 콘솔 화면에서 좌측 'Container' 상품 클릭 후 'Cluster 생성' 클릭
클러스터 명과 DMZ Tier, Private Tier를 선택하고 '다음' 클릭
Private Tier와 DMZ Tier에 생성을 원하는 Worker Node 스펙과 수량을 선택, '다음' 버튼 클릭
Worker Node에 Disk 수정 변경을 원할 시 'WorkerNode 추가 Disk 사용' bar 활성화 후 수정
Worker Node 접속을 위해 원하는 Key Pair 선택
(Key Pair는 'Server'-'SSH Key Pair' 에서 생성 가능)
NAS 볼륨 생성을 위해 용량(GB) 입력 후 '다음' 클릭 (최소 1,000GB)
최종 확인 과정으로 인프라 생성 Summary 확인 후 '생성하기' 클릭
Cluster 조회
클좌측 메뉴 중 Container 클릭하여 조회
좌측 상단 '···' 버튼 클릭 후 Cluster 상세 정보 조회 가능
DX Container Portal 접속
Cluster 리스트에서 'Container 콘솔' 버튼 클릭
ㅁ DX Container 포탈을 통한 Cluster 관리 시작
DX Container 포탈의 상세 가이드 확인 방법
포탈 하단에 매뉴얼 다운로드 클릭
Worker Node 추가
Cluster 리스트에서 Worker Node를 추가하고자 하는 클러스터 체크
좌측 상단 '···' 버튼 클릭 후 드롭다운메뉴에서 'Worker Node 추가' 선택
'Node 추가' 팝업창에서 추가할 Worker Node 개수를 입력 후 '추가하기' 버튼 클릭
일정 시간 이후 Node 추가 작업이 정상적으로 완료되면, 클러스터 상태가 '생성 중'에서 '사용'으로 업데이트
Worker Node 삭제
Cluster 리스트에서 Worker Node를 삭제하고자 하는 클러스터 체크
좌측 상단 '···' 버튼 클릭 후 드롭다운 메뉴에서 'Node 삭제' 선택
'Node 삭제' 팝업창에서 삭제할 Worker Node를 선택 후 '삭제하기' 버튼 클릭
팝업창이 뜨면, '삭제' 버튼 클릭
'Node 삭제' 팝업창에서 삭제된 것 확인 가능
Cluster 포트포워딩 방법
먼저 외부에서 접속 허용하기 위해서는 추가적인 접속 설정 필요
'Server'-'Server' 으로 이동하여 원하는 Cluster의 Worker Node 선택 후 '접속설정' 버튼 클릭
(Master Node가 아닌, Worker Node만 설정 가능)
공인IP를 선택하고 공인Port 번호를 입력 후 '추가' 버튼 클릭
(공인IP 는 새로 생성한 'ASSOCIATE' TYPE이나 'PORTFOWARDING' TYPE의 IP 선택)
(공인IP 의 TYPE은 'Server'-'Networking' 에서 확인 가능')
'Server'-'Networking' 으로 이동하여 위에서 설정했던 공인IP 선택 후, '방화벽' 버튼 클릭
설정했던 공인IP 와 공인Port 번호가 설정된 것을 선택 후, '추가' 버튼 클릭
추가된 것을 확인
Key Pair 사용한 Cluster 접근 방법
클러스터 생성 시, 선택했던 Key Pair 사용
(Cluster의 Worker Node 포트 포워딩 설정 완료 후 접근 가능)
1-1) MacOS 또는 Linux 환경에서 Cluster 접근하기
MacOS의 경우, command + Space를 누른 뒤, '터미널'을 입력하여 터미널을 실행
기타 Linux의 경우, 시작 버튼을 눌러 Terminal을 실행
이후 서버 생성 시 사용한 키가 있는 디렉토리로 이동
해당 키파일(예: keypair1.pem)의 권한을 변경해야 SSH 접속이 가능
터미널 내 아래와 같이 입력하여 키파일의 권한을 변경
$ chmod 600 keypair1.pem
SSH 명령어를 통해 키파일을 통해 서버에 접속
※ CentOS 서버는 계정명 centos, Ubuntu 서버는 계정명 ubuntu로 접근
$ ssh -i [키파일명] [계정명]@[IP] -p [포트]
※ 포트의 경우, 접속설정 시 설정된 공인 포트를 입력
(예: Worker Node의 22번 포트를 10022번 포트에 연결하였을 경우, -p 10022로 입력)
1-2) Windows10에서 Cluster 접근하기
Putty가 없을 경우 https://putty.org/ 로 이동하여 설치 진행
Putty를 통해 서버에 접근하려면, 포탈에서 받은 pem 확장자 파일을 ppk로 변경
'시작' - 'PuTTYgen' 입력하여 실행
(Putty 설치 시, PuTTYgen 자동 설치)
'Load' 버튼을 클릭하여 pem 파일 불러오기
pem 파일이 보이지 않을 경우, 아래 그림과 같이 확장자를 'All Files'로 변경
pem 파일을 성공적으로 불러오면, 다음과 같은 팝업창 발생('확인' 버튼 클릭)
'Save Private key' 클릭
'예' 버튼 클릭 후 ppk 파일 저장
'시작'-'PuTTy'를 입력하여 PuTTy 프로그램을 실행
변경한 ppk 파일을 사용
좌측 'Connection'-'SSH'-'Auth' 로 이동하여, 'Browse' 버튼 클릭
변경한 ppk 파일 선택 후 '열기' 버튼 클릭
좌측 'Session'으로 이동하여, Host Name에 [계정명]@[공인IP]를 입력
※ CentOS 서버는 계정명 centos, Ubuntu 서버는 계정명 ubuntu로 접근
Port의 경우, 접속 설정에 사용한 공인 포트 번호를 입력
'Open' 버튼을 클릭하여 접속 시도
접속 확인
OpenShift CLI(oc) 사용한 Cluster 접근 방법
1-1) Windows OS 일 경우
해당 OS에 맞는 'openshift-origin-client-tools-v3.11.0-0cbc58b-windows.zip' 파일 다운로드
압축 해제 후 'oc.exe' 파일을 C:\Windows\System32 경로로 이동
Windows CMD 창에서 'oc' 명령어 사용 시 다운로드 확인
접속하고자 하는 Cluster 선택 후, 좌측 상단 '···' 버튼 클릭 후 드롭다운 메뉴에서 '클러스터 정보' 클릭
자동화 툴 콘솔 URL 확인
CMD 창에서 'oc login [자동화 툴 콘솔 URL] -u [유저 아이디(초기 접속 시 안내된 아이디 입력)] -p [비밀번호(초기 접속 시 안내된 password 입력)]' 입력
CMD 창에서 oc 명령어 사용 가능
1-2) Linux OS 일 경우
1-2-1) 다운로드 파일 사용
해당 OS에 맞는 'openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz' 파일 다운로드
다운로드 된 파일 확인
다음 명령어 수행
$mkdir [폴더명]
$tar -zxvf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz -C [폴더명]
$echo 'export PATH=$PATH:~/[폴더명]' >> ~/.bashrc && source ~/.bashrc
위의 명령어 정상적으로 수행되었는지 확인
'oc' 명령어 사용 확인
접속하고자 하는 Cluster 선택 후, 좌측 상단 '···' 버튼 클릭 후 드롭다운 메뉴에서 '클러스터 정보' 클릭
자동화 툴 콘솔 URL 확인
CMD 창에서 'oc login [자동화 툴 콘솔 URL] -u [유저 아이디(초기 접속 시 안내된 아이디 입력)] -p [비밀번호(초기 접속 시 안내된 password 입력)]' 입력
oc 명령어 사용 가능
1-2-1) yum 사용
yum-config-manager' 사용을 위해, 'yum-utils' 설치
$yum install yum-utils
$yum clean all
$yum update
업데이트 완료 확인
다시 업데이트 진행
$yum clean all
$yum update
업데이트 최종 완료
레포지토리 추가
$yum install centos-release-openshift-origin311.noarch
centos-ansible26 비활성화
$yum-config-manager --disable centos-ansible26
openshift client 설치
$yum install origin-clients
접속하고자 하는 Cluster 선택 후, 좌측 상단 '···' 버튼 클릭 후 드롭다운 메뉴에서 '클러스터 정보' 클릭
자동화 툴 콘솔 URL 확인
'oc login [자동화 툴 콘솔 URL] -u [유저 아이디(초기 접속 시 안내된 아이디 입력)] -p [비밀번호(초기 접속 시 안내된 password 입력)]' 입력
oc 명령어 확인
1-3) Mac OS 일 경우
Mac OS의 경우 Mac OS용 패키지 관리자인 'HomeBrew'를 통해 간편하게 openshift cli를 설치하고 cluster에 접근 가능
'HomeBrew' 설치를 위해 Mac OS의 터미널에 접속한 후 다음 명령어 수행 (HomeBrew 설치는' https://brew.sh/index_ko' 참조)
그 후, Mac 사용자 Password를 입력하여 명령어 실행.
명령어 실행 후, 설치를 계속 진행하기 위해 'RETURN' KEY 입력(Window의 Enter key와 같은 위치에 있는 key 입력)
'RETURN' KEY 입력시 아래와 같이 설치 진행
'Installation successful!' 문구가 뜨며 설치 완료.
설치 완료 후, PATH에 HomeBrew 경로 추가를 위한 명령어 안내
안내된 명령어 입력후(echo 'eval~'), brew help를 통해 설치가 제대로 완료되었는지 확인
설치가 제대로 완료되었다면 아래와 같이 동작
HomeBrew가 제대로 설치되었다면, brew install명령어를 이용하여 openshift-cli 설치
다음 명령어 입력
$brew install openshift-cli
$oc version 입력하여, 설치확인
접속하고자 하는 Cluster 선택 후, 좌측 상단 '···' 버튼 클릭 후 드롭다운 메뉴에서 '클러스터 정보' 클릭
자동화 툴 콘솔 URL 확인
$oc login [자동화 툴 콘솔 URL] -u [유저 아이디(초기 접속 시 안내된 아이디 입력)] -p [비밀번호(초기 접속 시 안내된 password 입력)]' 입력
Cluster내 기본적으로 제공되는 Docker Repository 사용방법
cluster 내에 기본적으로 설치되는 Docker Repository 사용 방법은 아래와 같습니다.
일단 cluster의 worker node에 ssh로 접속
그 뒤, 'oc login [자동화 툴 콘솔 URL] -u [유저 아이디(초기 접속 시 안내된 아이디 입력)] -p [비밀번호(초기 접속 시 안내된 password 입력)]'
'Login successful' 이 뜨며 로그인 성공. 기본적으로 default project를 사용
oc project [프로젝트 명]을 이용하여 원하는 프로젝트를 사용가능
oc get route 명령어를 통해 Docker Repository 주소 잦기
'docker-registry-default.xxx' 형식
'/etc/sysconfig/docker' 파일 vi로 접속(Read Only 파일이기 때문에, 편집하기 위해 sudo사용)
아래와 같은 화면이 뜨게 되면, --insecure에 해당 docker registry 추가.
(빨간색으로 체크해 놓은 부분)
그 뒤 도커 재시작
재시작 완료 후, docker version 명렁어 사용하여 정상작동 확인
$docker login [docker registry주소] - u root -p $(oc whoami -t) 명령어 이용하여 docker registry 로그인
사용예시를 위해 busybox:1.32.1 버전을 dockerhub에서 pull한 뒤, docker images 명령어 이용하여 정상적으로 pull 되었는지 확인
docker tag [기존이미지:tag] [docker registry 주소/namespace/image_name:tag] 사용하여 기존 이미지와 이름만 다른 이미지 생성
docker push [docker registry주소/namespace/image_name:tag] 명령어 이용하여 Docker Repository로 push
로컬이 아닌, 클러스터에 설치 된 Docker Repository에 이미지가 push 되었는지 확인하기 위하여, 로컬 registry에서 기존 busybox 이미지 모두 삭제 (docker rmi 명령어 사용)
이미지 삭제 후,docker run [Docker-registry주소/namespace/iamge_name:tag] 를 실행하면 다음과 같은 화면이 뜨게 됨
중간에 로컬저장소에서 이미지를 가져올 수 없으니, 클러스터에 설치 된 docker registry에서 pull해서 가져온다는 문구 확인 가능
그 뒤 docker ps -a 명령어 사용하여 컨테이너 목록 확인하면, 이미지가 정상적으로 pull 되어 실행되었음을 확인 가능
Openshift SCC(Security Context Constraint) 설정
Openshift 에서는 Service Account를 통해 권한 변경이 가능
기본적인 Openshift default serviceaccount 는 "restrict" 으로, 일반 권한의 UID로 컨테이너가 실행
root 권한이 필요한 경우 권한을 변경하여 사용
해당 VM에서 Openshift login 진행
#oc login [자동화 툴 콘솔 URL] -u [유저 아이디(초기 접속 시 안내된 아이디 입력)] -p [비밀번호(초기 접속 시 안내된 password 입력)]
해당 Service Account에 SCC(Security Context Constraint) 권한 추가
#oc adm policy add-scc-to-user anyuid system:serviceaccount:[namespace명]:default
root 권한으로 실행하도록 배포 파일 변경
#oc edit deployment [deployment 파일명]
spec.template.spec.securityContext 필드 수정
spec.template.spec.securityContext: {} -> spec.template.spec.securityContext: runAsUser:0
Cluster에 Container 배포 방법
Cluster에 Container를 배포하는 방법으로는 Deployment file 작성으로 가능
아래의 명령어 입력 후, 아래와 같이 원하는 container(pod) spec으로 작성
$vi [deployment file명]
아래의 명령어를 통해 container(pod) 생성 및 확인
$oc create -f [deployment file명]
$oc get pods
Cluster에 생성된 Container 외부 노출 방법
Cluster에 Container를 외부로 노출하는 방법은 Service와 Routes를 통해 가능
아래의 명령어 입력 후, 원하는 service spec으로 작성
$vi [service file명
아래의 명령어를 통해 container(pod) 생성 및 확인
$oc create -f [service file명]
$oc get service
다음으로는 Route를 사용해서 해당 service를 외부로 노출
$oc expose service/[service명] --name [route명]
확인된 주소로 들어가면 페이지를 확인 가능
Cluster에 생성된 Volume을 Container에 연동하는 방법
Cluster에 연동된 Volume을 Container에 연동하는 방법은 pv와 pvc를 통해 가능
(pv와 pvc에 대한 내용은 KT Cloud 블로그를 통해 확인 가능 https://tech.ktcloud.com/ )
먼저 Container 생성 시, 연동된 NFS Volume 정보에 대해 확인
좌측 상단 '···' 버튼 클릭 후 드롭다운 메뉴에서 '클러스터 정보' 선택하여 확인 가능
해당 path에 연동된 pv 생성
아래의 명령어 입력 후, 원하는 volume spec으로 작성
$vi [pv file명]
아래의 명령어를 통해 pv 생성 및 확인
$oc create -f [pv file명]
$oc get pv
pv와 연동하기 위한 pvc를 생성
아래의 명령어 입력 후, 원하는 spec으로 작성
$vi [pvc file명]
아래의 명령어를 통해 pvc 생성 및 확인
$oc create -f [pvc file명]
$oc get pvc
pv와 pvc연동된 것을 확인
$oc get pv
container 배포 시 해당 volume을 사용하고 싶다면, volumeMounts에 해당 pvc명을 기입해 사용
예를 들어, 아래와 같이 작성
$vi [pod 명]
명령어를 통해 container(pod) 생성 및 확인
volume에 연결된 Pod인지 확인하기 위해, mount path로 연결한 위치에 index.html 생성
앞서 생성했던 container(pod)로 들어가서 확인

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,032 명
  • 현재 강좌수 :  35,773 개
  • 현재 접속자 :  128 명