1. 환경 구성
1.1 DB,NoSql 기동
-
GCP에 docker로 미리 만들어 둔 DB와 NoSql을 VM 시작과 함께 자동으로 시작되도록 함
-
VM에 shell로 접속하여 docker ps 명령어로 기동 여부를 확인 함
[summit@sgs323-sgs-docker ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 56d6a51a61a2 sample-postgres "docker-entrypoint..." 2 weeks ago Up 2 minutes 0.0.0.0:5432->5432/tcp s-postgres 10dc98c0c838 sample-cassandra "/docker-entrypoin..." 10 months ago Up 2 minutes 7000-7001/tcp, 7199/tcp, 9160/tcp, 0.0.0.0:9042->9042/tcp s-cassandra
1.2 DNS 설정
-
godaddy.com > DNS 메뉴 선택 > 영역 관리 메뉴 선택 > 설정할 도메인 검색
-
유형 A 값을 방금 기동한 VM 외부 IP로 변경
2. crc(Code Ready Containers) 기동
- openshift 테스트를 위해 로컬에 구성한 crc를 기동함
- 참고로 crc는 macOS에서는 HyperKit이라는 오픈소스 하이퍼바이저 상에서 기동됨
crc start INFO Checking if running as non-root INFO Checking if podman remote executable is cached INFO Checking if admin-helper executable is cached INFO Checking minimum RAM requirements INFO Checking if HyperKit is installed INFO Checking if crc-driver-hyperkit is installed INFO Checking file permissions for /etc/hosts INFO Checking file permissions for /etc/resolver/testing INFO Starting CodeReady Containers VM for OpenShift 4.6.15... INFO CodeReady Containers VM is running INFO Starting network time synchronization in CodeReady Containers VM INFO Network restart not needed INFO Check internal and public DNS query ... INFO Check DNS query from host ... INFO Verifying validity of the kubelet certificates ... INFO Starting OpenShift kubelet service INFO Starting OpenShift cluster ... [waiting 3m] INFO Updating kubeconfig WARN The cluster might report a degraded or error state. This is expected since several operators have been disabled to lower the resource usage. For more information, please consult the documentation Started the OpenShift cluster To access the cluster, first set up your environment by following the instructions returned by executing 'crc oc-env'. Then you can access your cluster by running 'oc login -u developer -p developer https://api.crc.testing:6443'. To login as a cluster admin, run 'oc login -u kubeadmin -p APBEh-jjrVy-hLQZX-VI9Kg https://api.crc.testing:6443'. You can also run 'crc console' and use the above credentials to access the OpenShift web console. The console will open in your default browser.
- 아래 명령어로 로그인 수행
oc login -u kubeadmin -p APBEh-jjrVy-hLQZX-VI9Kg
- 아래 명령어로 구성된 crc 환경에 대한 리소스 정보 확인
oc describe nodes <생략> Capacity: cpu: 4 ephemeral-storage: 31953900Ki hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 9193944Ki pods: 250 Allocatable: cpu: 4 ephemeral-storage: 29448714192 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 9091544Ki pods: 250 <중략> Allocated resources: (Total limits may be over 100 percent, i.e., overcommitted.) Resource Requests Limits -------- -------- ------ cpu 2780m (69%) 1 (25%) memory 7503Mi (84%) 1536Mi (17%) ephemeral-storage 0 (0%) 0 (0%)
설명 - 사용할 수 있는 리소스 모니터링 - 예를 들어 2코어 VM 5대로 node를 구성하였다면 사용할 수 있는 CPU의 총량은 10코어(10,000ms)가 됨 - 그러나 산술적으로 도출된 값을 모두 사용 할 수 있는 것은 아니므로 정확하게 확인하는 방법은 oc describe nodes 명령어를 통해 상세정보를 확인해야 함 - 본 테스트 환경은 단일 노드에 Master,Worker 노드가 구성되어 있음 - Node의 사용 가능 리소스는 CPU 총 4코어, MEM 약 9GB 정도 사용 가능함 - CPU request에 설정된 값은 전체 4000m의 69%인 2780m 임 - CPU limits에 설정된 값은 1000m (1core)임 - MEM은 7503Mi 요청되었고 제한 값은 1536Mi 임
3. Pod 기동
- Pod 기동은 아래 new-app 명령어를 통해 기동
oc new-app sftth/sgs-tomcat9:1.7 --name=sgs
-
콘솔 창에 crc console 입력하면 브라우저에 crc 콘솔화면이 표출되는데 로그인하여 다음과 같이 Deployment Config, Pod 생성 확인 (로그인 정보는 콘솔 로그인 정보와 같음)
Pod 기동 시 1000380000 이런 UID로 기동하면서 Permission Denied 발생 시 관련 사항 참고 Support arbitrary user ids 하여 Dockerfile로 이미지 생성 시점에 조치가 필요함
4. Pod 리소스 설정
- Pod yaml 파일을 열어서 CPU와 메모리 값을 아래와 같이 설정함.
- Pod의 CPU는 먼저 0.5 vCore 만큼 쓰다가 부하시 최대 1 vCore만 사용하도록 함
-
Pod의 메모리는 512Mi만 쓰다가 부하시 최대 1Gi만 사용 가능하도록 설정 함
<생략> containers: - name: sgs image: >- sftth/sgs-tomcat9@sha256:xxxxx resources: limits: cpu: '1' memory: 1Gi requests: cpu: 500m memory: 512Mi <생략>
댓글남기기