보조 프로젝트를 위한 Raspberry Pi K8s 서버 구축

너는 너의 그 부대 항목을 건네줄 생각은 없니? 그러나 클라우드 컴퓨팅에 쓴 돈은 가치가 없다고 생각하니?
이것은 내가 이 프로젝트를 구축하는 주요 동기이다. 나의 모든 보조 프로젝트에 위탁 관리 해결 방안을 제공하는 것이다.그래서 제가 생각해낸 해결 방안을 나눠보도록 하겠습니다.
이 프로젝트의 목표는 다음과 같습니다.
  • 내 경우 로컬 네트워크나 와이파이에 있는 모든 사람이 접근할 수 있다.
  • 낮은 유지 보수.
  • 구축 또는 변경이 용이합니다.
  • 이러한 목표를 달성하려면 다음이 필요합니다.
  • 복분자 Pi(나는 새로운 4B 모델을 사용했다)로 적어도 4GB 메모리가 있고 총 4개의 핵이 있다.
  • Pi에는 최소 20GB의 무료 스토리지 공간이 있습니다.
  • 와이파이를 사용하면 로컬 네트워크 자격 증명을 제공해 주십시오.
  • USB 키보드, HDMI 슬롯 디스플레이, 마이크로HDMI 케이블.
  • 좋아, 일단 이것들이 다 준비되면 우리 시작하자.
  • 설치Raspberry Pi Imager
  • 마이크로SD 카드에 Ubuntu 20.04.02 LTS(64비트 버전)를 설치한다.

  • Edit the network config(와이파이만 사용할 때)
  • SD 카드를 Pi의 슬롯에 넣습니다.키보드와 모니터를 Pi에 연결하고 Pi를 전원에 연결합니다.
  • 일단 시작하면 로그인과 비밀번호를 요구합니다.동시 사용ubuntu하면 암호를 변경하라는 메시지가 표시됩니다.그리고 비밀번호를 설정합니다.
  • 서버를 재부팅합니다.sudo reboot
  • 설치 net-tools 구성 요소sudo apt-get install net-tools
  • 네트워크에 있는 서버의 IP 주소를 가져옵니다.이를 위해 우리는 ifconfig하고 답을 찾아낼 수 있다.와이파이를 사용해서 이 설정을 한다면 wlan0 제목 아래의 내용을 보십시오.
  • SSH를 설치합니다.컴퓨터에서 명령을 실행합니다ssh-copy-id ubuntu@<ip_of_your_server>.암호를 입력하라는 메시지가 표시됩니다.그것을 제공하면 너는 완성할 수 있다.또한 사용하기 편리하도록 pi의 사용자 정의 호스트 이름을 사용하여 ssh 프로필을 업데이트하십시오.
  • 이제 모니터나 키보드를 Pi에 연결하지 않고도 원격으로 서버에 액세스할 수 있습니다.
  • 이제 설치가 완료되었습니다.응용 프로그램을 배치하는 방법은 매우 많다.본문에서 저는 MicroK8s을 사용할 것입니다.
  • SSH에서 Pi로
  • Pi에서 사용cgroups.Picgroup_enable=memory cgroup_memory=1의 끝에 /boot/firmware/cmdline.txt를 추가합니다.
  • 재부팅.sudo reboot
  • 마이크로k8s를 설치합니다.sudo snap install microk8s --classic
  • 현재 사용자를 microk8s 그룹에 추가하고 .kube 캐시 디렉토리에 액세스합니다.
  • sudo usermod -a -G microk8s $USER
    sudo chown -f -R $USER ~/.kube
    
  • 클러스터를 시작합니다.microk8s start
  • 상태를 검사한다.microk8s status
  • 응용 프로그램을 로컬 네트워크에 공개할 수 있도록 DNS와 포털을 활성화합니다.microk8s enable dns ingress
  • 클러스터 구성kubectl을 가져옵니다.microk8s config
  • 위 단계에서 얻은 kubectl 구성을 컴퓨터에 복사하여 컴퓨터에서 제어 평면에 액세스할 수 있도록 합니다.이렇게 하면 클러스터에 액세스하려면 SSH를 사용하여 서버에 연결할 필요가 없습니다.
  • 현재 우리의 단일 노드 집단은 이미 설치되어 있어서 사용할 수 있다.현재 프로젝트를 용기로 포장해서 이 설정에 배치할 수 있습니다.
    또는, K8s에 대해 잘 모르거나 사용하지 않으려면, 간단한 docker 용기, 심지어 일반적인 오래된 서비스로 프로젝트를 배치할 수 있으며, 이 설정은 여전히 유효합니다.
    그럼, 우리는 목표에 도달했습니까?
  • 우리는 로컬 네트워크에서 접근할 수 있는 것들을 만들었다.✅
  • 서버의 자원 제한을 기억하고 항상 전원과 네트워크에 연결하면 됩니다.✅
  • 그 이후로 저는 k8s배치와 변경을 사용해 왔습니다.프로젝트에서 Github 작업을 사용하여 docker 이미지를 자동으로 구축합니다.따라서 실제로는 하나의 명령(IDE)만이 git push를 담당합니다.😉) 배치된 프로젝트에 새로운 변경 사항을 적용하기 위해 실행해야 합니다.kubectl rollout restart deployment/<deployment_name>
  • 해커!오늘 새로운 걸 배웠으면 좋겠어요.😄.

    좋은 웹페이지 즐겨찾기