kubernetes 정리 - 1

박경현·2022년 10월 20일
0

aws를 사용해서 웹을 배포하기 전까진 왜 필요한지 몰랐었다
마찬가지로 도커를 배우고 사용하기 전까지는 왜 마이크로 서비스 방식이 필요한지 이유를 몰랐었다

하지만 최근 수업들을 듣고 스스로 공부를 하면서 얼마나 편협하게 공부했는지 깨달았다!!
더 넓게 보고 다양하게 배우려고 노력하자!!

쿠버네티스가 필요한 이유

무슨 공부를 하든 가장 중요한 건 왜 해야하나는 거다

그렇기에 이 물음을 풀고 공부를 시작해야 더 집중하고 몰입할 수 있다

내가 내린 정의는 도커를 도와주는 프로그램이라는 것이다!
쿠버네티스를 통해 여러 컨테이너를 하나로 묶어서 상태 관리를 할 수 있고
개발자가 쉽게 장애를 해결 할 수 있게 해준다 - linux를 많이 사용해보면 조금 더 쉬운 느낌이 든다

기본 명령어

kubectl

역할은 쿠버네티스의 상태를 확인하고 원하는 상태를 요청하는데 사용한다

apply - 원하는 상태를 적용 -f 옵션으로 파일과 함께 사용한다

kubectl apply -f [파일명 또는 URL]

get - 리소스 목록을 보여줌 (Pod,Replicaset,volume 등)

kubectl get [TYPE]
kubectl get pod -o json => json형태로 보여준다 

describe - 리소스의 상태를 상세히 보여준다

kubectl describe [TYPE/NAME] - name은 get으로 조회한 pod를 적어줄 수도 있다

delete - 조회한 이름을 선택해서 삭제!

kubectl delete [TYPE/NAME]

logs - 로그를 조회, 여러컨테이너가 안에 있으면 -c를 적어서 컨테이너를 지정 그리고 -f로 실시간 감시 가능!

kubectl logs -f [TYPE/NAME]

exec - 컨테이넝게 명령을 전달

kubectl exec [-it] [pod_name] -- [command]
kubectl exec -it wordpress -- bash => 이렇게 적으면 bash실행!

config - 설정 관리 여러 쿠버네티스 클러슽터를 컨텍스트로 설정하고 필요에 따라 선택 가능

kubectl config current-context ==> 현재 컨텍스트 확인

kubectl api-resources => apply나 exec같은 오브젝트들을 전부 확인할 수 있다!

Pod란

pod는 쿠버네티스에서 관리하는 가장 작은 배포 단위이다

도커는 컨테이너를 생성 / 쿠버네티스는 pod를 생성

kubectl run echo --image ~~ => 이러면 이름이 에코인 pod를 만들고 실행!

run 했을 경우 순서

  1. scheduler는 API서버를 감시하면서 할당 되지 않은 pod이 있는지 체크
  2. scheduler는 할당되지 않는 pod을 감지하고 적절한 노드 에 할당 => 미니큐베는 단일노드!
  3. 노드에 설치된 kubelet은 자신의 노드에 할당된 pod이 있는지 체크
  4. kubelet은 scheduler에 의해 자신에게 할당된 pod의 정보를 확인하고 컨테이너 생성
  5. kubelet은 자신에게 할당된 pod의 상태를 API서버에 전달

VSC에서 YML파일 만들어서 minikube에서 apply하는 법

  1. user에 일단 yml파일을 넣을 폴더를 만들자!
  2. VSCode에 yml을 작성하기!
  3. 만든 폴더안에 저장 후
kubectl apply -f [폴더명/파일이름.yml]

livenessProb, readinessProbe

다중 컨테이너

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글