2023/11 14

controller/ replicaSet & deployment

하씨발 이틀동안 적어놓은 포스팅 임시저장 싹다 사라져서 다시 적어야 한다 ㅈ같은씨발 # replicaSet replicaSet은 replication controller와 거의 비슷하다고 봐도 될것같다. 그냥 파드 수를 보장하는기능은 가능한데 조금더 업그레이드 된 기능은 더욱 풍부한 라벨셀렉터를 지원한다는 점이다. 단순히 replication controller는 라벨을 AND연산으로 관리한다고 하면, replica Set의 셀렉터는 OR연산등 여러가지를 지원한다. # replication controller와 replicaSet의 yaml형식 비교 replication controller와 뭐 다 비슷하게 생겼지만 셀렉터가 다르다. 얘는 matchLabels으로 한번 더 들어간다. 그리고 그 이후는 키..

k8s/concept 2023.11.30

controller/ 개념 & replication controller

# 개념 이전에 pod 실행 순서를 설명하면서 써먹었던 그림인데, 파드가 생성되는건 먼저 API에 명령어로 요청을 보내고 etcd에서 노드 정보들을 가져와서 scheduler가 파드를 노드에 알아서 분배해주는 과정으로 pod가 생성된다고 했다. 근데 그 전에도 있던 controller도 포함했는데 설명에 없었다. controller는 pod의 갯수를 보장해주는? 그런거라고 볼 수있다. aws의 auto scaling?에서의 수평적 확산 개념과 연동지어서 생각 할 수도 있을듯..? 파드의 갯수를 보장해준다. 이걸 마스터 노드의 controller가 보장을 해주게 된다. # 컨트롤러의 종류 이렇게 일곱가지의 컨트롤러 종류가 있는데, cronjob - job은 짝꿍, deployment와 replicaset은..

k8s/concept 2023.11.28

pod/ static pod & resource & 환경변수

## static pod 만들기 보통 마스터노드에서 컨테이너를 만들면 저렇게 api서버를 거쳐서 pod가 생성된다. 하지만 static pod는 워커 노드 자체에서 kubelet이 직접 pod를 만든다는 것이다. 즉 이 pod는 kublet데몬에 의해 관리되는 파드이다. 마스터노드에서 확인가능 # 직접 만들어보자. 일단 워커 노드중 아무거나 하나 가서 해당 파일 내용을 보자. cat /var/lib/kubelet/config.yaml 요기에 static pod path가 있음 static pod path는 /etc/kubernetes/manifests 라고 한다. 직접 이 경로에 가보자. cd /etc/kubernetes/manifests https://kubernetes.io/docs/concepts/..

k8s/concept 2023.11.27

pod/ liveness-probe(self-healing)

# 기본개념 pod안에있는 컨테이너가 자체적으로 자가검진을 해서 원하는 기능이 동작안할경우 컨테이너를 재시작 해주는 기능이다. 예를들어 웹서버를 띄웠는데 80포트로 연결했는데 응답이 500번대가 뜨면 컨테이너를 재시작 해주는 거임. # 종류 - httpGet 웹사이트에 80번포트로 게쏙 get요청보내고 응답하는지 확인함. 200응답안주면 컨테이너 재시작해주는거다. - tcpSocket tcp연결을 지정한 포트로 시도하고 안되면 컨테이너 재시작 - exec 커맨드 게속 날리고 종료코드가 0이아니면 컨테이너 재시작 걍 커맨드 날렸는데 응답이 없으면 재시작하는 그런 기능이다. # http로 예를 들어볼까? apiVersion: v1 kind: Pod metadata: name: test-pod spec: co..

k8s/concept 2023.11.27

pod/ flow & init container & infra container

# 파드 생성 순서 우리가 마스터 노드에서 kubectl 명령어를 치면 먼저 api 가 문법 맞는지 체크부터한다. 그다음, etcd정보(node정보들)를 가져와서 스케줄러에 보낸다. etcd가 노드 관리하는듯? 스케줄러는 어느 노드에 pod를 띄울지 정하는애니까 이런 정보를 받아야 노드를 정할 수 있을것이다. 스케줄러는 파드를 어느 node에 띄울지 선택하고 띄워준다. 띄워주고 나서는 running상태가 된다. 배치 받고나서는 running상태 or fail상태 뭐 단순하게 배웠는데, 실제 환경에서 테스트를 해보면.. 현재 위아래로 세션을 두개 띄웠고 위 세션에서는 kubectl get pods -o wide --watch 명령어로 파드생성을 실시간으로 모니터링하고 있다. 이제 아래 세션에서 새로운 파드..

