일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JPA예제
- 자바공부
- 스프링
- 플러터 공부
- nestjs스터디
- 스프링부트공부
- 스프링공부
- 기술면접공부
- 프로그래머스
- DDD
- 알고리즘공부
- 코테공부
- Kafka
- JPA스터디
- K8S
- 스프링 공부
- nestjs공부
- JPA공부
- 스프링부트
- Axon framework
- 코테준비
- nestjs
- JPA
- querydsl
- 카프카
- JPA 공부
- 기술공부
- 자료구조공부
- Flutter
- 플러터 개발
- Today
- Total
목록Infra/[K8S & Docker] (37)
DevBoi
Pod을 단독으로 만들면, Pod에 어떤 문제가 생겼을때 자동으로 복구되지가 않는다. 이러한 pod을 정해진 수만큼 복제하고 관리하는것이 ReplicaSet이다. 아래와 같이 생성한다. ReplicaSet이고, template은 삭제되어 추가될때 해당 템플릿 기준으로 생성된다는 의미이다. 또한 selector 는 label기준으로 가져오게 된다. 즉, 이렇게 작성하여, 생성하면 이렇게 된다. 또한 kubectl apply -f 로 yaml 파일 기준 생성하고, kubectl get 하면 아래와 같다. ReplicaSet은 label을 체크해서 원하는 수의 pod을 생성한다. 만약에 label에서 app-을 하여, app을 빼면, replicaset에서 app에 대한 걸 찾지못하고 0개가 되었다고 판단, ..
우선 pod생성은 run으로 생성한다. kubectl run "pod name" --image "url or filename" kubectl run echo --image ghcr.io/subicura/echo:v1 kubectl describe pods/smith로도 내용을 봤다. kubectl run을 하게 되면 위와 같은 과정으로 pod이 생성된다 이전에 공부했듯이 , 스케줄러는 Api server를 통해 할당 되지 않은 pod을 검사하고, 이를 pod을 노드에 할당하도록한다. kubelet이 컨테이너를 생성하고, 이 안에 pod상태를 api server에 결과를 전달 한다. 다시 삭제하고 yaml 파일 기준으로 작성하여 pods를 생성해보도록하자 실제로는 이런 방식으로 pod을 생성하고 관리를 할..
1)apply - 원하는 상태를 적용한다. 보통 -f 옵션으로 파일과 함께 사용한다. ex. kubectl apply -f [파일 명 or URL] kubectl apply -f https://subicura.com/k8s/code/guide/index/wordpress-k8s.yml 이렇게 하면 원격 url에서 배포하는 yml 파일을 댕겨와서 적용 시켜준다. 뭔가 pods,deployment,service 들이 생성된 것을 볼 수 있다. 2)get - 리소스 목록을 보여준다. 이제 생성된 것을 봐야겠지? kubectl get pod kubectl get pods kubectl get po kubectl get pod,service kubectl get po,svc kubectl get all 위의 명령..
1. Docker desktop 설치 -> 쿠퍼네티스 enable 실행, window에서는 minikube사용하는데, command에 일일히 치는 ㅈㄴ 귀찮;;; 2. kubectl 설치 -> 가이드 많음, 그냥 curl로 설치 Docker desktop으로, setting에서 k8s enable하면, 요로케 로컬에서 Kubernetes Cluster를 띄워버리고, kubectl을 로컬 터미널에서 치면 정상적으로 확인이 가능하다. kubectl version --output yaml kubectl config get-contexts kubectl get pods -- all-namespaces 우선 위 커맨드 내용이 정상적으로 출력되면 이제 데모를 위한 준비가 완료된 것이다.
pod이라는 오브젝트를 생성한다고 해보자 각각의 yaml 파일을 만들고, create를 하게 되면 이렇게 생성이된다. 나는 생성하다가 오류가 났다...ㅋ 그리고 ArgoCD라는 custom resource기준대로작성된 문서이다. 문서는 어느정도 비슷한 유형을 따른다. 각각 풀스택로 정의되면 k8s는 이런방식으로 동작을 하게 된다. 직접 실습 하면서 확인해보자. 이게 쿠버네티스의 과정을 도식화 한것이다. 이제 실습을 해보자
가장 작은 배포 단위 Pod은 내부적으로 고유한 ip를 가질 수 있다. Pod안에 보통 컨테이너가 하나만 있지만, 두개 이상이 존재할 수도 있다. 하나의 pod에 컨테이너와 캐시, 로그 등으로 묶을 수도있다. ReplicaSet - 총 몇개의 pod으로 관리를 할 지를 결정한다. 만약에 3개의 pod만있는데, 4개를 요구한다면 pod template기준으로, 1개를 추가해준다. 무중단 배포를 위해, 배포버전을 바꾸면, 리플리카가 두개가 뜨게 되고 이를 세팅을 바꾸게되면 pod의 개수를 줄이거나 늘리게 해준다. Deployment 는 즉 ReplicaSet기준으로, 배포버전이 변경되었을때 무중단 배포를 위해서 존재하는 녀석이다. 클러스터 내부에서 사용하는 프록시 Pod들이 모인, 곳에 로드밸런싱을 해준다...
grafana로 admin을 보고 helm으로 업데이트하고 kubectl로 명령어를 치고... 우선 K8S에 대한 구조를 익혀보자 우선 이런 구조이다. 어떤 서버에 용량이 여유가있어서, 새로운 컨테이너를 배포하려고하면 어떤 서버에 넣어야할까? 사람이 직접 골라서 하지않는다. Master서버에서 어떤 서버에 여유가있어서 이 컨테이너가 어떤 서버에 들어갈 수 있는지를 골라서 해준다. 1) etcd 모든 상태와 데이터를 저장하고 분산 시스템으로 구성하여 안전성을 높인다. 가볍고 빠르면서 정확하게 설계가 디고, key-value 형태로 데이터를 저장한다. TTL, watch같은 부가 기능을 제공하기도 한다. 모든 상태를 저장하기 때문에 백업은 필수이다. 대부분 두 대정도 돌아간다. 2) Scheduler 컨테이..