작업 시나리오
전제 조건
클러스터를 생성합니다. 자세한 내용은 클러스터 생성을 참고하십시오. Node.js가 설치된 노드에 로그인해야 합니다.
작업 단계
이미지 생성 코드 작성
애플리케이션 개발
1. 다음 명령어를 순서대로 실행하여 hellonode 디렉터리를 생성하고 이동합니다.
2. 다음 명령을 실행하여 server.js 파일을 생성하고 엽니다.
3. i를 눌러 편집 모드로 전환하고 다음 코드를 server.js에 복사합니다.
var http = require('http');
var handleRequest = function(request, response) {
console.log('Received request for URL: ' + request.url);
response.writeHead(200);
response.end('Hello World!');
};
var www = http.createServer(handleRequest);
www.listen(80);
‘Esc’ 키를 누르고 :wq를 입력하여 파일을 저장하고 반환합니다.
4. 다음 명령어를 실행하여 server.js 파일을 실행합니다.
5. 다음과 같은 방법으로 Hello World 프로그램을 테스트할 수 있습니다.
방법1: 노드에 다시 로그인하고 다음 명령을 실행합니다.
다음과 같은 정보가 나오면 Hello World 프로그램이 정상적으로 실행되고 있는 것입니다.
방법2: 로컬 브라우저를 열고 CVM 인스턴스의 공중망 IP 주소:구성된 포트 번호를 입력하여 프로그램에 액세스합니다. 포트 번호는 80입니다.
다음과 같은 정보가 나오면 Hello World 프로그램이 정상적으로 실행되고 있는 것입니다.
Docker 이미지 생성
1. 다음 명령어를 순차적으로 실행하여 hellonode 디렉터리에 Dockerfile 파일을 생성합니다.
2. i를 눌러 편집 모드로 전환하고 다음 코드를 Dockerfile 파일에 복사합니다.
FROM node:4.4
EXPOSE 80
COPY server.js .
CMD node server.js
‘Esc’ 키를 누르고 :wq를 입력하여 파일을 저장하고 반환합니다.
3. 노드는 docker를 설치하고 docker 서비스를 시작합니다.
yum install -y docker
systemctl start docker
4. 다음 명령어를 실행하여 이미지를 빌드합니다.
docker build -t hello-node:v1 .
5. 다음 명령어를 실행하여 빌드된 hello-node 이미지를 확인합니다.
다음 정보가 나오면 hello-node 이미지가 성공적으로 빌드된 것입니다. 다음 이미지와 같이 나중에 사용할 수 있도록 IMAGE ID를 기록해 두십시오.
Tencent Cloud 이미지 레지스트리에 이미지 업로드
다음 명령을 순서대로 실행하여 이미지를 Tencent Cloud 이미지 레지스트리에 업로드합니다.
docker tag IMAGEID ccr.ccs.tencentyun.com/네임스페이스/hello-node:v1
docker login ccr.ccs.tencentyun.com
docker push ccr.ccs.tencentyun.com/네임스페이스/hello-node:v1
설명
명령의 IMAGEID를 이미지 조회에서 기록된 IMAGEID로 바꿉니다. 명령의 네임스페이스를 생성한 네임스페이스로 바꿉니다. 네임스페이스가 없다면 먼저 네임스페이스를 생성하십시오. 자세한 내용은 네임스페이스 생성을 참고하십시오. 다음 정보가 나타나면 이미지가 성공적으로 업로드된 것입니다.
이미지를 사용하여 Hello World 서비스 생성
주의사항
Hello World 서비스를 생성 및 사용하기 전에 클러스터를 보유하고 있어야 합니다. 클러스터가 없다면 먼저 클러스터를 생성하십시오. 자세한 내용은 클러스터 생성을 참고하십시오. 1. TKE 콘솔에 로그인하고 왼쪽 사이드바에서 클러스터를 선택합니다. 2. 클러스터 관리 페이지에서 대상 클러스터의 ID를 클릭하여 서비스를 생성하고 클러스터 세부 정보 페이지로 이동합니다.
3. 워크로드 > Deployment를 선택하여 Deployment 페이지에서 다음 이미지와 같이 생성을 클릭합니다.
4. Deployment 생성 페이지에서 지시에 따라 워크로드의 기본 정보를 지정합니다. 아래 이미지를 참고하십시오.
Workload Name: 워크로드의 이름을 입력합니다. 이 예시에서 이름은 helloworld입니다.
Description: 관련 워크로드 정보를 지정합니다.
Namespace: 필요에 따라 네임스페이스를 선택합니다.
Tag: key = value 키 값 쌍을 지정합니다. 이 예시에서 기본값은 k8s-app = helloworld입니다.
OS 유형: 실제 필요에 따라 선택하십시오. 본문은 Linux를 예로 들어 설명합니다.
Volume: 요구 사항에 따라 마운트된 워크로드 볼륨을 설정합니다. 자세한 내용은 Volume 관리를 참고하십시오. 5. 지침에 따라 ‘Pod의 컨테이너’를 구성합니다.
5.1 컨테이너 이름을 입력합니다. 이 예시에서 이름은 helloworld입니다.
5.2 이미지 선택을 클릭하고 나타나는 대화 상자에서 내 이미지를 클릭합니다. 검색 상자를 사용하여 helloworld 이미지를 찾은 다음 확인을 클릭합니다.
주요 매개변수 정보는 다음과 같습니다.
Image Tag: 기본값인 latest를 사용합니다.
이미지 풀링 정책: 필요에 따라 사용 가능한 Always, IfNotPresent 및 Never 세 가지 정책 중 하나를 선택합니다. 이 예시에서는 기본 정책이 적용됩니다.
6. ‘Number of Pod’ 섹션에서 지침에 따라 서비스의 Pod 수를 설정합니다. 아래 이미지를 참고하십시오.
Manual adjustment: 포드 수를 지정합니다. 이 예에서는 1로 설정되어 있습니다. ‘+’ 또는 ‘-’를 클릭하여 포드 수를 변경할 수 있습니다.
7. 지침에 따라 워크로드에 대한 액세스 설정(서비스)을 구성합니다.
Service: ‘활성화’를 선택합니다.
서비스 액세스: ‘공중망 액세스’를 선택합니다.
로드 밸런서: 필요에 따라 로드 밸런서를 생성하거나 선택합니다.
포트 매핑: TCP 프로토콜을 선택하고 컨테이너 포트와 서비스 포트를 모두 포트 80으로 설정합니다.
주의사항
서비스가 속한 클러스터의 보안 그룹에 있는 노드 네트워크, 컨테이너 네트워크 및 포트 30000 - 32768은 인터넷에 개방되어 있어야 합니다. 그렇지 않으면 TKE를 사용하지 못할 수 있습니다. 자세한 내용은 TKE 보안 그룹 설정을 참고하십시오. 8. Deployment 생성을 클릭하여 Hello World 서비스를 생성합니다.
Hello World 서비스에 액세스
두 가지 방법 중 하나로 Hello World 서비스에 액세스할 수 있습니다.
CLB IP 주소로 Hello World 서비스에 액세스
1. TKE 콘솔에 로그인하고 왼쪽 사이드바에서 클러스터를 선택합니다. 2. 클러스터 관리 페이지에서 Hello World 서비스가 있는 클러스터 ID를 클릭하여 클러스터 세부 정보 페이지로 이동합니다.
3. Service 페이지에서 서비스 및 라우팅 > Service를 선택합니다.
4. 서비스 관리 페이지에서 다음 이미지와 같이 helloworld 서비스의 CLB IP 주소를 복사합니다.
5. 브라우저에 helloworld 서비스의 CLB IP를 붙여넣습니다.
서비스 이름으로 Hello World 서비스에 액세스
클러스터의 다른 서비스 또는 컨테이너는 서비스 이름을 사용하여 직접 액세스할 수 있습니다.
Hello World 서비스 인증
서비스 액세스 시 아래와 같은 정보가 나오면 Hello World 서비스가 성공적으로 생성된 것입니다.
컨테이너를 생성할 수 없는 경우 솔루션에 대한 이벤트 FAQ를 검색할 수 있습니다.