1. 환경 구성

1.1 DB,NoSql 기동

  • GCP에 docker로 미리 만들어 둔 DB와 NoSql을 VM 시작과 함께 자동으로 시작되도록 함 vm start

  • 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로 변경

    dns 설정

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 생성 확인 (로그인 정보는 콘솔 로그인 정보와 같음)

    dns 설정
    dns 설정

    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
    <생략>
    

참고

Docker Container 일반 유저로 실행

리눅스 포트 사용하는 프로세스 확인

도커 컨테이너에 파일 전송하는 방법

도커 이미지 만들기

카테고리:

업데이트:

댓글남기기