kubernetes 쿠버네티스?
기본 개념
파드(Pod)
- 배포할 수 있는 가장 작은 단위
- 컨테이너 = 프로세스
- 파드 = 논리적 호스트
노드(Node)
- 물리적 호스트 (여러 개의 파드를 실행 가능)
파드 셋 관리
- 컨트롤러
카인드(Kind)
- 도커 컨테이너를 노드로 사용하여 로컬 쿠버네티스 클러스터를 실행
- 카인드 사용하려면 도커 설치 필요
설치 및 기본 명령어
kubectl 설치
쿠버네티스 클러스터에 명령을 보내는 CLI 도구
brew install kubectlkubectl 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 가 있는 모든 키를 조회