Kubernetes/kubectl 시작
-
쿠버네티스에서 static pod 만들기 - cka 시험에서 자주 출제됨!Kubernetes/kubectl 시작 2023. 8. 6. 20:38
조금 늦은 쿠버네티스 공부 했던 부분을 올려보도록 하겠다. init container에 대해 공부하던 도중, static pod에 대해서도 알게 되었다. cka에도 자주 출제된다고 하니 ★기억하도록★ 정의, static pod란? - kubelet Daemon에 의해 동작되는 pod - API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해서 직접 관리 - etc/kubernetes/manifests/ 디렉토리에 k8s yaml 파일을 생성 및 저장시 자동 적용 위의 내용으로만 이해할 수 없으니, 직접 적용해보도록 하겠다. node1 or node2에 들어가서 cat etc/lib/var/lib/kubernetes/config.yaml ->로 들어가서 일단 구성 되어 있는지 확인! -> 위의 위치..
-
쿠버네티스 - init container만들기Kubernetes/kubectl 시작 2023. 7. 13. 20:58
이번에는 init container에 대해 알아보자 init container란? → init container가 성공 하면 main container를 실행함! init container란? 앱 컨테이너 실행 전에 미리 동작 시킬 컨테이너 본 container가 실행되기 전에 사전 작업이 필요할 경우 사용 초기화 컨테이너가 모두 실행된 후에 앱 컨테이너를 실행 초기화 컨테이너와 일반 컨테이너 차이점! 초기화 컨테이너는 항상 완료를 목표로 실행됨 각 초기화 컨테이너는 다음 초기화 컨테이너가 시작되기 전에 성공적으로 완료되어야 함. → 만약 파드의 초기화 컨테이너가 실패 → kubelet은 초기화 컨테이너가 성공할 때 까지 반복적으로 재시작함 아래 도메인을 이용하여 컨테이너 예시를 사용해보자! https:..
-
쿠버네티스 self-healing-pod 실제 구현하기Kubernetes/kubectl 시작 2023. 7. 13. 10:41
이 전에는 self-healing-pod에 대한 개념에 대해 정의해보았다. 실제로 pod를 생성할 때, self-healing 조건을 기입하고, 작동하는지 알아 보자 1. webserver-pod.yaml (nginx) 파일을 복사한다. 대신에 이름에 liveness 넣어서 새로 만들어 준다. 2. pod-nginx-liveness.yaml 파일을 수정함 - liveness 조건을 추가 3. 헷갈리지 않게 기존의 pod가 필요 없다면 kubectl delete pod —all 을 통해 모두 제거함 -> 제거하지 않을 경우, 이름이 같아서 create에서 오류 발생 가능성 높음 4. kubectl create -f pod-nginx-liveness.yaml → 로 실행함 → 여기서 필자의 경우 오류가 났음..
-
쿠버네티스 - self-healing pod 만들기Kubernetes/kubectl 시작 2023. 7. 12. 22:27
조금 늦게 올리는 쿠버네티스 ㅠ7ㅠ livenessprobe를 이용해 self-healing pod 만들기! pod 가 계속 시행할 수 있음을 보장 pod의 spec에 정의 → web 서비스에 80 port로 / 에 주기적으로 접속 → 응답이 잘 나오면, 잘 실행되고 있음을 확인(running 확인) [liveness probe의 매커니즘 ] - 3가지 방법 1. httpGet probe : 지정한 ip주소, port, HTTP에 GET 요청을 보내, 해당 컨테이너가 응답하는 지를 확인한다. 변환 코드가 200이 아닌 값이 나오면 오류, 컨테이너를 다시 시작함 livenessProbe: httpGet: path: / port: 80 → nginx 서버에서 http—:80 로 접속하여 주기적으로 / (ro..
-
쿠버네티스 파드 관리 및 수정하기Kubernetes/kubectl 시작 2023. 6. 9. 11:19
연습하면서, 파드를 너무 많이 만들거나, 관리가 되지 않는 경우가 있다. 파드에 대한 정보를 보고, 수정 혹은 관리 법을 간단히 정리했다. - 동작 중인 파드 정보 보기 1. kubectl get pods 2. kubectl get pods -o wide 3. kubectl describe pod [pod네임] 4. kubectl get pods --all-namespace - 동작 중인 파드 수정 kubectl edit pod webserver [파드 수정에 대한 예시] 1. yaml 파일을 만들 때, 잘 만들어 질 수 있는 지 확인하는 명령어 : --dry-run 사용 kubectl run redis --image=redis123 --dry-run -o yaml -> 이렇게 하면 미리보기 + redi..
-
쿠버네티스 파드 삭제Kubernetes/kubectl 시작 2023. 6. 9. 11:02
필자는 멀티 파드를 생성 후, delete --all 명령어를 사용했는데, 멈추는 현상을 발견했다. 이를 해결하기 위해, 공식 홈페이지를 찾았음! (구글링 통해서도 가능하지만, 초보이기 때문에... 설명필요!) 1. 강제 종료 하고 싶을 때 kubectl delete pods [pod] --grace-period=0 --force 위의 명령어를 사용하면, 통으로 날아간다...급한일 아니면,,, 조심해서 사용하기! 2. 동작 중인 파드 삭제 kubectl delete pods [pod] ex) kubectl delete pod webserver kubectl delete pod --all : 전체 삭제 ex ) 전체 삭제 유의! 파드가 많을 수록, 시간이 오래 소요되거나, 제대로 실행 되지 않을 수 있음!..
-
쿠버네티스 로그 알아보기Kubernetes/kubectl 시작 2023. 6. 9. 10:57
그 전에는 멀티 컨테이너 파드를 생성하는 법을 알아보았는데, trouble shooting 하기 위해서 로그를 알아보자! 대신, 멀티 vs 싱글 컨테이너에 따라 아주 쪼~~금 만 옵션을 붙여주면 됨! - 멀티 컨테이너 일때 : kubectl logs multipod -c niginx-webserver kubectl logs [pod네임] -c [컨테이너 네임] - 싱글 컨테이너 일 때 : kubectl logs web1 kubectl logs [pod네임] 그냥 pod 네임만 명령하면 괜찮음 !
-
쿠버네티스 multi-container pod 생성하기Kubernetes/kubectl 시작 2023. 6. 9. 10:47
이제 눈감고, 파드를 생성 할 수 있게 되었다?! 라고 생각하고, 파드를 자세히 볼 수있는 명령어? kubectl describe pod web1 (-> web1 = pod이름 이라는 것은 모두가 알 고 있다는 가정 하에) 이 명령어를 통해서 어떤 것이 running 중인지, 그 외 과정을 자세하게 볼 수 있음 -> trouble shooting 할 때 많이 사용됨! ★기억하기★ 본격적으로, multi-container 를 생성해보자 1. 먼저 yaml 파일을 생성 yaml 파일을 만드는 법은 아래 url을 참조! https://amelia-suyeon.tistory.com/26 쿠버네티스 - yaml 템플릿 만들고 편리하게 써보기! 입문자에게 있어서, yaml 템플릿은 가장 많이 사용되는것 같음! - ..