k8s/concept 2023.11.26

pod/ 멀티파드, yaml파일 생성

# pod란? 컨테이너를 표현하는 k8s의 최소단위(멀티컨테이너도 됨) 내가 실수 했던게.. 파드하나가 컨테이너인줄 알았는데 api단위라더라. 아이피 하나씩 부여되고 여기엔 여러 컨테이너가 들어갈수도, 하나만 있을수도 있을 수 있는듯. 포트포워딩으로 나눠줄테고.. 예를들어 3티어 아키텍쳐를 파드하나에 쑤셔넣었다고 보면 될듯 암튼 이렇다고 한다. # pod 만들어서 돌리기 kubectl run 파드이름 --image=nginx:latest # 야믈 템플릿 따기 kubectl run test --image=nginx:latest --dry-run -o yaml 현재 생성된걸로 할수도 있고..한데 기본적인 yaml따려면 이게 가장 편한듯? >xxxx.yaml로 아예 파일생성까지도 할 수 있다. 이 명령어를 치..

k8s/concept 2023.11.26

moba x term 아래로 생겨버리는 창 없애기

이렇게 화면 1/3을 잡아먹는 창이 뜨고는 한다. 뭐 필요해서 쓴다면야 유용하겠지만 저렇게 화면에 고정되버리면 여간 짜증나는게 아니다. 가끔 쓰다가 보면 계속 생겨서 없앨때 moba x term을 껐다 켰는데 그럼 또 다시 키고 ssh 연결하고.. 복잡하다. 구글링을 해봤지만 이외로 해결방법은 등잔밑에 있었다. cntl + alt + m을 누르란다.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

etc/devTools 2023.11.26

쿠버네티스 namespace

# 기본 개념 네임스페이스는 리소스들을 분리하고 관리하는거다. 그냥 컴퓨터에서 디렉토리 같은 분류라고 보면 될 것같다. 물론 디렉토리안에 또 다른 디렉토리 넣는것처럼 네임스페이스 안에 또다른 네임스페이스를 만들 수는 없다. 중첩은 불가능. # namespace생성 - 커맨드로 만들기 kubectl create namespace 네임스페이스이름 이렇게도 만들 수 있다. - yaml파일로 만들기 namespace는 metadata부분에 들어간다. apiVersion: v1 kind: Namespace metadata: name: my-namespace 여기서 이름부분을 바꾸고 kubectl create -f 파일경로 이렇게 만들어진다. # 네임스페이스 리스트 확인 난 이렇게 yaml파일 하나에 두개의 nam..

k8s/concept 2023.11.23

Personal Toy Project - mumu tv

Introduction안녕하세요? Nurd Worker입니다! 반갑습니다.😊이번에 소개해드릴 프로젝트는 mumu tv프로젝트입니다~네트워크 국비교육과정중에 개인마다 자율 토이프로젝트 과제가 나와서 만든 프로젝트입니다.주제는 도커와 도메인이구요~ 당시에 누누티비 이슈가 뉴스로 굉장히 핫했어서 제작한 스토리텔링형 프로젝트입니다 ㅎㅎ어려운 기술은 없으나, 발표때 수강생분들이 많이들 재밋어 하셨습니다ㅎㅎㅎ직접 vm과 서버를 돌리면서 발표를 했어서 흥미로워하시더라구요~소개영상은 스토리위주로 만든 영상이구 포스팅은 기술적인 내용입니다~기술적인 내용은 미리 포스팅했었구 1년지나서 포트폴리오로 쓰려고 컨텐츠를 추가하느라 현재 소갯글과는 어투가 좀 다릅니다 ㅋㅋㅋ그럼 재밋게 읽어주세요!++ 추가해서 시연영상원본은 포스..

project/selfProject 2023.11.14