FLY_AI: Kubernetes

dongjaee·2024년 1월 12일

SKT_FLY_AI

목록 보기
7/7
post-thumbnail

Microservice Architecture

**작은 서비스 여러개가 모여서 하나의 시스템을 제공하는 아키텍처**

→ 클라우드와 컨테이너가 잘 어울리는 아키텍처

Kubernetes

컨테이너 배포 및 확장, 관리를 자동화 해주는 오픈소스 플랫폼

로컬에서 Kubernetes 환경 구성 어려움
쿠버네티스 학습에 필요한 환경을 구축할 수 있는 로컬 머신용 쿠버네티스 도구인 Minikube를 활용하여 실습 진행

1.Minikube 설치

기본적으로 ubuntu 가상환경 세팅 후 진행함

curl -LO https://storage.googleapis.com/minikube/releases/v1.22.0/minikube-linux-amd64 
sudo install minikube-linux-amd64 /usr/local/bin/minikube

minikube --help ##정상 설치 확인

2.kubectl 설치

curl -LO https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kubectl --help

3.minikube 시작/삭제

##시작
sudo usermod -aG docker $USER
newgrp docker
minikube start --driver=docker

##삭제
minikube delete

YAML

데이터 직렬화에 쓰이는 포맷/양식 중 하나

  • 데이터 직렬화 : 서비스 간에 Data를 전송할 때 쓰이는 포맷으로 변환하는 작업 ex) kubernetes 마스터에게 요청 보낼 때 사용
  • 가독성
    • 사람이 읽기 쉽도록 디자인
  • Widely-use
    • kubernetes manifests 명세
    • docker compose 명세
    • ansible playbook 명세
    • github action workflow 명세

Pod

**쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위**
  • kubernetes는 pod단위로 관리 작업을 수행
  • 한 개 이상의 컨테이너와 스토리지, 네트워크 속성 가짐
  • 컨테이너를 하나만 사용하는 경우도 반드시 Pod로 감싸서 관리

vi 에디터로 yaml파일 생성 후 실습

Pod 조회

# 모든 namespace의 pod 조회
kubectl get pod -A     

# pod 하나 조회
kubectl get pod <pod-name>  

# pod 목록 자세히 출력
kubectl get pod -o wide    

# yaml형식으로 출력
kubectl get pod <pod-name>-o yaml   

Pod 로그

# pod 로그 확인
kubectl logs <pod-name> 

# pod의 로그 계속 보여줌
kubectl logs <pod-name> -f     

# pod 안에 여러개의 container 있는 경우
kubectl logs <pod-name> -c <container-name>            

Pod 내부 접속

# pod 내부에 접속 
kubectl exec -it <pod-name> -- <명령어>    

# pod 안에 여러개의 container가 있는 경우
kubectl exec -it <pod-name> -- <명령어>    

Pod 삭제

# pod 삭제
kubectl delete pod <pod-name>  

# YAML 파일 사용해서 삭제
kubectl delete -f <YAML-파일-경로>     

Deployment

Pod와 Replicaset에 대한 관리를 제공하는 단위

관리 ex) Self-healing, Scaling, Rollout(무중단 업데이트) 등

Deployment 조회

## Deployment 상태 확인
kubectl get deployment                                   

Deployment Auto-healing

  • Pod 삭제 시 이후 동일한 Pod 새로 하나 자동 생성됨

Deployment Scaling

## replica 개수 조정
kubectl scale deployment/nginx-deployment --replicas=5   

Deployment 삭제

## deployment 삭제
kubectl delete deployment <deployment-name>              

Service

Pod를 외부에서 접근하기 쉽게 추상화한 리소스

0개의 댓글