시작하기 가이드

Red Hat OpenShift Local 2.13

Red Hat OpenShift Local 사용 및 개발에 대한 빠른 시작 가이드

Fabrice Flore-Thebault

Red Hat Developer Group Documentation Team

초록

이 가이드에서는 Red Hat OpenShift Local을 사용하여 속도를 높이는 방법을 설명합니다. 호스트 워크스테이션(Microsoft Windows, macOS 또는 Red Hat Enterprise Linux)에서 Red Hat OpenShift Container Platform 4를 사용하여 컨테이너화된 애플리케이션을 개발하는 첫 번째 단계 및 예제가 포함되어 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. Red Hat OpenShift Local 소개

1.1. Red Hat OpenShift Local 정보

Red Hat OpenShift Local은 최소 OpenShift Container Platform 4 클러스터 및 Podman 컨테이너 런타임을 로컬 컴퓨터에 제공합니다. 이러한 런타임은 개발 및 테스트 목적으로 최소한의 환경을 제공합니다. Red Hat OpenShift Local은 주로 개발자의 데스크탑에서 실행되는 것을 목표로 합니다. 헤드리스 또는 다중 개발자 설정과 같은 다른 OpenShift Container Platform 사용 사례의 경우 전체 OpenShift 설치 프로그램을 사용합니다.

OpenShift Container Platform에 대한 자세한 내용은 OpenShift Container Platform 설명서 를 참조하십시오.

Red Hat OpenShift Local에는 원하는 컨테이너 런타임을 사용하여 Red Hat OpenShift Local 인스턴스와 상호 작용하는 crc CLI(명령줄 인터페이스)가 포함되어 있습니다.

1.2. 프로덕션 OpenShift Container Platform 설치와의 차이점

Red Hat OpenShift Local의 OpenShift 사전 설정은 다음과 같은 주요 차이점이 있는 일반 OpenShift Container Platform 설치를 제공합니다.

  • OpenShift Container Platform 클러스터는 임시이며 프로덕션용이 아닙니다.
  • Red Hat OpenShift Local에는 최신 OpenShift Container Platform 버전으로의 업그레이드 경로가 지원되지 않습니다. OpenShift Container Platform 버전을 업그레이드하면 재현하기 어려운 문제가 발생할 수 있습니다.
  • 컨트롤 플레인 및 작업자 노드로 작동하는 단일 노드를 사용합니다.
  • 기본적으로 Cluster Monitoring Operator를 비활성화합니다. 이 비활성화된 Operator로 인해 웹 콘솔의 해당 부분이 작동하지 않습니다.
  • OpenShift Container Platform 클러스터는 인스턴스 라는 가상 머신에서 실행됩니다. 이로 인해 특히 외부 네트워킹의 차이가 발생할 수 있습니다.

Red Hat OpenShift Local에서 제공하는 OpenShift Container Platform 클러스터에는 다음과 같은 사용자 정의 불가능한 클러스터 설정도 포함되어 있습니다. 이러한 설정은 수정할 수 없습니다.

  • *.crc.testing 도메인을 사용합니다.
  • 내부 클러스터 통신에 사용되는 주소 범위입니다.

    • 클러스터에서 172 주소 범위를 사용합니다. 이로 인해 프록시가 동일한 주소 공간에서 실행되는 경우 문제가 발생할 수 있습니다.

2장. 설치

2.1. 최소 시스템 요구 사항

Red Hat OpenShift Local에는 다음과 같은 최소 하드웨어 및 운영 체제 요구 사항이 있습니다.

2.1.1. 하드웨어 요구 사항

Red Hat OpenShift Local은 AMD64, Intel 64 및 Apple Silicon 아키텍처에서 지원됩니다. Red Hat OpenShift Local은 중첩된 가상화를 지원하지 않습니다.

원하는 컨테이너 런타임에 따라 Red Hat OpenShift Local에는 다음과 같은 시스템 리소스가 필요합니다.

2.1.1.1. OpenShift Container Platform의 경우

  • 4개의 물리적 CPU 코어
  • 9GB의 여유 메모리
  • 35GB의 스토리지 공간
참고

OpenShift Container Platform 클러스터에는 Red Hat OpenShift Local 인스턴스에서 실행하는 데 필요한 최소 리소스가 필요합니다. 일부 워크로드에는 더 많은 리소스가 필요할 수 있습니다. Red Hat OpenShift Local 인스턴스에 더 많은 리소스를 할당하려면 인스턴스 구성을 참조하십시오.

2.1.1.2. Podman 컨테이너 런타임의 경우

  • 2개의 물리적 CPU 코어
  • 2GB의 여유 메모리
  • 35GB의 스토리지 공간

2.1.2. 운영 체제 요구 사항

Red Hat OpenShift Local에는 다음과 같은 최소 버전의 지원되는 운영 체제가 필요합니다.

2.1.2.1. Microsoft Windows

  • Microsoft Windows에서 Red Hat OpenShift Local에는 Windows 10 Fall Creators Update(버전ECDHE9) 이상이 필요합니다. Red Hat OpenShift Local은 이전 버전의 Microsoft Windows에서 작동하지 않습니다. Microsoft Windows 10 Home Edition은 지원되지 않습니다.

2.1.2.2. macOS

  • macOS에서 Red Hat OpenShift Local에는 macOS 11 Big Sur 이상이 필요합니다. Red Hat OpenShift Local은 이전 버전의 macOS에서 작동하지 않습니다.

