kube 교육 18

07. Kube 교육 - Service Discovery

실습 NGINX Service를 생성해 보세요. Service 적용 후 Endpoint가 제대로 생성되었는지 확인해 보세요. 기존 POD를 Delete 후 Service 연결을 검증해 보세요. 복수의 POD를 실행하여 POD Load Balancing 기능을 검증해 보세요. Why Service Discovery Kube는 기본 철학(?)이 POD는 항상 죽을 수 있다 입니다. 기존 POD가 죽고 나서 새로 생성되는 POD는 IP, Hostname 등 환경 정보가 기존 POD와 다릅니다. (재시작이 아니라 새로운 POD가 생성입니다.) 이 때 POD 간 통신이 IP 기반이라면 Client 단에서 일일이 새로운 IP를 추가해야 하므로 관리가 불가능합니다. 그리고 기존 POD를 이중화하여 새로운 POD가 추..

14. Kube 교육 - Readiness/Liveness Probe

실습 Kafka Bitnami Helm Chart 실행하여 사용 중인 Probe 확인 Why Readiness, Liveness Probe? Application이 아직 Traffic을 받을 준비가 안되어 있는 경우, 예를 들어 Tomcat에서 DB 연결이 제대로 안되면 Process는 실행 중이라도 정상적으로 Traffic 처리를 하지 못 합니다. 이 경우 Tomcat을 Traffic이 받지 못하도록 설정이 필요합니다. 이러한 기능을 Readiness(준비 여부 정도 번역) Probe가 담당합니다. Readiness Probe에서 정상 여부를 확인하여 정상적이지 못하다고 판단되면 Service에서 제외 합니다. 비슷한 사례로 readiness probe 설정이 없다면 nginx restart 시 잠깐이..

13. Kube 교육 - Label & Affinity

실습 label 이용 NGINX service, pod 연결 동일 노드에 MySQL Application 동시에 실행되지 않도록 설정(advanced scheduling) Why Label & Affinity Kube 환경은 Object 중 특정 Object(예: 여러 NGINX POD 중 특정 NGINX POD)만 선택을 해야하는 경우가 많습니다. 예를 들어 Service에서 특정 POD를 선택하고 여러 노드 중 GPU 노드에서만 특정 POD를 실행해야 하는 경우가 대표적입니다. 이러한 경우 사용자가 임의로 지정한 Label(상표 정도로 번역) 기준으로 선택합니다. 예를 들어 POD에 app=nginx, app=tomcat 등으로 label을 지정하고 해당 label 기준으로 다른 Object에서 해당..

05. Kube 교육 - YAML 기본 문법

실습 기존 실행 중인 Deploy, POD를 YAML File 형태로 Export 하세요. k neat 사용해 보세요 YAML 파일 이용하여 Busybox Deploy 배포 하세요. Why YAML? Kubernetes 에서는 모든 Object(pod, service, ConfigMap 등)가 Code로 관리 됩니다. 이 Code는 YAML File 형식으로 apply(적용), Export(추출) 가능합니다. 기존에는 System Engineer가 명령어로 Application 설치하고 네트워크/스토리지 연결 하였다면 Kube 환경에서는 그 모든 행위를 YAML File, 코드로 수행합니다. 따라서 YAML(YAML 문법이겠죠)에 반드시 익숙해 져야 합니다. (system engineer 된 후 code..

04. Kube 교육 - Kube tool 이용(kctx, kns, kps, kubetail, k neat)

실습 kubeps, kubectx, kubens을 이용한 Cluster, Namespace 변경 k neat 통한 YAML file export kube tail 통한 멀티 pod 로그 동시 조회 Why kube tools 시간이 가장 소중한 자원이라 엔지니어는 항상 시간을 줄일 수 있는 도구를 찾아야 한다고 생각합니다. 아마 우리가 하는 일의 대부분은 예전에도 하였고 다음에도 할 일입니다. (니체의 영원회귀는 참 맞는 말입니다.) 귀챠니즘이 가장 큰 적인데 매번 작업 시 다음에 어떻게 더 빠르게 할 수 있을까 생각하며 조금이라도 더 생각하는 게 퇴근 시간을 앞당길 수 있는 길이라 생각합니다. Kube는 태생 자체가 여러 툴들의 조합이고 그걸 또 편하게 integration 할 수 있게 API 서버를 사..

02. Kube 교육 - k3s, kubespray 설치

실습 k3s 설치 kubespray 설치 로컬 PC 원격 k3s, kubespray cluster 등록 Why 나작클 설치는 k3s, kubespray, kubeadm, minikube 등 본인이 편한 툴을 사용하시면 됩니다. 저는 ansible이 익숙해서 kubespray로 진행 하였습니다. 중요한 건 나만의 작은 클라우드(또는 클러스터, 나작클)가 있는 것 입니다. 언제든지 편하게 뭉개고 다시 만들 수 있고 여러 테스트를 다른 사람 눈치 보지 않고 집에서건 카페에서건 사용 할 수 있는 클러스터가 필요합니다. Kube는 복잡한 놈이라 여러 명령어를 클러스터 에러 또는 삭제 부담없이 편하게 해 보셔야 알 수 있는 놈입니다. 없으시면 회사에 요청해서라도 꼭 만드시길 바랍니다. 요즈음 메모리 가격이 낮아져서..

01. Kube 교육 - 기본 개념 및 명령어

Kube 기본 개념을 Hands-on 실습으로 알아 보겠습니다. 실습을 위해서는 PC 환경 세팅 및 Tool 설치 등이 필요한데 해당 내용은 다음 포스트에서 다루겠습니다. 이번 장에서는 따라하시지 못하시더라도 해당 실습을 VM 환경이라면 어떻게 작업해야 할까 생각하시면서 보시면 됩니다. 1. Kubernetes에서는 Application을 POD로 관리합니다. 명령어를 사용하여 NGINX Application을 배포합니다. [spkr@erdia22 06.Deployment (spkcluster:default)]$ k create deploy nginx --image=nginx deployment.apps/nginx created Kube 환경에서는 이렇게 명령어를 사용하여 간단하고 빠르게 Applicat..

00. Kube 교육 - 개요 및 목차

Why Kube 교육 제가 생각하기에 기업 환경의 Kubernetes 도입의 핵심은 내재화 입니다. 기존 상용 Solution 혹은 SI Project 처럼 ‘명령어는 업체가 고객은 지시만(라고 쓰고 갈구기)’ 하면 100% 망합니다. Kube는 하면 할수록 다양한 (Best Practice) Tool/개념들의 집합입니다. 이를 외부 업체에 맡기면 위에 보이는 그림들의 10%도 제대로 처리를 못할 가능성이 큽니다. (그러면서도 윗 분들에게는 우리 Kube 한다고 보고서 올리겠죠) 그것뿐만이 압니다. Kube 운영에 필수적인 다양한 Open Source Stack이 추가로 필요로 합니다. 그 모든 걸 외부 업체에 맡긴다는 거 그냥 눈가리고 아웅 하겠다 입니다. 물론 쉽지 않습니다. 하지만 못할 것도 아닙니..