Google Distributed Cloud를 사용하려면 노드 머신의 기본 운영체제를 구성해야 합니다. 이 페이지에는 필요한 구성을 완료하기 위해 필요한 단계가 포함되어 있습니다. Google Distributed Cloud 문제 해결에 대한 자세한 내용은 문제 해결 가이드를 참조하세요.
시작하기 전에
지원되는 운영체제 버전을 사용 중인지 확인합니다. 지원되는 버전의 목록은 운영체제 선택을 참조하세요.
BPF Just In Time 컴파일러 사용 설정
운영체제의 커널에는 BPF Just In Time 컴파일러 옵션이 사용 설정되어 있어야 합니다(CONFIG_BPF_JIT=y).
이 옵션이 사용 설정되었는지 확인하려면 다음 명령어를 실행합니다.
grepCONFIG_BPF_JIT/boot/config-$(uname-r)
패키지 관리자 유효성 검사
RedHat 사용자 이름과 비밀번호가 있고 구성 중인 머신에 대한 루트 액세스 권한이 있는지 확인합니다. 다음 단계에 따라 패키지 관리자의 유효성을 검사하세요.
운영체제를 등록하지 않은 경우 RedHat 사용자 이름과 비밀번호를 사용하여 RedHat에 등록하여 업데이트를 다운로드합니다.
출력과 다음 예시를 비교하여 클라이언트 및 서버 버전이 20.10.0 이상인지 확인합니다.
Client: Docker Engine - Community
Version: 25.0.3
...
Server: Docker Engine - Community
Engine:
Version: 25.0.3
Docker가 실행되는지 확인합니다.
dockerrunhello-world
다음과 비슷한 모습이어야 합니다.
Hello from Docker!
이 메시지는 설치가 정상적으로 작동하는 것으로 보임을 나타냅니다.
시간 동기화 설정
시간 동기화는 지정된 외부 시간 참조를 사용하여 노드 머신에 시계를 설정하는 것으로 구성됩니다. 시간 동기화는 시간에 민감한 클러스터 활동(예: 이벤트 로깅 및 측정항목 수집)에 중요합니다.
노드 머신의 커널은 노드에서 실행되는 컨테이너의 시계를 제어합니다. 적절한 시간 동기화를 위해 chrony, systemd-timesyncd, ntp, 또는 ntpdate와 같은 사용 가능한 서비스를 통해 머신에 네트워크 시간 프로토콜(NTP) 서비스를 설치합니다. timedatectl을 실행하여 시스템 시계가 동기화되었는지 확인합니다. timedatectl의 출력에는 다음 상태가 포함되어야 합니다.
System clock synchronized: yes
Linux 커널 inotify 한도가 최소 이상인지 확인
RHEL 9 및 8.10을 실행하는 머신의 경우 최대 사용자 인스턴스 및 사용자 감시 수에 대한 Linux 커널 inotify 한도는 다음보다 크거나 같아야 합니다.
설치를 단순화하려면 헤드리스 관리에서 최소한의 설치를 사용하여 RHEL을 구성하는 것이 좋습니다. 또한 네트워크 연결을 사용하도록 설정하고 기본 DHCP를 사용하거나 유효한 고정 IP 주소와 네트워크 정보를 제공합니다. 머신에서 cloud.google.com와 같은 필수 외부 리소스에 연결할 수 있는지 확인합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-01(UTC)"],[],[],null,["You must configure the base operating system of your node machines to use\nGoogle Distributed Cloud. This page contains the steps you need to take to complete the\nneeded configuration. For more information about troubleshooting\nGoogle Distributed Cloud, see the\n[troubleshooting guides](/kubernetes-engine/distributed-cloud/bare-metal/docs/troubleshooting/known-issues).\n\nBefore you begin\n\nEnsure you are using a supported version of your operating system. For a list of\nsupported versions, see\n[Select your operating system](/kubernetes-engine/distributed-cloud/bare-metal/docs/installing/os-reqs).\n\nEnable BPF Just In Time compiler\n\nThe kernel for your operating system must have the BPF Just In Time compiler\noption enabled (`CONFIG_BPF_JIT=y`).\n\n- To find out whether this option is enabled, run the following command:\n\n grep CONFIG_BPF_JIT /boot/config-$(uname -r)\n\nValidate the package manager\n\nEnsure that you have your RedHat username and password, and that you have root\naccess to the machines you're configuring. Validate Package manager with the\nfollowing steps:\n\n1. If you haven't registered your operating system, register with RedHat using\n your RedHat username and password to download updates:\n\n sudo subscription-manager register\n\n sudo subscription-manager refresh\n\n sudo subscription-manager attach --auto\n\n2. Check for updates:\n\n sudo dnf check-update\n\n Ensure the output has no errors and includes the last metadata expiration\n check. For example: \n\n Updating Subscription Management repositories.\n ...\n # Last metadata expiration check: ...\n ...\n\nConfigure or disable firewalld\n\nFirewalld can be configured\nfor use with Google Distributed Cloud or disabled. For information on configuring\nfirewalld, see\n[Configure firewalld ports](/kubernetes-engine/distributed-cloud/bare-metal/docs/concepts/network-reqs#configuring_firewalld_ports)\non the Network requirements page.\n\nThe following instructions disable firewalld.\n\n1. Disable firewalld:\n\n sudo systemctl stop firewalld\n\n sudo systemctl disable firewalld\n\n2. Check the status of firewalld to ensure it is disabled:\n\n sudo systemctl status firewalld | grep \"Active\"\n # Output\n # Active: inactive (dead)\n\nConfigure Docker on your workstation **Note:** The workstation running `bmctl` needs non-root user access to Docker to start the temporary bootstrap (kind) cluster during installation. To enable non-root user access to Docker, go to [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user).\n\nFollow these steps to manually install Docker:\n\n1. Remove any previous Docker version:\n\n sudo dnf remove docker \\\n docker-client \\\n docker-client-latest \\\n docker-common \\\n docker-latest \\\n docker-latest-logrotate \\\n docker-logrotate \\\n docker-engine\n\n2. Remove podman-manpages:\n\n sudo dnf remove podman-manpages\n\n3. Install Docker 20.10.0+:\n\n sudo dnf install -y yum-utils\n\n sudo yum-config-manager \\\n --add-repo \\\n https://download.docker.com/linux/rhel/docker-ce.repo\n\n sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io\n\n sudo systemctl start docker\n\n4. Verify that you are now running version 20.10.0+:\n\n sudo docker version\n\n5. Compare your output with the following example to ensure the Client and\n Server versions are 20.10.0+:\n\n Client: Docker Engine - Community\n Version: 25.0.3\n ...\n Server: Docker Engine - Community\n Engine:\n Version: 25.0.3\n\n6. Verify Docker runs:\n\n docker run hello-world\n\n You should see something similar to this: \n\n Hello from Docker!\n\n This message shows that your installation appears to be working correctly.\n\nSet up time synchronization\n\nTime synchronization consists of setting the clocks on your node machines, using\na designated external time reference. Time synchronization is important for\ntime-sentive cluster activities, such as event logging and metrics collection.\nThe kernel of your node machine controls the clock in containers that run on the\nnode. To ensure proper time synchronization, install a network time protocol\n(NTP) service on your machines, using any of the available services:\n[`chrony`](https://chrony.tuxfamily.org/), `systemd-timesyncd`,\n`ntp`, or `ntpdate`. Run `timedatectl` to verify the system clock is\nsynchronized. The output of `timedatectl` should contain the following status: \n\n System clock synchronized: yes\n\nEnsure Linux kernel `inotify` limits are at or higher than minimum\n\nFor machines running RHEL 9 and 8.10, Linux kernel `inotify` limits\nfor maximum user instances and user watches must be greater than or equal to the\nfollowing:\n\n- `fs.inotify.max_user_instances`: `8192`\n- `fs.inotify.max_user_watches`: `524288`\n\nEnsure these values are set correctly on your node machines:\n\n1. Check the value of `max_user_instances`:\n\n cat /proc/sys/fs/inotify/max_user_instances\n\n2. If needed, update `max_user_instances` to the minimum value:\n\n echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf\n\n3. Check the value of `max_user_watches`:\n\n cat /proc/sys/fs/inotify/max_user_watches\n\n4. If needed, update `max_user_watches` to the minimum value:\n\n echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf\n\n5. If you updated either value, reboot the machine.\n\nBest Practices\n\nTo simplify installation, we recommend that you configure RHEL using a minimal\ninstallation with headless management. Also, be sure to enable your\n[network connection](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/assembly_configuring-and-managing-network-access_configuring-basic-system-settings)\nand either use the default DHCP or provide a valid, static IP address and\nnetwork information. Ensure that the machine can connect to\n[the required external resources](/kubernetes-engine/distributed-cloud/bare-metal/docs/installing/proxy#prerequisites),\nsuch as `cloud.google.com`.\n\nIf Docker fails to run, check that the Docker daemon is running with the following command: \n\n sudo systemctl start docker"]]