2.1.2.3. Linux

  • Red Hat은 Red Hat Enterprise Linux 및 CentOS 8 또는 9의 두 가지 최신 마이너 릴리스와 Fedora의 두 가지 안정적인 두 가지 릴리스에서 Red Hat OpenShift Local에 대한 지원을 제공합니다.
  • Red Hat Enterprise Linux를 사용하는 경우 Red Hat OpenShift Local을 실행하는 시스템을 Red Hat 고객 포털에 등록되어 있어야 합니다.
  • Ubuntu 18.04 LTS 이상 및 Debian 10 이상은 지원되지 않으며 호스트 컴퓨터를 수동으로 설정해야 할 수 있습니다.
  • Linux 배포에 필요한 패키지를 설치하는 데 필요한 소프트웨어 패키지를 참조하십시오.

2.2. Linux에 필요한 소프트웨어 패키지

Red Hat OpenShift Local에는 Linux에서 실행하려면 libvirtNetworkManager 패키지가 필요합니다. 다음 표를 참조하여 Linux 배포에 대해 이러한 패키지를 설치하는 데 사용되는 명령을 찾습니다.

표 2.1. 배포별 패키지 설치 명령

Linux 배포설치 명령

Fedora

sudo dnf install NetworkManager

Red Hat Enterprise Linux/CentOS

su -c 'yum install NetworkManager'

Debian/Ubuntu

sudo apt install qemu-kvm libvirt-daemon libvirt-system network-manager

2.3. Red Hat OpenShift Local 설치

Red Hat OpenShift Local은 Red Hat Enterprise Linux에서 이식 가능한 실행 파일로 제공됩니다. Microsoft Windows 및 macOS에서 Red Hat OpenShift Local은 안내된 설치 프로그램을 사용하여 사용할 수 있습니다.

사전 요구 사항

절차

  1. 플랫폼용 Red Hat OpenShift Local 최신 릴리스를 다운로드합니다.
  2. Microsoft Windows에서 아카이브의 내용을 추출합니다.
  3. macOS 또는 Microsoft Windows에서 안내된 설치 관리자를 실행하고 지침을 따릅니다.

    참고

    Microsoft Windows에서는 로컬 C:\ 드라이브에 Red Hat OpenShift Local을 설치해야 합니다. 네트워크 드라이브에서 Red Hat OpenShift Local을 실행할 수 없습니다.

    Red Hat Enterprise Linux에서 아카이브가 ~/Downloads 디렉터리에 있다고 가정하면 다음 단계를 따르십시오.

    1. 아카이브의 내용을 추출합니다.

      $ cd ~/Downloads
      $ tar xvf crc-linux-amd64.tar.xz
    2. ~/bin 디렉터리가 없는 경우 생성하고 crc 실행 파일을 복사합니다.

      $ mkdir -p ~/bin
      $ cp ~/Downloads/crc-linux-*-amd64/crc ~/bin
    3. $PATH~/bin 디렉토리를 추가합니다.

      $ export PATH=$PATH:$HOME/bin
      $ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

2.4. 사용량 데이터 수집 정보

Red Hat OpenShift Local은 개발을 지원하기 위해 익명의 사용 데이터 수집에 사용하기 전에 사용자에게 메시지를 표시합니다. 개인 식별 정보는 수집되지 않습니다. 사용 데이터 수집에 대한 동의는 언제든지 승인하거나 해지할 수 있습니다.

추가 리소스

2.5. 사용량 데이터 수집 구성

사용량 데이터 수집에 대한 동의는 언제든지 다음 설정 명령을 사용하여 승인하거나 취소할 수 있습니다.

참고

Telemetry 동의에 대한 변경 사항은 실행 중인 인스턴스를 수정하지 않습니다. 다음에 crc start 명령을 실행할 때 변경 사항이 적용됩니다.

절차

  • Telemetry를 수동으로 활성화하려면 다음 명령을 실행합니다.

    $ crc config set consent-telemetry yes
  • Telemetry를 수동으로 비활성화하려면 다음 명령을 실행합니다.

    $ crc config set consent-telemetry no

추가 리소스

2.6. Red Hat OpenShift Local 업그레이드

Red Hat OpenShift Local 실행 파일의 최신 버전은 이전 버전과의 잠재적 불일치를 방지하기 위해 수동으로 설정해야 합니다.

절차

  1. Red Hat OpenShift Local의 최신 릴리스를 다운로드합니다.
  2. 기존 Red Hat OpenShift Local 인스턴스를 삭제합니다.

    $ crc delete
    주의

    crc delete 명령을 실행하면 Red Hat OpenShift Local 인스턴스에 저장된 데이터가 손실됩니다. 이 명령을 실행하기 전에 인스턴스에 저장된 원하는 정보를 저장합니다.

  3. 이전 crc 실행 파일을 최신 릴리스의 실행 파일로 교체합니다. 버전을 확인하여 새 crc 실행 파일이 사용 중인지 확인합니다.

    $ crc version
  4. 새로운 Red Hat OpenShift Local 릴리스를 설정합니다.

    $ crc setup
  5. 새 Red Hat OpenShift Local 인스턴스를 시작합니다.

    $ crc start

3장. Red Hat OpenShift Local 사용

3.1. 사전 설정 정보

Red Hat OpenShift Local 사전 설정은 관리형 컨테이너 런타임 및 인스턴스에서 실행하는 데 필요한 시스템 리소스의 하한을 나타냅니다. Red Hat OpenShift Local은 OpenShift Container Platform 및 Podman 컨테이너 런타임에 대한 사전 설정을 제공합니다.

