CLI에서 첫 번째 클래식 클러스터 설정
클래식 인프라
이 튜토리얼에서는 CLI를 사용하여 클래식 인프라에 Red Hat OpenShift on IBM Cloud 클러스터를 배포합니다.
대상
이 튜토리얼은 CLI를 사용하여 Red Hat OpenShift on IBM Cloud 클러스터를 처음 생성하는 방법을 배우고자 하는 클러스터 관리자를 대상으로 합니다.
목표
이 튜토리얼에서는 다음 과제를 수행하게 됩니다.
- 4개의 코어와 16GB메모리가 있는 2개의 작업자 노드가 있는 Washington, DC에 클러스터를 작성하십시오.
- Red Hat OpenShift 웹 콘솔을 여십시오.
- 샘플 앱을 배치하십시오.
- 외부 사용자가 서비스에 액세스할 수 있도록 라우트에 앱을 노출하십시오.
얻을 수 있는 것
이 튜토리얼에서는 CLI를 사용하여 다음 리소스를 작성합니다. 학습서를 완료한 후 보존하지 않으려는 경우 이러한 자원을 삭제하는 선택적 단계가 있습니다.
- 2개의 작업자 노드가 있는 클래식 클러스터
- 클러스터에 배치된 간단한 Hello World 앱
- 앱을 노출하기 위한 라우트
전제조건
-
권한을 확인하십시오. 계정 소유자라면 클러스터를 생성하는 데 필요한 권한을 이미 보유하고 있으므로 다음 단계로 진행할 수 있습니다. 계정 소유자가 아닌 경우에는 계정 소유자에게 API키를 설정하고 IBM Cloud IAM 에서 필요한 권한을 지정하도록 요청하십시오.
Red Hat OpenShift on IBM Cloud 클러스터 작성
-
계정 및 리소스 그룹에 로그인하십시오. 연합 계정이 있는 경우,
--sso옵션을 포함하십시오.ibmcloud login [-g RESOURCE GROUP] [--sso] -
다음 명령을 실행하여 워싱턴 D.C.에 4코어, 16GB 메모리를 갖춘 2개의 워커 노드로 구성된 버전 4.21 클러스터를 생성하십시오.
ibmcloud oc cluster create classic --name my-tutorial-cluster --location wdc04 --version 4.21_openshift --flavor b3c.4x16 --workers 2 --public-service-endpoint -
클러스터 작성을 완료하는 데 다소 시간이 걸릴 수 있습니다. 클러스터 상태가 정상을 나타내면 클러스터 네트워크 및 Ingress 컴포넌트가 Red Hat OpenShift 웹 콘솔 및 기타 라우트에 사용하는 클러스터 도메인을 배치하고 업데이트하는 데 약 10분 이상이 소요됩니다.
-
클러스터 세부사항을 나열하십시오. 클러스터 상태를 검토하고, Ingress 하위 도메인을 확인하고, 마스터 URL을 기록해 두십시오.
ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID -
클러스터에 맞는
kubeconfig구성 파일을 다운로드하여 추가하십시오.ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID -
브라우저에서 마스터 URL의 주소로 이동하고
/console을 추가하십시오. 예:https://c0.containers.cloud.ibm.com:23652/console. -
버전을 확인하여 클러스터에서
oc명령이 올바르게 실행되는지 확인하십시오.oc version출력 예
Client Version: v4.21.0 Kubernetes Version: v1.35.7.2관리자 권한이 필요한 오퍼레이션(예: 클러스터에 있는 모든 작업자 노드 또는 팟(Pod) 나열)을 수행할 수 없으면
ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin명령을 실행하여 클러스터 관리자에 적합한 TLS 인증서 및 권한 파일을 다운로드하십시오.
Red Hat OpenShift 콘솔 탐색
- 콘솔 에서 ‘ Red Hat OpenShift ’ 클러스터를 선택한 다음, ‘ OpenShift ’ 웹 콘솔을 클릭합니다.
- CLI에서 클러스터를 사용하려면 프로필
IAM#user.name@email.com> 로그인 명령 복사 을 클릭하세요. CLI를 사용하여 인증하도록 명령행에oc login토큰 명령을 표시하고 복사하십시오.
클러스터에 앱 배치
-
Hello World 앱에 적합한 프로젝트를 작성하십시오.
oc new-project hello-world -
oc new-app명령을 사용하여 샘플 앱 소스 코드에서 를 빌드하십시오.oc new-app --name hello-world https://github.com/IBM/container-service-getting-started-wt --context-dir="Lab 1"출력에 경고 메시지가 표시될 수 있지만 이 예제에는 영향을 주지 않습니다.
-
hello-world 서비스를 나열하고 서비스 이름을 기록해 두십시오. Ingress 제어기가 외부 트래픽 요청을 앱에 전달할 수 있도록 이러한 내부 클러스터 IP 주소의 트래픽을 청취합니다(서비스에 대한 라우트를 작성하지 않은 경우).
oc get svc -n hello-world출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-world ClusterIP 172.21.xxx.xxx <none> 8080/TCP 31m -
팟 (Pod) 을 나열하고 hello-world 팟 (Pod) 상태가 실행 중 이고
build및deploy팟 (Pod) 이 완료됨 인지 확인하십시오.oc get pods -n hello-world출력 예
NAME READY STATUS RESTARTS AGE hello-world-1-9cv7d 1/1 Running 0 30m hello-world-1-build 0/1 Completed 0 31m hello-world-1-deploy 0/1 Completed 0 31m -
공용으로 Hello world 서비스에 액세스할 수 있도록 라우트를 설정하십시오.
oc create route edge --service=hello-world -n hello-world -
호스트/포트 출력에서 라우트 호스트 이름 주소를 가져오십시오.
oc get route -n hello-world출력 예
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD hello-world hello-world-hello.world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud hello-world 8080-tcp edge/Allow None -
앱에 액세스하십시오. 라우트 호스트 이름에
https://를 추가하십시오. 노출된 서비스가 표시되기 전에 1분이 걸릴 수 있습니다.curl https://hello-world-hello-world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud출력 예
Hello world from hello-world-9cv7d! Your app is up and running in a cluster!
학습서 자원 정리
hello-world프로젝트의 자원을 나열하십시오.
출력 예oc get all -l app=hello-world -o name -n hello-worldpod/hello-world-1-dh2ff replicationcontroller/hello-world-1 service/hello-world deploymentconfig.apps.openshift.io/hello-world buildconfig.build.openshift.io/hello-world build.build.openshift.io/hello-world-1 imagestream.image.openshift.io/hello-world imagestream.image.openshift.io/node route.route.openshift.io/hello-world- 자원을 삭제하십시오.
oc delete all -l app=hello-world -n hello-world
다음에 수행할 작업
Red Hat OpenShift on IBM Cloud 의 인기 클러스터 애드온 두 개를 설치하세요: IBM Cloud Logs 그리고 IBM Cloud Monitoring.