목차
2. 컨테이너 런타임 설치 (컨테이너)
3. Kubeadm, Kubelet 및 Kubectl을 설치하십시오
4. 제어 평면 노드를 초기화합니다
5. POD 네트워크 설치 (CNI)
6. 작업자 노드에 가입하십시오
7. 선택 사항 : 단일 노드 제어 평면 활성화 (실험실)
8. 클러스터 기능을 확인하십시오
일반적인 문제 및 팁
시스템 튜토리얼 리눅스 베어 메탈 리눅스에서 Kubernetes 클러스터 설정

베어 메탈 리눅스에서 Kubernetes 클러스터 설정

Aug 04, 2025 am 12:43 AM

Bare Metal Linux 서버에서 Kubernetes 클러스터를 성공적으로 설정하려면 먼저 요구 사항을 충족하는 컴퓨터를 준비하고 시스템 구성을 완료 한 다음 Containerd, Kubeadm, Kubelet 및 Kubectl을 설치 한 다음 제어 평면 노드를 초기화하고 CNI 네트워크 플러그인을 설치하고 작업자 노드에 가입하고 확인을 수행해야합니다. 1. 정적 IP로 최소 2-3 Linux 서버를 준비하고 스왑을 끄고 필요한 커널 모듈 및 SYSCTL 매개 변수를 활성화하십시오. 2. 모든 노드에 컨테이너를 설치하고 SystemDCGroup = true를 구성하십시오. 3. Kubeadm, Kubelet 및 Kubectl을 설치하여 예약 된 것으로 표시하고 자동으로 업그레이드하지 마십시오. 4. 컨트롤 평면 노드에서 kubeadm init 명령을 실행하여 POD 네트워크 CIDR 및 제어 평면 IP를 지정합니다. 5. 플란넬과 같은 CNI 플러그인을 적용하여 POD 네트워크 통신을 정상화하십시오. 6. Kubeadm Join 명령을 사용하여 작업 노드에 가입하여 클러스터가 결합하십시오. 7. 선택적으로 주 노드 스테인을 제거하여 포드 일정을 허용합니다. 8. 모든 노드와 포드가 정상 상태인지 확인하기 위해 클러스터 기능을 검증하기 위해 Nginx 및 기타 테스트 응용 프로그램을 배포하십시오. 전체 프로세스는 노드 간의 시간 동기화를 보장하고 방화벽은 필요한 포트를 열고 호스트 이름을 고유하게 해결할 수 있으며, 자율적이고 제어 가능한 고성능 Kubernetes 생산 또는 학습 환경을 얻을 수 있습니다.

베어 메탈 리눅스에서 Kubernetes 클러스터 설정

