소개
쿠버네티스는 새로운 개념들이 많아서, 바로 실무에서 써먹지 않으면 금방 배운 내용을 까먹기 쉽습니다.
그렇다고 기회가 생길 때 까지 공부를 안하고 있을 수는 없겠죠? 그럼 이런 기회가 오더라도 선뜻 하겠다고 손을 들기도 어려운데..
이럴 때 방법이 있습니다.
혹시 자격증 공부를 해본 적 있으신가요? 아무리 실습을 많이 해보고 합격을 했다고 하더라도 이렇게만 공부한 기억은 빠르면 반년 뒤에 모두 잊혀져요.
하지만 공부한 내용을 블로그나 문서로 잘 정리해 놓거나, 자주 쓰는 명령어들을 잘 모으면서 공부한다면 진도가 느리게 나가더라도 이 시간은 잃어버린 시간이 아니라 의미 있는 시간이 되는 거죠.
그리고 코드를 쌓아두는 게 중요한데, 지푸라기 집처럼 빠르고 많이 쌓는 게 아니라, 벽돌집처럼 하나라도 우직하게 쌓는 게 중요해요. 그러기 위해선 내가 공부했던 기능들을 가지고 쌓아가는 형태의 프로젝트로 만들어 나가야 되요. 흔히 프로젝트를 한번 해보면 실력이 많이 는다고 하는 것과 같습니다.
그러다가 새로 알게 된 내용이 있으면 반영 시켜보고 문서도 업데이트를 해 놓으세요. 그럼 실력이 머릿속인 아닌 실질적인 내 자료로 남아요.
쿠버네티스는 코드(Code)로 인프라 환경을 만드는 현재 가장 좋은, 가장 많이 사용되는 기술 입니다.
예전에 한땀한땀 해왔던 수작업들을 이제는 코드로도 다 만들 수 있게 됐어요. 그래서 그동안 해왔던 경험을 가지고 코드를 미리 만들어 놓으면 작업 속도는 말도 안되게 빨라집니다. 인터넷 속도가 빨라지면서 예전엔 불가능했다고 생각했던 일들이 가능해졌다는거 아시나요?
하지만, 경험이 없으면 이 코드를 만들어 놓는 게 쉽지는 않아요.
그래서 저는 제 경험을 토대로 만들어 놓은 코드들을 여러분께 공유하고자 합니다. 그동안 제가 정리했던 자료들도 함께요.
저는 지금까지 제가 쌓아온 걸 많은 사람들에게 보여드리고 싶은 새로운 목표가 생겼습니다. 그 목표의 시작은 [쿠버네티스 어나더 클래스]고요. 모두 청출어람 하셔서 저보다 잘 됐으면 좋겠습니다 :)
Mail: k8s.1pro@gmail.com
LinkedIn: https://www.linkedin.com/in/1pro
강의
전체3로드맵
전체1수강평
- 좋은 강의 감사합니다!
minhyuck WOO
2024.04.22
1
- 이제 강의 듣기 시작했습니다. 기대됩니다!
inception91
2024.04.21
1
게시글
질문&답변
2024.04.22
다중 클러스터 조회
안녕하세요. 일단 kubectl에서 그런 명령어는 제공하지 않습니다 ^^ 그래서 필요한 부분에 있어서는 아래와 같이 별도로 스크립트를 짜야 돼요. vi get-nodes.sh ---------------- #!/bin/bash # 클러스터 컨텍스트 이름 설정 clusters=("cluster1-context" "cluster2-context") # 각 클러스터에 대해 노드 정보 조회 for cluster in "${clusters[@]}" do echo "Switching to $cluster" kubectl config use-context $cluster echo "Getting nodes from $cluster:" kubectl get nodes -o wide echo "" # 결과 사이에 빈 줄 추가 done --- 실행 chmod +x get-nodes.sh ./get-nodes.sh
- 1
- 1
- 13
질문&답변
2024.04.19
노드 간에 오토 스케일링 관련 질문
Pod는 사용량이 많아 져서, 해당 노드의 자원이 부족할 때 다른 노드의 자원을 빌려 쓴다는 개념은 아닙니다. Pod는 적정 수준의 자원을 할당을 하고, 사용량이 많아져서 부하가 커졌을 때 자동으로 동일한 Pod가 하나 더 만들어지고, 이 Pod가 여유자원이 있는 노드위에 만들어 지면서, 부하를 나누는 개념이예요. 그래서 이런 CPU 부하에 따른 자동 오토스케일(HPA) 기능이 있는 거고요. 아래 CA 그림은 준비된 모든 워커노드에 자원이 다 찼을 때 클라우드에서 지원해주는 기능이고요. 정해진 노드 내에서 Pod를 만들 때 자원이 많은 노드에 자동으로 올라가기 때문에, 전체적인 CPU 자원은 고르게 분산이 됩니다. (물론 Qos class도 잘 설정이 돼 있어야 되고요)
- 1
- 2
- 35
질문&답변
2024.04.18
application 응용과제 1번
startupProbe은 한번만 성공하면 끝나는 속성입니다. 그렇기 때문에 success는 1 말고는 다른 값이 올 수가 없어요. 반면에 failure는 1로 변경할 수 있고요. 해당 속성을 변경하는 목적에 대해서 좀 더 상세하게 설명 가능할까요? "startupProbe의 실패기간을 성공기간보다 짧게 가져가기위해서"라는 게 어떤 의미인지 잘 이해가 안되서요.
- 1
- 3
- 85
질문&답변
2024.04.16
쿠버네티스는 서버에서 데몬 서비스처럼 동작하는지 궁금합니다
네 맞습니다. 쿠버네티스 자체 컴포넌트들은 vm재기동시 자동으로 기동되도록 되어 있어요. 일반적으로 pod는 deployment와 같은 컨트롤러에 의해서 기동이 되는데, replicas가 2로 되어 있기 때문에 쿠버네티스가 항상 2개의 pod가 정상적으로 running이 되도록 유지시켜 주는데요. 근데 vm을 재기동 했을 때는 좀 다른 절차로 pod를 재시작시켜요. 정확한 절차는 아래와 같습니다. 데몬 서비스: 쿠버네티스는 kubelet, kube-proxy와 같은 데몬 서비스들이 각 노드(VM)에 설치되어 있어, 이 서비스들이 자동으로 시작되게 됩니다. 이 데몬들은 쿠버네티스 마스터와 통신하여 노드의 상태를 마스터에 보고하고, 마스터로부터 명령을 받습니다. 자동 복구: 쿠버네티스의 컨트롤 플레인(주로 마스터 서버에서 동작)은 노드와 파드의 상태를 지속적으로 모니터링합니다. VM이 재기동하더라도, kubelet이 자동으로 재시작되며, 이후 쿠버네티스 API 서버와 통신을 재개합니다. 파드 재스케줄링: kubelet은 마스터로부터 해당 노드에 할당된 파드들을 다시 받아 실행합니다. 이 과정에서 파드들은 Running 상태로 돌아가게 됩니다. 쿠버네티스는 파드의 상태를 Desired State로 유지하려고 시도하기 때문에, 파드 스펙에 정의된 상태로 자동으로 복구 시도를 합니다. 현재 단계에서 이 내용을 알기에는 좀 복잡한 내용이긴 한데, 대략적인 느낌을 이해해 주시면 됩니다 :)
- 1
- 1
- 56
질문&답변
2024.04.16
window 환경 vagrant up 에러 문의드립니다
네, 맞습니다 🙂 잘 해결하셨네요!
- 1
- 2
- 79