Microsoft Windows 및 macOS에서 Red Hat OpenShift Local 안내 설치 프로그램에서 원하는 사전 설정을 입력하라는 메시지를 표시합니다. Linux에서는 OpenShift Container Platform 사전 설정이 기본적으로 선택됩니다. crc setup 명령을 실행하기 전에 crc config 명령을 사용하여 이 선택을 변경할 수 있습니다. Microsoft Windows 및 macOS의 시스템 시험판 또는 지원되는 모든 운영 체제의 명령줄에서 선택한 사전 설정을 변경할 수 있습니다. 한 번에 하나의 사전 설정만 활성화할 수 있습니다.

추가 리소스

  • 각 사전 설정의 최소 시스템 요구 사항에 대한 자세한 내용은 최소 시스템 요구 사항을 참조하십시오.
  • 선택한 사전 설정 변경에 대한 자세한 내용은 선택한 사전 설정 변경을 참조하십시오.

3.2. Red Hat OpenShift Local 설정

crc setup 명령은 Red Hat OpenShift Local 인스턴스에 대한 호스트 시스템 환경을 설정하는 작업을 수행합니다.

crc setup 명령은 ~/.crc 디렉터리가 아직 없는 경우 해당 디렉터리를 생성합니다.

주의

새 버전을 설정하는 경우 새 Red Hat OpenShift Local 릴리스를 설정하기 전에 인스턴스에 대한 모든 변경 사항을 캡처하십시오.

사전 요구 사항

  • Linux 또는 macOS에서 사용자 계정에 sudo 명령을 사용할 수 있는 권한이 있는지 확인합니다. Microsoft Windows에서 사용자 계정이 관리자 권한으로 승격될 수 있는지 확인합니다.
참고

crc 실행 파일을 루트 사용자 또는 관리자로 실행하지 마십시오. 항상 사용자 계정으로 crc 실행 파일을 실행합니다.

절차

  1. (선택 사항) Linux에서 OpenShift Container Platform 사전 설정은 기본적으로 선택됩니다. Podman 컨테이너 런타임 사전 설정을 선택하려면 다음을 수행합니다.

    $ crc config set preset podman
  2. Red Hat OpenShift Local의 호스트 시스템을 설정합니다.

    $ crc setup

추가 리소스

  • 사용 가능한 컨테이너 런타임 사전 설정에 대한 자세한 내용은 사전 설정 정보를 참조하십시오.

3.3. 인스턴스 시작

crc start 명령은 Red Hat OpenShift Local 인스턴스를 시작하고 구성된 컨테이너 런타임을 시작합니다.

사전 요구 사항

  • 네트워킹 관련 문제를 방지하려면 VPN에 연결되지 않았으며 네트워크 연결이 안정적인지 확인하십시오.
  • crc setup 명령을 사용하여 호스트 시스템을 설정합니다. 자세한 내용은 Red Hat OpenShift Local 설정을 참조하십시오.
  • Microsoft Windows에서 사용자 계정이 관리자 권한으로 승격될 수 있는지 확인합니다.
  • OpenShift 사전 설정의 경우 유효한 OpenShift 사용자 풀 시크릿이 있는지 확인합니다. Red Hat Hybrid Cloud Console의 Red Hat OpenShift Local 페이지의 Pull Secret 섹션에서 풀 시크릿을 복사하거나 다운로드합니다.

    참고

    사용자 풀 시크릿에 액세스하려면 Red Hat 계정이 필요합니다.

절차

  1. Red Hat OpenShift Local 인스턴스를 시작합니다.

    $ crc start
  2. OpenShift 사전 설정의 경우 메시지가 표시되면 사용자 풀 시크릿을 제공합니다.

    참고

    요청을 처리하기 전에 클러스터가 필요한 컨테이너 및 Operator를 시작하는 데 최소 4분이 걸립니다.

추가 리소스

3.4. OpenShift 클러스터에 액세스

OpenShift Container Platform 웹 콘솔 또는 OpenShift CLI(oc)를 사용하여 Red Hat OpenShift Local 인스턴스에서 실행 중인 OpenShift Container Platform 클러스터에 액세스합니다.

3.4.1. OpenShift 웹 콘솔에 액세스

웹 브라우저를 사용하여 OpenShift Container Platform 웹 콘솔에 액세스합니다.

kubeadmin 또는 developer 사용자를 사용하여 클러스터에 액세스합니다. 프로젝트 또는 OpenShift 애플리케이션을 생성하고 애플리케이션 배포에 developer 사용자를 사용합니다. kubeadmin 사용자는 새 사용자 생성 또는 역할 설정과 같은 관리 작업에만 사용합니다.

사전 요구 사항

  • Red Hat OpenShift Local은 OpenShift 사전 설정을 사용하도록 구성되어 있습니다. 자세한 내용은 선택한 사전 설정 변경을 참조하십시오.
  • 실행 중인 Red Hat OpenShift Local 인스턴스. 자세한 내용은 인스턴스 시작을 참조하십시오.

절차

  1. 기본 웹 브라우저를 사용하여 OpenShift Container Platform 웹 콘솔에 액세스하려면 다음 명령을 실행합니다.

    $ crc console
  2. crc start 명령의 출력에 인쇄된 암호를 사용하여 developer 사용자로 로그인합니다. 다음 명령을 실행하여 개발자kubeadmin 사용자의 암호를 볼 수도 있습니다.

    $ crc console --credentials

Red Hat OpenShift Local에서 관리하는 OpenShift Container Platform 클러스터에 액세스할 수 없는 경우 Red Hat OpenShift Local 문제 해결을 참조하십시오.

추가 리소스

3.4.2. OpenShift CLI를 사용하여 OpenShift 클러스터에 액세스

OpenShift CLI(oc)를 사용하여 Red Hat OpenShift Local에서 관리하는 OpenShift Container Platform 클러스터에 액세스합니다.

