RHEL 구성

베어메탈용 GKE를 사용하려면 노드 머신의 기본 운영체제를 구성해야 합니다. 이 페이지에는 필요한 구성을 완료하기 위해 필요한 단계가 포함되어 있습니다. 베어메탈용 GKE 문제해결에 관한 자세한 내용은 문제해결 가이드를 참조하세요.

시작하기 전에

지원되는 운영체제 버전을 사용 중인지 확인합니다. 지원되는 버전의 목록은 운영체제 선택을 참조하세요.

BPF Just In Time 컴파일러 사용 설정

운영체제의 커널에는 BPF Just In Time 컴파일러 옵션이 사용 설정되어 있어야 합니다(CONFIG_BPF_JIT=y).

  • 이 옵션이 사용 설정되었는지 확인하려면 다음 명령어를 실행합니다.

    grep CONFIG_BPF_JIT /boot/config-$(uname -r)
    

패키지 관리자 유효성 검사

RedHat 사용자 이름과 비밀번호가 있고 구성 중인 머신에 대한 루트 액세스 권한이 있는지 확인합니다. 다음 단계에 따라 패키지 관리자의 유효성을 검사하세요.

  1. 운영체제를 등록하지 않은 경우 RedHat 사용자 이름과 비밀번호를 사용하여 RedHat에 등록하여 업데이트를 다운로드합니다.

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. 업데이트를 확인합니다.

    sudo dnf check-update
    

    출력에 오류가 없고 마지막 메타데이터 만료 확인이 있는지 확인합니다. 예를 들면 다음과 같습니다.

    Updating Subscription Management repositories.
    ...
    # Last metadata expiration check: ...
    ...
    

방화벽 구성 또는 사용 중지

베어메탈용 GKE에 사용할 firewalld를 구성하거나 사용 중지할 수 있습니다. firewalld 구성에 대한 자세한 내용은 네트워크 요구사항 페이지에서 firewalld 포트 구성을 참조하세요.

다음 안내에서는 firewalld를 사용 중지합니다.

  1. firewalld 사용 중지:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. firewalld 상태를 확인하여 사용 중지되었는지 확인합니다.

    sudo systemctl status firewalld | grep "Active"
    # Output
    # Active: inactive (dead)
    

워크스테이션에 Docker 구성

Docker를 수동으로 설치하려면 다음 단계를 따르세요.

  1. 모든 이전 Docker 버전을 삭제합니다.

    sudo dnf remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  2. podman-manpages를 제거합니다.

    sudo dnf remove podman-manpages
    
  3. Docker 20.10.0 이상을 설치합니다.

    sudo dnf install -y yum-utils
    
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/rhel/docker-ce.repo
    
    sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  4. 현재 버전 20.10.0 이상을 실행 중인지 확인합니다.

    sudo docker version
    
  5. 출력과 다음 예시를 비교하여 클라이언트 및 서버 버전이 20.10.0 이상인지 확인합니다.

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Docker가 실행되는지 확인합니다.

    docker run hello-world
    

    다음과 비슷한 모습이어야 합니다.

    Hello from Docker!
    

    이 메시지는 설치가 정상적으로 작동하는 것으로 보임을 나타냅니다.

시간 동기화 설정

시간 동기화는 지정된 외부 시간 참조를 사용하여 노드 머신에 시계를 설정하는 것으로 구성됩니다. 시간 동기화는 시간에 민감한 클러스터 활동(예: 이벤트 로깅 및 측정항목 수집)에 중요합니다. 노드 머신의 커널은 노드에서 실행되는 컨테이너의 시계를 제어합니다. 적절한 시간 동기화를 위해 chrony, systemd-timesyncd, ntp, 또는 ntpdate와 같은 사용 가능한 서비스를 통해 머신에 네트워크 시간 프로토콜(NTP) 서비스를 설치합니다. timedatectl을 실행하여 시스템 시계가 동기화되었는지 확인합니다. timedatectl의 출력에는 다음 상태가 포함되어야 합니다.

System clock synchronized: yes

Linux 커널 inotify 한도가 최소 이상인지 확인

RHEL 9를 실행하는 머신의 경우 최대 사용자 인스턴스 및 사용자 감시 수에 대한 Linux 커널 inotify 한도는 다음보다 크거나 같아야 합니다.

  • fs.inotify.max_user_instances: 8192
  • fs.inotify.max_user_watches: 524288

이러한 값이 노드 머신에서 올바르게 설정되었는지 확인하려면 다음 안내를 따르세요.

  1. max_user_instances 값을 확인합니다.

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. 필요한 경우 max_user_instances를 최솟값으로 업데이트합니다.

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. max_user_watches 값을 확인합니다.

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. 필요한 경우 max_user_watches를 최솟값으로 업데이트합니다.

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. 두 값 중 하나를 업데이트했으면 머신을 재부팅합니다.

권장사항

설치를 단순화하려면 헤드리스 관리에서 최소한의 설치를 사용하여 RHEL을 구성하는 것이 좋습니다. 또한 네트워크 연결을 사용하도록 설정하고 기본 DHCP를 사용하거나 유효한 고정 IP 주소와 네트워크 정보를 제공합니다. 머신에서 cloud.google.com와 같은 필수 외부 리소스에 연결할 수 있는지 확인합니다.

Docker가 실행되지 않으면 다음 명령어로 Docker 데몬이 실행 중인지 확인합니다.

sudo systemctl start docker