베어 메탈 리눅스 서버에서 Kubernetes 클러스터를 설정하면 인프라, 더 나은 성능 및 비용 효율성 (생산 워크로드 또는 Kubernetes가 후드 아래에서 어떻게 작동하는지 배우는 것을 완전히 제어 할 수 있습니다. EKS 또는 GKE와 같은 관리 된 Kubernetes 서비스 (EKS 또는 GKE)는 운영을 단순화하지만 Bare-Metal 설정은 내부를 가르쳐주고 사용자 정의를 허용합니다. 올바르게 수행하는 방법은 다음과 같습니다.

베어 메탈 리눅스에서 Kubernetes 클러스터 설정

1. 베어 메탈 머신을 준비하십시오

Kubernetes를 설치하기 전에 Linux 시스템 (물리 서버)이 준비되었는지 확인하십시오.

요구 사항 :

베어 메탈 리눅스에서 Kubernetes 클러스터 설정
  • 2 ~ 3 기계 (1 개의 제어 평면 노드, 1 개의 작업자 노드)
  • 기계 당 2 개의 CPU 코어
  • 2GB RAM (4GB 권장)
  • 고유 한 호스트 이름, MAC 주소 및 Product_Uuids
  • 기계 간의 전체 네트워크 연결
  • 스왑 비활성화 (Kubernetes 요구 사항)
  • sudo Access 및 SSH 연결

단계 :

  • 지원되는 Linux OS 설치 (Ubuntu 20.04/22.04, Centos 7/8, Rocky Linux)

    베어 메탈 리눅스에서 Kubernetes 클러스터 설정
  • 안정적인 통신을 위해 정적 IP를 설정하십시오

  • 업데이트 시스템 :

     sudo apt update && sudo apt upgrade -y
  • 스왑 비활성화 :

     Sudo Swapoff -A

    /etc/fstab 에 스왑 라인을 주석으로 영구적으로 만듭니다.

  • 커널 모듈을 활성화하고 sysctl을 구성하십시오.

     Sudo ModProbe 오버레이
    sudo modprobe br_netfilter
    
    고양이 << eof | sudo tee /etc/modules-load.d/containerd.conf
    씌우다
    br_netfilter
    EOF
    
    고양이 << eof | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
    net.bridge.bridge-nf-call-Iptables = 1
    net.ipv4.ip_forward = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    EOF
    
    Sudo sysctl -시스템

2. 컨테이너 런타임 설치 (컨테이너)

Kubernetes는 컨테이너 런타임이 필요합니다. containerd 가장 일반적인 선택입니다.

컨테이너 설치 :

 sudo apt-get update && sudo apt-get install -y containerd

# 컨테이너를 cgroup 드라이버로 SystemD를 사용하도록 구성하십시오
Sudo mkdir -p /etc /containerd
컨테이너 구성 기본값 | sudo tee /etc/containerd/config.toml

# config.toml 편집 및 설정 :
# [플러그인. "io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
# systemdcgroup = true

sudo systemctl 컨테이너를 다시 시작합니다
Sudo SystemCTL 활성화 컨테이너

참고 : SystemdCgroup = true 사용하면 SystemD를 Init System으로 사용할 때 kubeadm 과의 호환성을 보장합니다.


3. Kubeadm, Kubelet 및 Kubectl을 설치하십시오

핵심 Kubernetes 도구입니다.

  • kubeadm : 클러스터를 초기화합니다
  • kubelet : 모든 노드에서 실행되고 포드를 시작합니다
  • kubectl : 클러스터를 관리하려면 CLI
 # Kubernetes Apt 저장소를 추가하십시오
Sudo apt-get 업데이트
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fssl https://packages.cloud.google.com/apt/doc/apt-key.gpg | Sudo gpg ---dearmor -o /etc/apt/trusted.gpg.d/kubernetes.gpg
echo "deb [signed-by =/etc/apt/trusted.gpg.d/kubernetes.gpg] https://apt.kubernetes.io/kubernetes-xenial main"| sudo tee /etc/apt/sources.list.d/kubernetes.list

Sudo apt-get 업데이트
sudo apt -get install -y kubelet kubeadm kubectl
Sudo Apt-Mark Hold Kubelet Kubeadm Kubectl

모든 노드 (제어 평면 및 작업자)에서 이것을 반복하십시오.


4. 제어 평면 노드를 초기화합니다

제어 평면 (마스터)으로 하나의 기계를 선택하십시오.

달리다:

 Sudo kubeadm init--pod-network-cidr = 10.244.0.0/16-콘트롤-평면-엔드 포인트 = your_control_plane_ip : 6443

선택한 CNI 플러그인을 기반으로 --pod-network-cidr 사용하십시오. 플란넬 의 경우 10.244.0.0/16 사용하십시오.

초기화가 완료된 후 :

 mkdir -p $ home/.kube
sudo cp -i /etc/kubernetes/admin.conf $ home/.kube/config
Sudo chown $ (id -u) : $ (id -g) $ home/.kube/config

kubeadm join 명령을 얻을 수 있습니다.


5. POD 네트워크 설치 (CNI)

Kubernetes는 컨테이너 네트워크 인터페이스 (CNI) 플러그인이 필요하므로 포드가 통신 할 수 있습니다.

플란넬 설치 :

 kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

몇 분 동안 기다리십시오. 상태 확인 :

 Kubectl은 포드를 얻습니다 -N Kube -System

모든 포드는 Running 상태에 도달해야합니다.

기타 옵션 : Calico, Cilium (보다 진보 된, 더 나은 보안).


6. 작업자 노드에 가입하십시오

각 작업자 노드에서 kubeadm init 에서 얻은 kubeadm join 명령을 실행하십시오.

 Sudo Kubeadm Join 192.168.1.10:6443-Token ...-Discovery-Token-Ca-Cert-Hash ...

제어 평면으로 돌아와 노드 확인 :

 kubectl 노드를 얻습니다

노드가 Ready 되는 데 1 분이 걸릴 수 있습니다.


7. 선택 사항 : 단일 노드 제어 평면 활성화 (실험실)

테스트를하고 제어 비행기에서 포드를 예약하려는 경우 :

 Kubectl Taint 노드-all node-role.kubernetes.io/control-plane-

생산에 권장되지 않습니다.


8. 클러스터 기능을 확인하십시오

간단한 배포로 테스트 :

 kubectl 배포 nginx를 생성합니다 --Image = nginx
Kubectl Expose 배포 nginx -포트 = 80 -타입 = nodeport

실행 중인지 확인하십시오.

 Kubectl Get Pods, SVC

노드의 IP와 지정된 NODEPORT를 통해 NGINX에 액세스 할 수 있어야합니다.


일반적인 문제 및 팁

  • 방화벽 : 6443 (API 서버), 10250 (Kubelet) 및 30000–32767 (NODEPORT 범위)과 같은 포트가 열려 있는지 확인하십시오.
  • 클록 동기화 : NTP ( chrony 또는 ntpd )를 사용하여 노드에서 시간을 유지합니다.
  • 호스트 이름 해상도 : 각 노드에서 DNS를 사용하거나 /etc/hosts 업데이트하십시오.
  • CNI 실패 : CIDR을 두 번 확인하는 것은 kubeadm init 에 전달한 것을 일치시킵니다.

전제 조건을 신중하게 따르면 베어 메탈에 Kubernetes를 설정하는 것은 어렵지 않습니다. 키는 노드, 올바른 네트워킹 및 올바른 CNI를 선택하는 일관성입니다. 일단 실행되면 Helm, Ingress 컨트롤러 또는 Prometheus와 같은 모니터링 도구를 배포 할 수 있습니다.

기본적으로 단계를 따르고 로그를보고 kubectl get nodes 확인하고 get pods . 대부분의 문제는 잘못 구성된 컨테이너, 누락 된 커널 모듈 또는 방화벽 규칙에서 비롯됩니다.

그게 다야 - 당신의 Kubernetes 클러스터는 실제 철에서 실행됩니다.

위 내용은 베어 메탈 리눅스에서 Kubernetes 클러스터 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

Linux를 설치하는 시스템 요구 사항 Linux를 설치하는 시스템 요구 사항 Jul 20, 2025 am 03:49 AM

LinuxCanRunonOnModestHardWareWithSpecificminIumpiRements.a1ghzprocessor (x86orx86_64)는 withedual-corecperececended.r AMSHOUDDBEATLEAST512MBFORCOMMAND-LINEUSOR2GBFORDESKTOPENVIRONTMENTS.DISKSPACEREQUIRESAMINIMUMOF5–10GB, 그러나 25GBISBETTERFORAD

Centos에서 Oracle Linux로 마이그레이션하는 방법 Centos에서 Oracle Linux로 마이그레이션하는 방법 Jul 14, 2025 am 09:19 AM

Centos 프로젝트에서 Centos Stream으로 초점이 전환되면서 이제 Rhel의 상류 역할을 할 수 있도록 Centos를 대체하기위한 몇 가지 Centos 대안이 제안되었습니다. 오랜 시간 동안 Centos는 소기업에 의해 널리 채택되었습니다

Linux에서 하드 드라이브를 안전하게 지우는 방법 Linux에서 하드 드라이브를 안전하게 지우는 방법 Jul 24, 2025 am 12:08 AM

실수로 시스템 디스크를 삭제하지 않도록 대상 하드 디스크 장치 이름 (예 : /dev /sda)을 확인하십시오. 2. sudoddif =/dev/Zeroof =/dev/sdxbs = 1mstatus = 전체 디스크에서 0 값을 덮어 쓰기위한 진행 상황 대부분의 시나리오에 적합합니다. 3. 3 개의 랜덤 데이터 덮어 쓰기에 sudoshred-v-n3/dev/sdx를 사용하여 복원 할 수 없는지 확인하십시오. 4. 선택적으로 파괴적인 쓰기 테스트를 위해 SudobadBlocks-WSV/Dev/SDX를 실행합니다. 마지막으로 sudohexdump-c/dev/sdx | head를 사용하여 모두 제로인지 확인하고 완벽한 안전 지우기를 확인하십시오.

Deepin 15 : 모든 사람을위한 아름답게 제작 된 Linux 배포 Deepin 15 : 모든 사람을위한 아름답게 제작 된 Linux 배포 Jul 14, 2025 am 09:10 AM

Deepin OS는 Linux 분포에서 중요한 진화를 나타냅니다. 분명히하겠습니다. "혁명적"과 약간 과장했을 수도 있지만 솔직히 말해서, 정말로 저에게 깊은 인상을 준 Linux 배포판을 발견 한 지 오래되었습니다.

' speedtest-cli '를 사용하여 명령 줄에서 인터넷 속도를 양방향으로 테스트하는 방법; 도구 ' speedtest-cli '를 사용하여 명령 줄에서 인터넷 속도를 양방향으로 테스트하는 방법; 도구 Jul 14, 2025 am 09:12 AM

우리는 항상 집과 사무실에서 인터넷 연결 속도를 확인해야합니다. 우리는 이것에 대해 무엇을합니까? speedtest.net과 같은 웹 사이트로 이동하여 테스트를 시작하십시오. 웹 브라우저에 JavaScript를로드 한 다음 Ping A에 따라 최상의 서버를 선택합니다.

Linux에서 SSH 서비스를 보호하기 위해 포트 노크 사용 방법 Linux에서 SSH 서비스를 보호하기 위해 포트 노크 사용 방법 Jul 14, 2025 am 09:20 AM

Port Knocking은 합법적 인 사용자가 서버에서 실행중인 서비스에 액세스 할 수있게하여 포트에 대한 액세스를 제어하는 멋진 기술입니다. 올바른 연결 시퀀스가 이루어질 때 방화벽이 기꺼이 OP

Linux에서 명령에 대한 도움을받는 방법은 무엇입니까? Linux에서 명령에 대한 도움을받는 방법은 무엇입니까? Jul 17, 2025 am 12:55 AM

Linux에는 명령 도움말을 얻는 4 가지 방법이 있습니다. 먼저 -help를 사용하여 기본 사용법을보십시오. 이는 일반적인 옵션과 명령의 매개 변수를 빠르게 이해하는 데 적합합니다. 둘째, Man을 사용하여 완전한 사람 페이지를보고 자세한 명령 설명과 예를 제공하십시오. 셋째, 정보를 사용하여 GCC 및 Make와 같은 복잡한 명령의 정보 탐색에 적합한 구조화 된 도움을 볼 수 있습니다. 넷째, Linux China, StackoverFlow 및 기타 플랫폼과 같은 네트워크 리소스 및 커뮤니티를 참조하여 중국 자료를 얻거나 특정 문제를 해결하십시오. 초보자는 help와 man에서 단계별로 마스터하는 것이 좋습니다.

Linux에서 사용자를 추가하는 방법 Linux에서 사용자를 추가하는 방법 Jul 21, 2025 am 03:32 AM

Linux의 사용자가 일반적으로 사용하는 userAdd 또는 AddUser 명령을 추가하십시오. 1. userAdd를 사용하는 경우 비밀번호와 홈 디렉토리를 수동으로 설정해야합니다. -M 매개 변수를 추가하여 홈 디렉토리를 만듭니다. 2. -s, -g 및 -u와 같은 매개 변수를 통해 쉘, 그룹 및 UID를 지정할 수 있습니다. 3. AddUser는 대화식 명령으로, 초보자가 구성을 자동으로 완료하는 데 적합합니다. 4. 권한, 사용자 이름 고유성 및 홈 디렉토리 권한에주의를 기울이십시오. 5. 사용자 델은 실수로 사용자와 홈 디렉토리를 삭제하는 데 사용될 수 있습니다. 이러한 주요 포인트를 마스터하면 사용자가 효율적이고 안전하게 관리 할 수 있습니다.

See all articles