사전 요구 사항

  • Red Hat OpenShift Local은 OpenShift 사전 설정을 사용하도록 구성되어 있습니다. 자세한 내용은 선택한 사전 설정 변경을 참조하십시오.
  • 실행 중인 Red Hat OpenShift Local 인스턴스. 자세한 내용은 인스턴스 시작을 참조하십시오.

절차

  1. crc oc-env 명령을 실행하여 $PATH 에 캐시된 oc 실행 파일을 추가하는 데 필요한 명령을 출력합니다.

    $ crc oc-env
  2. 출력된 명령을 실행합니다.
  3. 개발자로 로그인합니다.

    $ oc login -u developer https://api.crc.testing:6443
    참고

    crc start 명령은 developer 사용자의 암호를 출력합니다. crc console --credentials 명령을 실행하여 볼 수도 있습니다.

  4. 이제 oc 를 사용하여 OpenShift Container Platform 클러스터와 상호 작용할 수 있습니다. 예를 들어 OpenShift Container Platform 클러스터 Operator를 사용할 수 있는지 확인하려면 kubeadmin 사용자로 로그인하고 다음 명령을 실행합니다.

    $ oc config use-context crc-admin
    $ oc whoami
    kubeadmin
    $ oc get co
    참고

    Red Hat OpenShift Local은 기본적으로 Cluster Monitoring Operator를 비활성화합니다.

Red Hat OpenShift Local에서 관리하는 OpenShift Container Platform 클러스터에 액세스할 수 없는 경우 Red Hat OpenShift Local 문제 해결을 참조하십시오.

추가 리소스

3.4.3. 내부 OpenShift 레지스트리에 액세스

Red Hat OpenShift Local 인스턴스에서 실행 중인 OpenShift Container Platform 클러스터에는 기본적으로 내부 컨테이너 이미지 레지스트리가 포함되어 있습니다. 이 내부 컨테이너 이미지 레지스트리는 로컬에서 개발한 컨테이너 이미지의 게시 대상으로 사용할 수 있습니다. 내부 OpenShift Container Platform 레지스트리에 액세스하려면 다음 단계를 따르십시오.

사전 요구 사항

절차

  1. 클러스터에 로그인된 사용자를 확인합니다.

    $ oc whoami
    참고

    데모 목적으로 현재 사용자는 kubeadmin 으로 가정합니다.

  2. 토큰이 있는 사용자로 레지스트리에 로그인합니다.

    $ oc registry login --insecure=true
  3. 새 프로젝트를 생성합니다.

    $ oc new-project demo
  4. 컨테이너 이미지 예를 미러링합니다.

    $ oc image mirror registry.access.redhat.com/ubi8/ubi:latest=default-route-openshift-image-registry.apps-crc.testing/demo/ubi8:latest --insecure=true --filter-by-os=linux/amd64
  5. 이미지 스트림을 가져오고 푸시된 이미지가 나열되어 있는지 확인합니다.

    $ oc get is
  6. 이미지 스트림에서 이미지 조회를 활성화합니다.

    $ oc set image-lookup ubi8

    이 설정을 사용하면 내부 레지스트리에 전체 URL을 제공하지 않고도 이미지 스트림이 이미지 소스가 될 수 있습니다.

  7. 최근 내보낸 이미지를 사용하여 Pod를 생성합니다.

    $ oc run demo --image=ubi8 --command -- sleep 600s

3.5. odo를 사용하여 샘플 애플리케이션 배포

odo 를 사용하여 명령줄에서 OpenShift 프로젝트 및 애플리케이션을 생성할 수 있습니다. 이 절차에서는 Red Hat OpenShift Local 인스턴스에서 실행되는 OpenShift Container Platform 클러스터에 샘플 애플리케이션을 배포합니다.

사전 요구 사항

  • odo 가 설치되어 있어야 합니다. 자세한 내용은 odo 문서의 odo 설치를 참조하십시오.
  • Red Hat OpenShift Local은 OpenShift 사전 설정을 사용하도록 구성되어 있습니다. 자세한 내용은 선택한 사전 설정 변경을 참조하십시오.
  • Red Hat OpenShift Local 인스턴스가 실행 중입니다. 자세한 내용은 인스턴스 시작을 참조하십시오.

절차

  1. Red Hat OpenShift Local에서 관리하는 실행 중인 OpenShift Container Platform 클러스터에 developer 사용자로 로그인합니다.

    $ odo login -u developer -p developer
  2. 애플리케이션에 사용할 프로젝트를 생성합니다.

    $ odo create project sample-app
  3. 구성 요소 디렉터리를 생성합니다.

    $ mkdir sample-app
    $ cd sample-app
  4. Node.js 애플리케이션 예를 초기화합니다.

    $ odo init --name sample-app --devfile nodejs --starter nodejs-starter
  5. nodejs 애플리케이션을 개발합니다.

    $ odo dev
  6. 브라우저에서 애플리케이션에 액세스하려면 odo dev 명령 출력에서 URL을 사용합니다.

추가 리소스

3.6. 인스턴스 중지

crc stop 명령은 실행 중인 Red Hat OpenShift Local 인스턴스 및 컨테이너 런타임을 중지합니다. 중지 프로세스는 클러스터가 종료되는 동안 몇 분이 걸립니다.

절차

  • Red Hat OpenShift Local 인스턴스 및 컨테이너 런타임을 중지합니다.

    $ crc stop

3.7. 인스턴스 삭제

crc delete 명령은 기존 Red Hat OpenShift Local 인스턴스를 삭제합니다.

