베어메탈용 GKE를 사용하려면 노드 머신의 기본 운영체제를 구성해야 합니다. 이 페이지에는 필요한 구성을 완료하기 위해 필요한 단계가 포함되어 있습니다. 베어메탈용 GKE 문제해결에 관한 자세한 내용은 문제해결 가이드를 참조하세요.
시작하기 전에
지원되는 운영체제 버전을 사용 중인지 확인합니다. 지원되는 버전의 목록은 운영체제 선택을 참조하세요.
BPF Just In Time 컴파일러 사용 설정
운영체제의 커널에는 BPF Just In Time 컴파일러 옵션이 사용 설정되어 있어야 합니다(CONFIG_BPF_JIT=y
).
이 옵션이 사용 설정되었는지 확인하려면 다음 명령어를 실행합니다.
grep CONFIG_BPF_JIT /boot/config-$(uname -r)
패키지 관리자 유효성 검사
RedHat 사용자 이름과 비밀번호가 있고 구성 중인 머신에 대한 루트 액세스 권한이 있는지 확인합니다. 다음 단계에 따라 패키지 관리자의 유효성을 검사하세요.
운영체제를 등록하지 않은 경우 RedHat 사용자 이름과 비밀번호를 사용하여 RedHat에 등록하여 업데이트를 다운로드합니다.
sudo subscription-manager register sudo subscription-manager refresh sudo subscription-manager attach --auto
업데이트를 확인합니다.
sudo dnf check-update
출력에 오류가 없고 마지막 메타데이터 만료 확인이 있는지 확인합니다. 예를 들면 다음과 같습니다.
Updating Subscription Management repositories. ... # Last metadata expiration check: ... ...
방화벽 구성 또는 사용 중지
베어메탈용 GKE에 사용할 firewalld를 구성하거나 사용 중지할 수 있습니다. firewalld 구성에 대한 자세한 내용은 네트워크 요구사항 페이지에서 firewalld 포트 구성을 참조하세요.
다음 안내에서는 firewalld를 사용 중지합니다.
firewalld 사용 중지:
sudo systemctl stop firewalld sudo systemctl disable firewalld
firewalld 상태를 확인하여 사용 중지되었는지 확인합니다.
sudo systemctl status firewalld | grep "Active" # Output # Active: inactive (dead)
워크스테이션에 Docker 구성
Docker를 수동으로 설치하려면 다음 단계를 따르세요.
모든 이전 Docker 버전을 삭제합니다.
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
podman-manpages를 제거합니다.
sudo dnf remove podman-manpages
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
현재 버전 20.10.0 이상을 실행 중인지 확인합니다.
sudo docker version
출력과 다음 예시를 비교하여 클라이언트 및 서버 버전이 20.10.0 이상인지 확인합니다.
Client: Docker Engine - Community Version: 25.0.3 ... Server: Docker Engine - Community Engine: Version: 25.0.3
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
이러한 값이 노드 머신에서 올바르게 설정되었는지 확인하려면 다음 안내를 따르세요.
max_user_instances
값을 확인합니다.cat /proc/sys/fs/inotify/max_user_instances
필요한 경우
max_user_instances
를 최솟값으로 업데이트합니다.echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
max_user_watches
값을 확인합니다.cat /proc/sys/fs/inotify/max_user_watches
필요한 경우
max_user_watches
를 최솟값으로 업데이트합니다.echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
두 값 중 하나를 업데이트했으면 머신을 재부팅합니다.
권장사항
설치를 단순화하려면 헤드리스 관리에서 최소한의 설치를 사용하여 RHEL을 구성하는 것이 좋습니다. 또한 네트워크 연결을 사용하도록 설정하고 기본 DHCP를 사용하거나 유효한 고정 IP 주소와 네트워크 정보를 제공합니다. 머신에서 cloud.google.com
와 같은 필수 외부 리소스에 연결할 수 있는지 확인합니다.
Docker가 실행되지 않으면 다음 명령어로 Docker 데몬이 실행 중인지 확인합니다.
sudo systemctl start docker