DevOps는 소프트웨어 엔지니어와 개발자가 애플리케이션을 개발하고 배포하는 방식을 크게 변화시켰습니다. 이 혁명의 중심에 있는 기술 중 하나는 Kubernetes입니다.
MicroK8s(MicroKates)를 사용하여 Ubuntu에 Kubernetes의 로컬 인스턴스를 설치하는 방법을 살펴보겠습니다. 이 설정을 사용하면 안전하고 안정적이며 확장성이 뛰어난 방식으로 컨테이너 애플리케이션을 쉽게 호스팅할 수 있습니다.
MicroK8을 사용하는 이유
Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하여 DevOps 운영을 간소화하는 데 도움이 되는 오픈 소스 플랫폼입니다. Kubernetes는 K8이라고도 널리 알려져 있으며, 이름은 k 및 쿠버네티스라는 이름으로 MicroK8을 Micro Kubernetes 인스턴스로 생각하십시오.
Ubuntu를 실행하는 대부분의 퍼블릭 및 프라이빗 프로덕션 등급 클라우드 환경은 Charmed Kubernetes를 사용하여 컨테이너화된 앱을 관리합니다. 그러나 Charmed Kubernetes의 문제는 리소스가 부족하고 적절하게 구성하려면 높은 수준의 지식이 필요하다는 것입니다.
이것이 MicroK8s가 필요한 곳입니다. MicroK8s는 가상 머신 없이도 개발자의 PC, IoT 장치 또는 에지 장치에서 기본적으로 실행할 수 있는 작고 가벼운 업스트림 Kubernetes입니다. MicroK8s는 크로스 플랫폼이며 Intel 및 ARM 아키텍처 모두에서 실행할 수 있습니다.
MicroK8s는 최소한의 마찰로 Kubernetes에 익숙해지는 가장 좋은 방법 중 하나를 제공합니다. 이는 CNCF(Cloud Native Computing Foundation)의 인증된 Kubernetes 업스트림으로 Kubernetes 구현이 지정된 산업 표준에 따라 호환되고 상호 운용 가능함을 보장합니다.
1단계:Ubuntu에 MicroK8 설치
스냅 명령을 사용하여 Ubuntu에 MicroK8을 쉽게 설치할 수 있습니다.
sudo snap install microk8s --classic
또는 Ubuntu 소프트웨어 센터를 사용하여 GUI에서 MicroK8을 설치할 수 있습니다. microk8s를 검색하기만 하면 됩니다. 설치를 클릭합니다. 버튼.
2단계:MicroK8용 방화벽 구성
포드와 인터넷 간의 원활한 통신을 보장하려면 방화벽의 컨테이너 네트워크 인터페이스에서 수신 및 발신 통신을 활성화해야 합니다.
포드는 Kubernetes에서 배포 가능한 가장 작은 컴퓨팅 단위입니다. 공유 스토리지 및 네트워크 리소스 등이 있는 단일 또는 컨테이너 그룹일 수 있습니다.
sudo ufw allow in on cni0 && sudo ufw allow out on cni0
그런 다음 다음 명령을 실행합니다.
sudo ufw default allow routed
UFW를 사용하여 Ubuntu 방화벽을 구성하는 방법
자세히 알아보기3단계:MicroK8s 그룹에 사용자 추가
현재로서는 sudo를 사용해야 합니다. 명령을 사용하여 대부분의 MicroK8s 명령을 실행할 수 있습니다. 이것은 프로덕션 서버에서 좋은 보안 조치이지만 개발 시스템에서는 필요하지 않을 수 있습니다.
sudo를 사용하지 않으려면 MicroK8s 그룹에 사용자를 추가하세요.
sudo usermod -aG microk8s $USER
또한 현재 사용자를 ~/.kube의 소유자로 만드십시오. 디렉토리.
sudo chown -f -R $USER ~/.kube
변경 사항을 적용하려면 다음 명령을 실행하여 사용자 그룹을 다시 로드하십시오.
newgrp microk8s
자세히 알아보기:Linux에서 사용자 그룹을 관리하는 방법
4단계:중요한 추가 기능 활성화
기본적으로 MicroK8s에는 에지 및 IoT 장치에서 최소 설치 공간을 달성하기 위한 최소한의 기능만 포함되어 있습니다. 그러나 몇 가지 중요한 애드온을 설치하여 MicroK8s 서비스를 관리할 수 있습니다. microk8s로 DNS, 대시보드 및 스토리지 추가 기능을 활성화합니다. 명령.
microk8s enable dns dashboard storage
DNS 추가 기능은 다른 서비스에 필요할 수 있으므로 항상 활성화하는 것이 좋습니다.
대시보드 추가 기능은 MicroK8의 서비스에 대한 그래픽 개요를 제공합니다. 서비스 관리에도 사용할 수 있습니다.
다음 명령을 실행하여 사용 가능한 MicroK8 추가 기능 목록을 볼 수 있습니다.
microk8s status
5단계:MicroK8s 대시보드 보기
대시보드 추가 기능을 활성화했으므로 웹 브라우저에서 MicroK8s 대시보드에 쉽게 액세스할 수 있습니다.
먼저 대시보드 포드의 IP 주소가 필요합니다. 다음 명령을 실행하여 얻을 수 있습니다.
microk8s kubectl get all --all-namespaces
위 명령의 출력에서 kubernetes-dashboard 서비스는 IP 주소 10.152.183.35에서 실행 중이며 TCP 포트 443에서 수신 대기 중입니다. 이 IP 주소는 무작위로 생성되기 때문에 대시보드 서비스에서 사용하는 것과 다를 수 있습니다.
브라우저에서 나열된 IP 주소로 이동합니다. 이 경우 https://10.152.183.35:443이 됩니다. . 올바른 URL을 가리키고 있는지 확인하세요.
보안을 위해 Kubernetes 대시보드는 로그인을 위한 인증 세부 정보를 요청합니다. 다음 명령을 실행하여 기본 대시보드 토큰에 액세스할 수 있습니다. 그런 다음 kubernetes.io/service-account-token을 복사합니다. 제시하고 토큰 입력에 붙여넣습니다.
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token
대시보드는 MicroK8 워크로드, 서비스, 구성, 클러스터 등에 대한 개요를 제공합니다.
6단계:MicroK8로 서비스 만들기
작동 중인 MicroK8을 보기 위해 두 개의 포드가 포함된 마이크로봇 서비스 배포를 생성해 보겠습니다. kubectl을 사용하여 포드를 만듭니다. 명령:
microk8s kubectl create deployment microbot --image=dontrebootme/microbot:v1
아래 명령어를 사용하여 마이크로봇 포드의 크기를 조정하세요.
microk8s kubectl scale deployment microbot --replicas=2
마이크로봇 배포를 노출하기 위해 서비스를 만듭니다.
microk8s kubectl expose deployment microbot --type=NodePort --port=80 --name=microbot-service
이제 service/microbot-service라는 이름으로 두 개의 마이크로봇 포드를 배포했습니다. . 다음 명령을 실행하여 마이크로봇 서비스 및 기타 서비스의 세부 정보를 볼 수 있습니다.
microk8s kubectl get all --all-namespaces
마이크로봇 서비스는 NodePort에서 실행 중이므로 PC의 브라우저를 통해 액세스할 수 있습니다. 이 경우 서비스는 임의로 생성된 포트 30353에서 실행됩니다.
브라우저에서 URL https://localhost:30353, 으로 이동합니다. 여기서 30353 위의 출력에 나열된 포트 번호입니다. 올바른 포트 번호를 사용하고 있는지 확인하십시오.
Kubernetes 대 Docker:어느 것을 선택해야 합니까?
이 가이드에서는 PC 또는 에지 장치에 로컬로 최소한의 Kubernetes 설치 공간을 설치하는 방법을 살펴보았습니다. Kubernetes는 많은 개발자 워크플로의 일부이며 프로덕션 환경에서 대규모 컨테이너화된 애플리케이션을 배포하는 데 널리 사용됩니다.
Kubernetes는 컨테이너 그룹을 관리하거나 오케스트레이션하는 데 사용됩니다. 도커 컨테이너를 쉽게 사용할 수 있습니다. 반면에 독립형 Docker는 주로 단일 컨테이너를 관리하는 데 사용됩니다. Docker를 사용할지 Kubernetes를 사용할지 선택하는 것은 팀의 역량과 프로덕션에 배포할 소프트웨어의 크기에 따라 다릅니다.