절차

  • Red Hat OpenShift Local 인스턴스를 삭제합니다.

    $ crc delete
    주의

    crc delete 명령을 실행하면 Red Hat OpenShift Local 인스턴스에 저장된 데이터가 손실됩니다. 이 명령을 실행하기 전에 인스턴스에 저장된 원하는 정보를 저장합니다.

4장. Red Hat OpenShift Local 구성

4.1. Red Hat OpenShift Local 구성 정보

crc config 명령을 사용하여 crc 실행 파일과 Red Hat OpenShift Local 인스턴스를 모두 구성합니다. crc config 명령을 실행하려면 하위 명령이 구성에 대해 작동해야 합니다. 사용 가능한 하위 명령은 get,set, unset, view 입니다. get,set, unset 하위 명령은 이름이 설정 가능한 속성에서 작동합니다. crc config --help 명령을 실행하여 사용 가능한 속성을 나열합니다.

crc config 명령을 사용하여 crc startcrc setup 명령에 대한 시작 검사 동작을 구성할 수도 있습니다. 기본적으로 시작 검사는 해당 조건이 충족되지 않을 때 오류를 보고하고 실행을 중지합니다. 검사를 건너뛰려면 skip-check 로 시작하는 속성 값을 true 로 설정합니다.

4.2. Red Hat OpenShift Local 구성 보기

Red Hat OpenShift Local 실행 파일은 구성 가능한 속성 및 현재 Red Hat OpenShift Local 구성을 볼 수 있는 명령을 제공합니다.

절차

  • 사용 가능한 구성 가능한 속성을 보려면 다음을 수행합니다.

    $ crc config --help
  • 구성 가능한 속성의 값을 보려면 다음을 수행합니다.

    $ crc config get <property>
  • 전체 현재 구성을 보려면 다음을 수행합니다.

    $ crc config view
    참고

    crc config view 명령은 구성이 기본값으로 구성된 경우 정보를 반환하지 않습니다.

4.3. 선택한 사전 설정 변경

원하는 사전 설정을 선택하여 Red Hat OpenShift Local 인스턴스에 사용되는 컨테이너 런타임을 변경할 수 있습니다.

Microsoft Windows 및 macOS에서는 시스템 시험판 또는 명령줄 인터페이스를 사용하여 선택한 사전 설정을 변경할 수 있습니다. Linux에서 명령줄 인터페이스를 사용합니다.

중요

기존 Red Hat OpenShift Local 인스턴스의 사전 설정은 변경할 수 없습니다. 사전 설정 변경 사항은 Red Hat OpenShift Local 인스턴스를 생성할 때만 적용됩니다. 사전 설정을 변경하려면 기존 인스턴스를 삭제하고 새 인스턴스를 시작해야 합니다.

절차

  • 명령줄에서 선택한 사전 설정을 변경합니다.

    $ crc config set preset <name>

    유효한 사전 설정 이름은 OpenShift Container Platform의 openshift 와 Podman 컨테이너 런타임의 경우 podman 입니다.

추가 리소스

4.4. 인스턴스 구성

cpusmemory 속성을 사용하여 Red Hat OpenShift Local 인스턴스에서 사용할 수 있는 기본 vCPU 수 및 메모리 양을 각각 구성합니다.

또는 crc start 명령에 --cpus--memory 플래그를 사용하여 vCPU 수 및 메모리 양을 할당할 수 있습니다.

중요

실행 중인 Red Hat OpenShift Local 인스턴스의 구성을 변경할 수 없습니다. 구성 변경을 활성화하려면 실행 중인 인스턴스를 중지하고 다시 시작해야 합니다.

절차

  • 인스턴스에서 사용할 수 있는 vCPU 수를 구성하려면 다음을 수행합니다.

    $ crc config set cpus <number>

    cpus 속성의 기본값은 4 입니다. 할당할 vCPU 수가 기본값보다 크거나 같아야 합니다.

  • 원하는 vCPU 수로 인스턴스를 시작하려면 다음을 수행합니다.

    $ crc start --cpus <number>
  • 인스턴스에서 사용할 수 있는 메모리를 구성하려면 다음을 수행합니다.

    $ crc config set memory <number-in-mib>
    참고

    사용 가능한 메모리 값은 메비바이트(MiB)로 설정됩니다. 메모리 1GB(GiB)는 1024MiB입니다.

    memory 속성의 기본값은 9216 입니다. 할당할 메모리 양은 기본값보다 크거나 같아야 합니다.

  • 원하는 메모리 양으로 인스턴스를 시작하려면 다음을 수행합니다.

    $ crc start --memory <number-in-mib>

5장. 네트워킹

5.1. DNS 구성 세부 정보

5.1.1. 일반 DNS 설정

Red Hat OpenShift Local에서 관리하는 OpenShift Container Platform 클러스터는 2개의 DNS 도메인 이름, crc.testingapps-crc.testing 을 사용합니다. crc.testing 도메인은 핵심 OpenShift Container Platform 서비스를 위한 것입니다. apps-crc.testing 도메인은 클러스터에 배포된 OpenShift 애플리케이션에 액세스하기 위한 것입니다.

예를 들어 OpenShift Container Platform API 서버는 console-openshift-console.apps-crc.testing 으로 액세스하는 동안 api.crc.testing 으로 노출됩니다. 이러한 DNS 도메인은 Red Hat OpenShift Local 인스턴스 내에서 실행되는 dnsmasq DNS 컨테이너에서 제공합니다.

crc setup 명령은 이러한 도메인을 확인할 수 있도록 시스템 DNS 구성을 감지하고 조정합니다. crc start 를 실행할 때 DNS가 올바르게 구성되었는지 확인하는 추가 검사가 수행됩니다.

5.1.2. Linux

