Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

kubernetes 쿠버네티스?

INFRA, 20234 min read

기본 개념

파드(Pod)

  • 배포할 수 있는 가장 작은 단위
  • 컨테이너 = 프로세스
  • 파드 = 논리적 호스트

노드(Node)

  • 물리적 호스트 (여러 개의 파드를 실행 가능)

파드 셋 관리

  • 컨트롤러

카인드(Kind)

  • 도커 컨테이너를 노드로 사용하여 로컬 쿠버네티스 클러스터를 실행
  • 카인드 사용하려면 도커 설치 필요

설치 및 기본 명령어

kubectl 설치

쿠버네티스 클러스터에 명령을 보내는 CLI 도구

brew install kubectl
kubectl version
https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/
https://yuls-with-ai.tistory.com/419

golang 으로 kind(kubernetes in Docker) 설치

go install sigs.k8s.io/kind@latest

로컬에서 Kind 클러스터 생성 및 관리

도커 이미지를 빌드하고 Kind 클러스터에 로드한 다음 Helm을 사용하여 파드를 배포하고 로컬에서 실행할 수 있는 상태가 됩니다

Kind 클러스터 생성 정보 확인

Kind를 사용하여 로컬에서 Kubernetes 클러스터를 생성 kind create cluster Kubernetes 클러스터 정보 확인허는 명령어로 Kind 클러스터의 정보를 확인합니다. kubectl cluster-info 현재 로컬 머신의 Docker 엔진에서 실행 중인 컨테이너 목록이 표시 docker ps

도커 어플리케이션을 실행

도커 이미지 빌드(현재 디렉토리에서 Docker 이미지를 빌드) docker build -t github.com/test/proglog:0.0.1

Kind 클러스터에 이미지 로드 이전에 빌드한 Docker 이미지를 Kind 클러스터에 로드 클러스터 내에서 이 이미지를 사용할 수 있음 kind load docker-image github.com/test/proglog:0.0.1

Helm을 사용한 파드 배포

Helm 차트를 템플릿으로 변환 helm template proglog deploy/proglog

Helm 차트를 사용하여 Kubernetes 클러스터에 프로그램을 배포 helm install proglog deploy/proglog

배포한 파드의 상태를 확인 kubectl get pods

Kubernetes 파드에 로컬 포트 포워딩을 설정 이를 통해 로컬 머신에서 해당 파드의 포트로 접속할 수 있게 됩니다. kubectl port-forward pod/proglog-0 8400

실습: 개발 서버에서 Redis 데이터 조회

배경

쿠버네티스를 사용해 개발 서버를 운영중이다. (20240517) 개발 과정에서 redis 에 접속해 데이터를 조회해애 했다 실제 수거 간사님들이 로그인해서 업무를 조회할때 redis 의 값이 저장되기 떄문에 모두 잘 들어오셔서 업무에 차질이 없도록 확인해야 했다

개발서버 접속

ssh user @oo.oo.oo.oo

쿠버네티스에 실행 중인 pod 목록을 조회

kubectl --context={context_name} -n {context_name} get pods 로 조회시 목록이 나오며 NAME 으로 단건 조회 접속 가능하다

특정 파드 조회

단건: kubectl --context={context_name} -n {context_name} get pods | grep {pod-name}

파드 내에서 Redis-CLI 접속

kubectl --context={context_name} -n {context_name} exec -it {pod-name} redis-cli (참고)Bash 쉘을 통해 접속 kubectl --context={context_name} -n {context_name} exec -it {pod-name} -- /bin/bash

Redis-CLI에서 인증 문제 해결

(error) NOAUTH Authentication required. 발생 시

auth {비밀번호} 입력해 해결

(참고) Redis 키값 조회

운영배포 후 모두 로그인하셔서 redis 에서 정보를 저장하고 있는지 확인 keys *test* 로 키값에 test 가 있는 모든 키를 조회

https://freeblogger.tistory.com/10

© 2024 by GwiyeomGo Tech Blog. All rights reserved.