일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트공부
- JPA
- nestjs
- 카프카
- Flutter
- JPA예제
- 스프링부트
- 스프링 공부
- nestjs공부
- JPA스터디
- JPA공부
- Kafka
- DDD
- 플러터 공부
- 알고리즘공부
- JPA 공부
- 스프링공부
- 코테준비
- 자료구조공부
- 프로그래머스
- 기술공부
- K8S
- querydsl
- nestjs스터디
- 플러터 개발
- Axon framework
- 자바공부
- 스프링
- 기술면접공부
- 코테공부
- Today
- Total
목록K8S (7)
DevBoi
k8s 공부할때는 뭘로 할까? 1. GKE 구글 관리하는 관리형 클러스터 따라서 클러스터 세부설정을 집적 할 수 없으므로 공부를 하는데 걸림돌 장점은 클라우드 네이티브를 어느정도 바로 사용할 수 있도록 세팅되어있다는점 2. 온프레미스(우분투) 단점은 클라우드 네이티브에 필요한 모든 구성요소를 직접 세팅해야한다. 장점은 쿠버네티스 클러스터의 모든 설정을 직접 조작할 수 있으므로, 서비스를 구성하는 다양한 기능 테스트 가능 위 두개로 대부분 공부를 한다. 뭐 장,단점은 이렇게 적을 수 있다. Minikube나 k3s도 사용가능한데, 이건 진짜 단순히 스터디용... 정확히는, K8s kubectl 연습용에 가깝다.. 나는 GKE를 사용해서 일단 대략적인 공부를 해보려고한다. * GKE란? GKE는 kubern..
Resource ex. pod의 버전을 어떻게 알수 있을까? kubectl explain을 쓰게 되면, 해당 리소스의 버전을 알수 있다. 예를 들어 Pod가 v1 인지 apps/v1인지 모른다. kubectl explain pod를 하면, 리소스에 대한 버전 정보를 알 수 있다. 또한 yaml에서 - 를 쓰는건 배열형태의 값을 표현하기위한 문법이다. 이건 몰라서 추가로 적어놓는다.
모든 curl 은 jwt나 인증에 대한 과정을 헤더에 포함해야함 H "Authorization: Bearer {Token}" 는 모든 curl 헤더에 공통 적용 필요, 하위 정리 리스트에서는 해당 내용 생략 Api-server가 32769로 열려있다고 가정, 해당 서버 정보는 전 post에서 확인 가능 Pod 생성, 수정 (파일 단위) : curl -k -H "Authorization: Bearer {Token}" -H "Content-type: application/yaml" --data-binary @smithprjPods.yaml https://127.0.0.1:32769/api/v1/namespaces/default/pods 정보 조회 : curl -H "Content-type: applicati..
Deployment는 쿠버네티스에서 가장 널리 사용되는 오브젝트 이다. ReplicaSet을 이용해서 Pod을 업데이트하고, 이력을 관리하여 롤백 하거나 특정 버전으로 돌아 갈 수 있다. 라는데... 감이 완전히 오지는 않네... 우선 해보자 ReplicaSet과 상당히 유사하며, 심지어 replica를 설정하는 부분도 있다. 템플릿과 같이 스케일 아웃시 어떤 포맷 기준으로 할지도 적어 놓고, 컨테이너에 대한 이름과 이미지도 지정이 되어있다. 이런식으로 하면, deploy에 대한 걸 확인 해 볼 수 있다. 레플리카셋이랑 뭐가다름? 이라고하면 업데이트할 때 다르다고한다. 기존설정에서 이미지 태그를 변경하고 적용해보자 마지막만 보자, 이미지 태그를 v1 -> v2로 변경하고 apply를 하면, 기존걸 삭제하..
Pod을 단독으로 만들면, Pod에 어떤 문제가 생겼을때 자동으로 복구되지가 않는다. 이러한 pod을 정해진 수만큼 복제하고 관리하는것이 ReplicaSet이다. 아래와 같이 생성한다. ReplicaSet이고, template은 삭제되어 추가될때 해당 템플릿 기준으로 생성된다는 의미이다. 또한 selector 는 label기준으로 가져오게 된다. 즉, 이렇게 작성하여, 생성하면 이렇게 된다. 또한 kubectl apply -f 로 yaml 파일 기준 생성하고, kubectl get 하면 아래와 같다. ReplicaSet은 label을 체크해서 원하는 수의 pod을 생성한다. 만약에 label에서 app-을 하여, app을 빼면, replicaset에서 app에 대한 걸 찾지못하고 0개가 되었다고 판단, ..
pod이라는 오브젝트를 생성한다고 해보자 각각의 yaml 파일을 만들고, create를 하게 되면 이렇게 생성이된다. 나는 생성하다가 오류가 났다...ㅋ 그리고 ArgoCD라는 custom resource기준대로작성된 문서이다. 문서는 어느정도 비슷한 유형을 따른다. 각각 풀스택로 정의되면 k8s는 이런방식으로 동작을 하게 된다. 직접 실습 하면서 확인해보자. 이게 쿠버네티스의 과정을 도식화 한것이다. 이제 실습을 해보자
grafana로 admin을 보고 helm으로 업데이트하고 kubectl로 명령어를 치고... 우선 K8S에 대한 구조를 익혀보자 우선 이런 구조이다. 어떤 서버에 용량이 여유가있어서, 새로운 컨테이너를 배포하려고하면 어떤 서버에 넣어야할까? 사람이 직접 골라서 하지않는다. Master서버에서 어떤 서버에 여유가있어서 이 컨테이너가 어떤 서버에 들어갈 수 있는지를 골라서 해준다. 1) etcd 모든 상태와 데이터를 저장하고 분산 시스템으로 구성하여 안전성을 높인다. 가볍고 빠르면서 정확하게 설계가 디고, key-value 형태로 데이터를 저장한다. TTL, watch같은 부가 기능을 제공하기도 한다. 모든 상태를 저장하기 때문에 백업은 필수이다. 대부분 두 대정도 돌아간다. 2) Scheduler 컨테이..