배포판에 따라 Linux의 경우 Red Hat OpenShift Local에는 다음과 같은 DNS 구성이 필요합니다.

5.1.2.1. NetworkManager + systemd-resolved

이 구성은 기본적으로 Fedora 33 이상과 Ubuntu Desktop Edition에서 사용됩니다.

  • Red Hat OpenShift Local은 NetworkManager가 네트워킹을 관리할 것으로 예상합니다.
  • Red Hat OpenShift Local은 테스트 도메인의 요청을 192.168.130.11 DNS 서버로 전달하도록 systemd 를 구성합니다. 192.168.130.11 은 Red Hat OpenShift Local 인스턴스의 IP입니다.
  • systemd-resolved 구성은 /etc/NetworkManager/dispatcher.d/99-crc.sh 의 NetworkManager 디스패치 스크립트를 사용하여 수행됩니다.

    #!/bin/sh
    
    export LC_ALL=C
    
    systemd-resolve --interface crc --set-dns 192.168.130.11 --set-domain ~testing
    
    exit 0
참고

systemd 확인은 Red Hat Enterprise Linux 및 CentOS 8.3에서 지원되지 않는 기술 프리뷰로 사용할 수 있습니다. systemd 확인을 사용하도록 호스트를 구성한 후 실행 중인 클러스터를 중지하고 crc 설정을 다시 실행합니다.

5.1.2.2. NetworkManager + dnsmasq

이 구성은 기본적으로 Fedora 32 이상, Red Hat Enterprise Linux 및 CentOS에서 사용됩니다.

  • Red Hat OpenShift Local은 NetworkManager가 네트워킹을 관리할 것으로 예상합니다.
  • NetworkManager는 /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf 구성 파일과 함께 dnsmasq 를 사용합니다.
  • dnsmasq 인스턴스의 구성 파일은 /etc/NetworkManager/dnsmasq.d/crc.conf 입니다.

    server=/crc.testing/192.168.130.11
    server=/apps-crc.testing/192.168.130.11
    • NetworkManager dnsmasq 인스턴스는 crc.testingapps-crc.testing 도메인에 대한 요청을 192.168.130.11 DNS 서버로 전달합니다.

5.2. 예약된 IP 서브넷

Red Hat OpenShift Local에서 관리하는 OpenShift Container Platform 클러스터는 호스트 네트워크와 충돌하지 않는 내부 사용을 위해 IP 서브넷을 예약합니다. 다음 IP 서브넷을 사용할 수 있는지 확인합니다.

예약된 IP 서브넷

  • 10.217.0.0/22
  • 10.217.4.0/23
  • 192.168.126.0/24

또한 호스트 하이퍼바이저는 호스트 운영 체제에 따라 다른 IP 서브넷을 예약할 수 있습니다. Microsoft Windows에서 하이퍼바이저는 미리 확인할 수 없는 무작위로 생성된 IP 서브넷을 예약합니다. macOS에서 예약된 추가 서브넷은 없습니다. Linux의 추가 예약된 서브넷은 192.168.130.0/24 입니다.

5.3. 프록시 뒤에서 Red Hat OpenShift Local 시작

환경 변수 또는 구성 가능한 속성을 사용하여 정의된 프록시에서 Red Hat OpenShift Local을 시작할 수 있습니다.

참고

CloudEventKS 프록시는 OpenShift Container Platform에서 지원되지 않습니다.

사전 요구 사항

  • 호스트 시스템에서 기존 OpenShift CLI(oc) 실행 파일을 사용하려면 no_proxy 환경 변수의 일부로 .testing 도메인을 내보냅니다. 포함된 oc 실행 파일에는 수동 설정이 필요하지 않습니다. 포함된 oc 실행 파일을 사용하는 방법에 대한 자세한 내용은 OpenShift CLI로 OpenShift 클러스터 액세스를 참조하십시오.

절차

  1. http_proxyhttps_proxy 환경 변수를 사용하거나 crc config set 명령을 사용하여 다음과 같이 프록시를 정의합니다.

    $ crc config set http-proxy http://proxy.example.com:<port>
    $ crc config set https-proxy http://proxy.example.com:<port>
    $ crc config set no-proxy <comma-separated-no-proxy-entries>
  2. 프록시에서 사용자 정의 CA 인증서 파일을 사용하는 경우 다음과 같이 설정합니다.

    $ crc config set proxy-ca-file <path-to-custom-ca-file>
참고

Red Hat OpenShift Local 구성에 설정된 프록시 관련 값은 환경 변수로 설정된 값보다 우선합니다.

5.4. 원격 서버에서 Red Hat OpenShift Local 설정

Red Hat OpenShift Local에서 제공하는 OpenShift Container Platform 클러스터를 실행하도록 원격 서버를 구성합니다.

이 절차에서는 Red Hat Enterprise Linux, Fedora 또는 CentOS 서버를 사용하는 것을 전제로 하고 있습니다. 원격 서버에서 이 절차에서 모든 명령을 실행합니다.

주의

이 절차는 로컬 네트워크에서만 수행합니다. 인터넷에서 비보안 서버를 노출하는 것은 많은 보안에 영향을 미칩니다.

사전 요구 사항

