@ 라즈베리파이 OS에 Kubernetes 설치 - 버전
- OS : Raspberry Pi OS Lite 64bit
- Raspberry : Raspberry4 8G ram
- Kubernetes : 1.23 , 1,22 , 1,21 3가지 버전 설치 시도
@ 라즈베리파이 OS에 Kubernetes 설치 - 결과
설치 실패 - 다음과 같은 오류가 발생한다.
* 누군가 동일한 조건에서 삽질하기 않기를 바라는 마음으로 공유합니다.
@ Ubuntu 20.04 LTS 라즈베리파이 버전 설치
https://ubuntu.com/download/raspberry-pi
64bit 버전을 다운로드 하여 설치 되어야 메모리 3.25기가 이상 지원이 가능하다.
Kubernetes 설치하여
몇개의 POD를 설치하였다.
하나는 DB가 필요한 서비스라 정상적인 POD가 만들어 지지 않아
READY 0/1에서 재시도만 계속 하고 있다.
kube-system 네임스페이스에서
시스템용 POD가 제대로 동작하고 있다.
top 명령으로 확인결과 몇개 올리지 않았는데 3기가 정도 밖에 여유가 없다.
디스크 사용현황을 확인했다.
PVC 사용때문인지 다음 디렉토리가 주욱~ 확인이 된다.
/var/snap/microk8s/common/run/~~~~
* 결론
라즈베리파이4에서 라즈베리파이 OS에서 Kubernetes가 정상적으로 설치가 되었으나
기능이 정상적으로 동작하지 않아 실패했다.
라즈베리파이용 Ubuntu 20.04 LTS 64bit에서는 Kubernetes가 정상적으로 설치가 되었으며
기능이 정상적으로 동작하여 성공했다. 다만, Dashboard는 동작하지 않았다.
@ 라즈베리파이 microk8s 설치 명령어 공유
* snap 설치
sudo apt update
sudo apt install snapd
sudo reboot
sudo snap install core
* microk8s 버전 목록
snap info microk8s
* microk8s 설치
sudo snap install microk8s --classic --channel=1.22/stable
sudo snap install microk8s --classic --channel=1.23/stable
#sudo snap install microk8s --classic
microk8s (1.23/stable) v1.23.3 from Canonical✓ installed
=> ubuntu microk8s 공식문서 URL
https://ubuntu.com/tutorials/install-a-local-kubernetes-with-microk8s#2-deploying-microk8s
* kubulet 이 동작하도록 c-groups 활성화
$ sudo vi /boot/firmware/cmdline.txt
# 아래 옵션 추가
cgroup_enable=memory cgroup_memory=1
$ sudo reboot
* 권한 설정
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
newgrp microk8s
* 참고 명령어
su - $USER
microk8s status --wait-ready
microk8s enable dashboard dns registry istio
microk8s kubectl get all --all-namespaces
microk8s dashboard-proxy
* iptables 설치
sudo apt install iptables-persistent
* 방화벽 설정
sudo iptables -P FORWARD ACCEPT
=> 안하면 kubectl get svc 등에서 오류 발생
위 설정은 바로 적용되며 우분투를 재시작해도 유지되게 하려면 /etc/sysctl.conf 파일에서 net.ipv4.ip_forward=1 를 주석 해제한다.
* 서비스 구동
sudo microk8s.start
* 상태 확인
sudo microk8s.status
sudo microk8s.inspect
* dns 필수 애드온 활성화
sudo microk8s.enable dns
* Ingress 활성화
microk8s enable ingress
* RBAC 활성화
microk8s enable rbac
* storage 활성화
microk8s enable storage
=> storageClassName: microk8s-hostpath 지정해야함
* metrics-server 활성화
microk8s enable metrics-server
* kubectl 별칭 지정
sudo snap alias microk8s.kubectl kubectl
* .kube/config 생성
sudo microk8s kubectl config view --raw > $kube/config
sudo chmod 666 ~/.kube/config
* dashboard 활성화 (라즈베리파이4에서 동작 하지 않음)
sudo microk8s.enable dashboard
* Dashboard 서비스의 클러스터 IP를 확인
microk8s.kubectl get svc/kubernetes-dashboard -n kube-system
-------------------------------------------------------
* 재시작
sudo snap restart microk8s
* k8S 리소스 전체 삭제
kubectl delete all --all
* k8S 제거
sudo snap remove microk8s
-------------------------------------------------------
@ docker 설치
sudo snap install docker
* docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우
sudo chmod 666 /var/run/docker.sock
또는
sudo chown root:docker /var/run/docker.sock
sudo usermod -a -G docker $USER
-------------------------------------------------------
* Git 설치
sudo apt update
sudo apt install git
-----------------------------------
다른 환경에서 방법
1. docker group이 없는 경우 생성(선택)
$ sudo groupadd docker
2. docker group에 해당 유저를 추가
$ sudo usermod -aG docker $USER
3. 다음 명령 실행해야 바로 적용 가능
newgrp docker
* Docker 빌드시 Internal Error (assembler_aarch64.hpp:1156), pid=1, tid=0x0000ffff80c57aa0 에러발생시
다음 도커 이미지 대체
FROM openjdk:8-jre-alpine
===>>>
FROM adoptopenjdk:8-jre-hotspot
'Cloud-뜬구름잡기' 카테고리의 다른 글
Vagrant VM destroy 및 재성성 하기 (0) | 2024.06.11 |
---|---|
Vagrant VM 이미지 백업 및 복원 방법 (0) | 2024.05.24 |
Docker 기반에서 vsftpd 사용시 Passive Mode 사용하기 (0) | 2022.09.20 |
Kubernetes(k8s)에서 kubectl 사용하여 mysql port-forward 하기 (0) | 2022.08.19 |