chatgpt한테 물어보았다. microk8s와 kubernetes의 차이가 뭐야?라고 물어보니
Kubernetes
Kubernetes는 원래 Google에서 개발한 강력한 오픈 소스 컨테이너 조정 플랫폼입니다. 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하도록 설계되었다.
Kubernetes는 자동 확장, 롤링 업데이트, 서비스 검색, 로드 밸런싱, 스토리지 오케스트레이션 등을 포함하여 컨테이너화된 애플리케이션을 관리하기 위한 포괄적인 기능 세트를 제공한다.
Microk8s
MicroK8s는 Canonical(Ubuntu 뒤의 회사)에서 개발한 경량 Kubernetes 배포판이다. MicroK8s는 단일 노드 Kubernetes 클러스터를 워크스테이션이나 VM에서 빠르게 설정할 수 있는 단순화된 배포 모델을 제공한다. 단일 경량 패키지로 설치 및 구성, 관리가 쉽다.
MicroK8s는 로컬 개발 및 테스트에 필수적인 기능을 갖춘 간소화된 Kubernetes 경험을 제공하는 것을 목표로 합니다. 핵심 Kubernetes 구성 요소가 포함되어 있지만 일부 고급 기능을 사용하지 못하거나 추가 구성이 필요할 수 있다.
간단히 말하면 쿠버네티스는 쿠버네티스가 가진 기능을 모두 소화하지만 경량이고, 마이크로 쿠버네티스는 쿠버네티스보다 더욱 경량이지만, 이의 기능을 더욱 간소화하여 사용할 수 있다.
설치하기
위의 방법은 오프라인에서 사용할 수 있는 방법인데 기본적으로 네트워크가 되는 os에서 사용하기 때문에 방법을 참고사이트에 추가하고자 한다. 이를 보고 활용하기를 바란다.
그리고 버전은 항상 바뀌니 참고사이트를 들어가서 해당 버전이 바뀌지 않았는지 확인한다.
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
newgrp microk8s
sudo su - $USER
- sudo usermod -a -G microk8s $USER : 현재 사용자( $USER)를 microk8s 그룹에 추가한다. 그룹에 사용자를 추가하면 **sudo**모든 명령에 사용할 필요 없이 MicroK8과 상호 작용할 수 있는 권한이 부여된다.
- sudo chown -f -R $USER ~/.kube : 디렉토리와 그 내용의 소유권을 **~/.kube**현재 사용자( $USER)로 변경한다. 디렉터리 **~/.kube**는 Kubernetes 구성 파일이 **config**저장되는 곳이다. 소유권을 사용자로 변경하면 사용자는 높은 권한 없이도 이러한 파일을 읽고 쓰는 데 필요한 권한을 갖게 된다.
- newgrp microk8s: **microk8s**로그아웃했다가 다시 로그인할 필요 없이 그룹과 관련된 권한을 상속받을 수 있다.
- sudo su - $USER: 권한(sudo)을 지정한 사용자에게 부여한다.
쿠버네티스 대시보드
: 명령어 입력 필요없이 모든 쿠버네티스 컴포넌트의 관리 및 모니터링이 가능하다.
m enable dns metrics-server dashboard
m ctr i import - < <파일이름.tar>
<파일이름>
docker.io/kubernetesui/dashboard:v2.7.0
docker.io/kubernetesui/metrics-scraper:v1.0.8
kubectl -n kube-system edit svc kubernetes-dashboard
# Type: ClusterIP → NodePort
- ClusterIP: 클러스터 안에서의 파드-서비스간 통신
- NodePort: 외부에서 클러스터 접속 허용
kubectl -n kube-system describe svc kubernetes-dashboard
위의 명령어를 통해서 들어가면 되는데 외부 통신을 위해 노드포트로 변경했으니, 이에 따른 노트포트의 구성을 봐야한다.
💡 https://<마스터.노드.ip.주소:nodeport
위와 같이 URL을 입력하면 대시보드가 보이게 된다. 처음에 들어가게 되면
대시보드에서 토큰을 입력하라고 한다.
microk8s config
위의 명령어를 통한 토큰을 입력하면 된다.
추가설명)
여기서 대시보드는 Kubernetes Addon이라고 한다.
Kubernetes Cluster는 크게 Master Node, Worker Node로 구성되지만 추가로 Addon 도 존재한다. Addon은 Kubernetes Cluster 에서 기능을 구현 및 확장하는 역할을 담당한다.
Kubernetes Cluster가 필요한 기능을 실행하기 위해 pod와 service 형태로 존재하며, Addon이 사용하는 Namespace 는 kube-system이며Addon에 사용되는 Pod는 Deployment, Replication controlller 등에 의해 관리됨. 외부 연동 라이브러리라고 보면 된다.
kubernetes Cluster를 위한 Web 기반 UI.일반적으로 kubernetse Cluster에 명령을 내릴 때 CLI에서 kubectl을 사용하는데 가시화하여 관리의 편의성을 제공하기 위해 대시보드를 제공한다. 종류 :kubernetes Dashboard, Weave Scope, NexClipper(국산),