절차

  1. 클러스터를 시작합니다.

    $ crc start

    이 프로세스 중에 클러스터가 계속 실행되고 있는지 확인합니다.

  2. haproxy 패키지 및 기타 유틸리티를 설치합니다.

    $ sudo dnf install haproxy /usr/sbin/semanage
  3. 클러스터와의 통신을 허용하도록 방화벽을 수정합니다.

    $ sudo systemctl enable --now firewalld
    $ sudo firewall-cmd --add-service=http --permanent
    $ sudo firewall-cmd --add-service=https --permanent
    $ sudo firewall-cmd --add-service=kube-apiserver --permanent
    $ sudo firewall-cmd --reload
  4. SELinux의 경우 HAProxy가 이 포트에서 kube-apiserver 를 제공하도록 TCP 포트 6443에서 수신 대기하도록 허용합니다.

    $ sudo semanage port -a -t http_port_t -p tcp 6443
  5. 기본 haproxy 구성의 백업을 생성합니다.

    $ sudo cp /etc/haproxy/haproxy.cfg{,.bak}
  6. 클러스터와 함께 사용할 haproxy 를 구성합니다.

    $ export CRC_IP=$(crc ip)
    $ sudo tee /etc/haproxy/haproxy.cfg &>/dev/null <<EOF
    global
        log /dev/log local0
    
    defaults
        balance roundrobin
        log global
        maxconn 100
        mode tcp
        timeout connect 5s
        timeout client 500s
        timeout server 500s
    
    listen apps
        bind 0.0.0.0:80
        server crcvm $CRC_IP:80 check
    
    listen apps_ssl
        bind 0.0.0.0:443
        server crcvm $CRC_IP:443 check
    
    listen api
        bind 0.0.0.0:6443
        server crcvm $CRC_IP:6443 check
    EOF
  7. haproxy 서비스를 시작합니다.

    $ sudo systemctl start haproxy

5.5. 원격 Red Hat OpenShift Local 인스턴스에 연결

dnsmasq 를 사용하여 Red Hat OpenShift Local에서 관리하는 OpenShift Container Platform 클러스터를 실행하는 원격 서버에 클라이언트 머신을 연결합니다.

이 절차에서는 Red Hat Enterprise Linux, Fedora 또는 CentOS 클라이언트를 사용하는 것을 전제로 하고 있습니다. 클라이언트의 이 프로세스에서 모든 명령을 실행합니다.

중요

로컬 네트워크에서만 노출되는 서버에 연결합니다.

사전 요구 사항

절차

  1. dnsmasq 패키지를 설치합니다.

    $ sudo dnf install dnsmasq
  2. NetworkManager에서 DNS 확인을 위해 dnsmasq 사용을 활성화합니다.

    $ sudo tee /etc/NetworkManager/conf.d/use-dnsmasq.conf &>/dev/null <<EOF
    [main]
    dns=dnsmasq
    EOF
  3. Red Hat OpenShift Local의 DNS 항목을 dnsmasq 구성에 추가합니다.

    $ sudo tee /etc/NetworkManager/dnsmasq.d/external-crc.conf &>/dev/null <<EOF
    address=/apps-crc.testing/SERVER_IP_ADDRESS
    address=/api.crc.testing/SERVER_IP_ADDRESS
    EOF
    참고

    /etc/NetworkManager/dnsmasq.d/crc.conf 의 기존 항목을 주석 처리합니다. 이러한 항목은 Red Hat OpenShift Local의 로컬 인스턴스를 실행하여 생성되며 원격 클러스터의 항목과 충돌합니다.

  4. NetworkManager 서비스를 다시 로드합니다.

    $ sudo systemctl reload NetworkManager
  5. oc:를 사용하여 developer 사용자로 원격 클러스터에 로그인합니다.

    $ oc login -u developer -p developer https://api.crc.testing:6443

    원격 OpenShift Container Platform 웹 콘솔은 https://console-openshift-console.apps-crc.testing에서 확인할 수 있습니다.

6장. 관리 작업

6.1. 모니터링 시작

Red Hat OpenShift Local은 클러스터 모니터링을 기본적으로 비활성화하여 Red Hat OpenShift Local이 일반적인 설문지에서 실행될 수 있도록 합니다. 모니터링은 Red Hat Hybrid Cloud Console 에서 클러스터 목록을 담당합니다. 클러스터 모니터링을 활성화하려면 다음 절차를 따르십시오.

사전 요구 사항

  • Red Hat OpenShift Local 인스턴스에 추가 메모리를 할당해야 합니다. 코어 기능에는 최소 14GiB의 메모리 값이 14336 으로 권장됩니다. 워크로드 증가에 더 많은 메모리가 필요합니다. 자세한 내용은 인스턴스 구성을 참조하십시오.

절차

  1. enable-cluster-monitoring 구성 가능 속성을 true 로 설정합니다.

    $ crc config set enable-cluster-monitoring true
  2. 인스턴스를 시작합니다.

    $ crc start
    주의

    클러스터 모니터링을 비활성화할 수 없습니다. 모니터링을 제거하려면 enable-cluster-monitoring 구성 가능 속성을 false 로 설정하고 기존 Red Hat OpenShift Local 인스턴스를 삭제합니다.

7장. Red Hat OpenShift Local 문제 해결

참고

Red Hat OpenShift Local의 목표는 개발 및 테스트 목적으로 OpenShift Container Platform 환경을 제공하는 것입니다. 특정 OpenShift 애플리케이션을 설치 또는 사용하는 동안 발생하는 문제는 Red Hat OpenShift Local의 범위를 벗어납니다. 이러한 문제를 관련 프로젝트에 보고합니다.

7.1. OpenShift 클러스터에 쉘 액세스 권한 얻기

문제 해결 또는 디버깅을 위해 클러스터에 액세스하려면 다음 절차를 따르십시오.

참고

OpenShift Container Platform 클러스터에 대한 직접 액세스는 정기적으로 사용할 필요가 없으며 권장되지 않습니다.

사전 요구 사항

