Today
-
Yesterday
-
Total
-


  • [K8s] Kubernetes 및 minikube 실습
    DevOps/Container 2023. 5. 9. 23:37

    Kubernetes

    • 컨테이너화 된 워크로드와 서비스를 관리하기 위한 오픈소스
    • Container Ochestration Flatform

    Ochestration을 사용하는 이유

    • 자동화된 스케일링
    • 자동화된 롤아웃, 롤백
    • 자동화된 복구 (Self-Healing)
    • 자동화된 빈 패킹 (Bin Packing)
    • 시크릿과 구성 관리
    • 서비스 디스커버리와 로드 밸런싱
    • 스토리지 오케스트레이션
    • IaC를 사용한 운영

    Architecture

    • Control Plane (Master Node)
      • Kubernetes 전체를 통제 및 관리
    • Data Plane (Worker Node)
      • 실제 사용자의 애플리케이션 배포

     

     


    kubectl

    • kubernetes 클러스터와 통신하기 위한 CLI 도구

     

    OS : Ubuntu 20.04 LTS

     

     

    kubectl 설치

    curl -LO "<https://dl.k8s.io/release/$>(curl -L -s <https://dl.k8s.io/release/stable.txt>)/bin/linux/amd64/kubectl"
    
    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    
    chmod +x kubectl
    mkdir -p ~/.local/bin
    mv ./kubectl ~/.local/bin/kubectl
    
    kubectl version --client --output=yaml
    

    minikube

    • 쿠버네티스에서 스터디 및 테스트 하기 위해 지원되는 도구
    • docker기반으로 생성되기 때문에 사전에 docker가 설치 필수

    사전 조건

    • Docker
    • qemu
    • Hyper-V

    설치는 아래 페이지 참고

     

    install-dcoker.sh 파일 생성

    touch install-docker.sh
    
    vi install-docker.sh

     

     

    아래 코드 블럭을 복사하여 install-docker.sh에 붙여넣기

    set -euf -o pipefail
    
    DOCKER_USER=ubuntu
    
    # Install dependencies
    sudo apt-get update && sudo apt-get install -y \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg \
      lsb-release
    
    # Add Docker’s official GPG key
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    # Set up the stable repository
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # Install Docker CE
    sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    
    # Use Docker without root
    sudo usermod -aG docker $DOCKER_USER

     

    스크립트 실행

    # 유저에게 권한 부여 
    chmod u+x install-docker.sh
    
    # 스크립트 실행
    ./install-docker.sh

     

    설치 확인

    # 세션 재접속이 필요
    docker ps

    minikube 상태 확인

    minikube status 
    

    kubectl에 등록된 config 조회

    kubectl config view
    

    kubeconfig Context

    # 전체 및 현재 context 조회 
    kubectl config get-contexts
    
    # context 스위칭
    kubectl config use-context <name>
    

     


    실습

    리소스 조회

    kubectl get node
    
    kubectl get pod -A
    

    pod 생성

    # nginx이미지로 pod 생성
    kubectl run nginx --image=nginx
    # default 네임스페이스에서 pod 조회 
    kubectl get pod
    # pod 상세 내역 조회 
    kubectl describe pod nginx
    

    pod 삭제

    # nginx pod 삭제
    kubectl delete pod nginx
    

    minikube dashboard

    # GUI 환경에서 모니터링이 가능한 dashboard생성
    minikube dashboard
    

     

    댓글

www.devc4sh.com