절차

  1. oc get nodes 명령을 실행하여 원하는 노드를 확인합니다. 출력은 다음과 유사합니다.

    $ oc get nodes
    NAME                 STATUS   ROLES           AGE    VERSION
    crc-shdl4-master-0   Ready    master,worker   7d7h   v1.14.6+7e13ab9a7
  2. oc debug nodes/ <node >를 실행합니다. 여기서 <node>는 이전 단계에서 인쇄된 노드의 이름입니다.

7.2. 만료된 인증서 문제 해결

릴리스된 각 crc 실행 파일의 시스템 번들은 릴리스 후 30일이 지나면 만료됩니다. 이 만료는 OpenShift Container Platform 클러스터에 포함된 인증서로 인해 발생합니다. crc start 명령은 필요한 경우 자동 인증서 갱신 프로세스를 트리거합니다. 인증서 갱신은 클러스터 시작 시간에 최대 5분까지 추가할 수 있습니다.

추가 시작 시간을 방지하거나 인증서 갱신 프로세스에서 오류가 발생하는 경우 다음 절차를 사용하십시오.

절차

만료된 인증서 오류를 해결하려면 자동으로 갱신할 수 없습니다.

  1. 최신 Red Hat OpenShift Local 릴리스를 다운로드하여 $PATHcrc 실행 파일을 배치합니다.
  2. crc delete 명령을 사용하여 인증서 오류가 있는 클러스터를 제거합니다.

    $ crc delete
    주의

    crc delete 명령을 실행하면 Red Hat OpenShift Local 인스턴스에 저장된 데이터가 손실됩니다. 이 명령을 실행하기 전에 인스턴스에 저장된 원하는 정보를 저장합니다.

  3. 새 릴리스를 설정합니다.

    $ crc setup
  4. 새 인스턴스를 시작합니다.

    $ crc start

7.3. 번들 버전 불일치 문제 해결

생성된 Red Hat OpenShift Local 인스턴스에는 번들 정보 및 인스턴스 데이터가 포함됩니다. 새로운 Red Hat OpenShift Local 릴리스를 설정할 때 번들 정보 및 인스턴스 데이터가 업데이트되지 않습니다. 이 정보는 이전 인스턴스 데이터의 사용자 지정으로 인해 업데이트되지 않습니다. 이렇게 하면 crc start 명령을 실행할 때 오류가 발생합니다.

$ crc start
...
FATA Bundle 'crc_hyperkit_4.2.8.crcbundle' was requested, but the existing VM is using
'crc_hyperkit_4.2.2.crcbundle'

절차

  1. 인스턴스를 시작하기 전에 crc delete 명령을 실행합니다.

    $ crc delete
    주의

    crc delete 명령을 실행하면 Red Hat OpenShift Local 인스턴스에 저장된 데이터가 손실됩니다. 이 명령을 실행하기 전에 인스턴스에 저장된 원하는 정보를 저장합니다.

7.4. 알 수 없는 문제 해결

Red Hat OpenShift Local을 클린 상태로 다시 시작하여 대부분의 문제를 해결합니다. 이 작업을 수행하려면 인스턴스를 중지하고, crc setup 명령으로 변경한 사항을 되돌리고, 이러한 변경 사항을 다시 적용한 다음 인스턴스를 다시 시작해야 합니다.

사전 요구 사항

  • crc setup 명령을 사용하여 호스트 머신을 설정합니다. 자세한 내용은 Red Hat OpenShift Local 설정을 참조하십시오.
  • crc start 명령을 사용하여 Red Hat OpenShift Local을 시작했습니다. 자세한 내용은 인스턴스 시작을 참조하십시오.
  • 최신 Red Hat OpenShift Local 릴리스를 사용하고 있습니다. Red Hat OpenShift Local 1.2.0 이전 버전을 사용하면 만료된 x509 인증서와 관련된 오류가 발생할 수 있습니다. 자세한 내용은 만료된 인증서 문제 해결을 참조하십시오.

절차

Red Hat OpenShift Local 문제를 해결하려면 다음 단계를 수행합니다.

  1. Red Hat OpenShift Local 인스턴스를 중지합니다.

    $ crc stop
  2. Red Hat OpenShift Local 인스턴스를 삭제합니다.

    $ crc delete
    주의

    crc delete 명령을 실행하면 Red Hat OpenShift Local 인스턴스에 저장된 데이터가 손실됩니다. 이 명령을 실행하기 전에 인스턴스에 저장된 원하는 정보를 저장합니다.

  3. crc setup 명령에서 나머지 변경 사항을 정리합니다.

    $ crc cleanup
    참고

    crc cleanup 명령은 기존 Red Hat OpenShift Local 인스턴스를 제거하고 crc setup 명령으로 생성된 DNS 항목으로 변경 사항을 되돌립니다. macOS에서 crc cleanup 명령도 시스템을 제거합니다.

  4. 변경 사항을 다시 적용하도록 호스트 시스템을 설정합니다.

    $ crc setup
  5. Red Hat OpenShift Local 인스턴스를 시작합니다.

    $ crc start
    참고

    요청을 처리하기 전에 클러스터가 필요한 컨테이너 및 Operator를 시작하는 데 최소 4분이 걸립니다.

이 프로세스에서 문제를 해결하지 않으면 다음 단계를 수행합니다.

  1. 발생하는 문제에 대해 열려 있는 문제를 검색합니다.
  2. 발생한 문제를 해결한 기존 문제가 없는 경우 문제를 생성하고 ~/.crc/crc.log 파일을 생성된 문제에 연결합니다. ~/.crc/crc.log 파일에는 자세한 디버깅 및 문제 해결 정보가 있어 현재 발생하는 문제를 진단하는 데 도움이 됩니다.

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.