기술 창고/Kubernetes(18)
-
[Kubernetes] Replica Set 작성
이번에는 Replica Set을 작성하는 방법을 알아보겠습니다. nano {pod yml 파일명} 명령어를 입력하여 pod 편집기로 들어옵니다. 작업을 하기 이전에 yml 파일의 편의성에 대해 잠깐 짚고 가자면, yml 파일 안에 여러 Pod들에 대한 내용을 전부 넣어 한번에 관리할 수 있습니다. Service.yml 의 경우에도 여러 Service들을 전부 넣어 한번에 관리할 수 있습니다. 다만 1000개 이상의 대량의 yml 내용들을 관리하게 된다면 비효율적이기 때문에 이렇게 대량의 경우에는 따로 분리하여 관리해야 합니다. Replica Set를 사용하여 기존의 Pod 를 업그레이드 시켜보겠습니다. 기존에 존재했던 webapp release0 버전을 삭제 후 진행하겠습니다. release0-5 버전의..
2023.06.27 -
[Kubernetes] Replica Sets (레플리카 세트)
지금까지 Pod 를 생성하고 Service 를 생성하여 운영 및 관리하는 방식을 사용해보았는데 실제로는 이렇게 직접 Pod를 생성하고 운영하지 않는다고 합니다. 실무에서 자주 사용하는 방식 중 하나가 Replica Set 중 하나를 사용해서 운영하는 것이라고 합니다. Pod 를 직접 생성하고 운영하게 되면 Pod는 생명 주기도 짧을 뿐만 아니라 Pod가 망가지면 해당 Pod를 되살리는 것은 불가능합니다. 만약, 새벽에 운영 중인 시스템의 Pod 가 고장이 나거나 특정 node가 고장이 나면 전체적인 Pod들은 동작이 되지 않아 클레임이 오게 될 확률이 높습니다. 따라서 Pod를 직접 배포하지 않습니다. 이를 보완하기 위해서 Replica Set로 배포합니다. Replica Set는 구성 요소를 하나 더 ..
2023.06.27 -
[Kubernetes] 명령어 모음
kubectl get all 현재 생성된 pod 및 service들 조회 kubectl apply -f {yml 파일명} yml 파일 내용 기반으로 service, pod, 혹은 컨테이너 생성 kubectl apply -f . 모든 yml 파일들 기반으로 service, pod, 혹은 컨테이너 생성 kubectl describe {service, pod 같은 용도} {name} yml 기반으로 생성한 파일들의 생성 단계 및 동작 단계를 확인하는 명령어 즉, 특정 생성 시스템의 로그를 확인하는 명령어 kubectl delete {시스템} {시스템 명} 특정 시스템을 종료시키는 명령어 kubectl delete {시스템} --all pod 든 service 든 전체 시스템을 종료시키는 명령어 kubectl ..
2023.06.27 -
[Kubernetes] Pod Label 을 활용한 가동 중지 시간 없이 간단하게 배포하는 방법
minikube 가상 환경에서 배포하고 가동하는 작업은 어느 정도의 시간 소요가 걸립니다. 이유인즉슨 쿠버네티스는 실행할 때마다 기존의 Pod를 중지한 다음 새로운 Pod를 시작하고 그 속에 새로운 image를 불러옵니다. 이 시간 소요를 Label 활용해서 줄이거나 소요 없이 배포하는 방법에 대해서 알아보겠습니다. 우선 Pod에 Label을 추가해야합니다. 이 Label은 하나만 존재하는 것이 아니라 여러 개 존재할 수 있습니다. Pod yml 편집기로 들어가서 새로운 버전의 image 를 포함한 Pod를 추가해줍니다. --- 기호로 구분하여 추가하고 한 번에 관리할 수 있습니다. 첫 번째 Pod는 label 을 하나 추가하여 release: 0 을 추가해주었습니다. 두 번째 Pod는 이름을 webap..
2023.06.26 -
[Kubernetes] Service 작성
이전에 Service 는 어떠한 역할을 수행할 수 있고 어떤 것인지 간단하게 알아보고 작성 방법에 대해서도 간단하게 알아보았습니다. 이제 저만의 Service를 작성하고 연결해보는 과정을 조금 더 세밀하게 알아보겠습니다. nano webapp-service.yml 명령어를 입력하여 Service 를 작성할 yml 파일로 들어가줍니다. 파일명은 아무거나 상관없습니다. - kind: Service Service 용도의 yml 파일. - apiVersion: v1 지원 api 버전은 v1. - metadata: name: fleetman-webapp Service의 이름을 fleetman-webapp 으로 지정. - spec: ports: - name: http port: 80 # targetPort: 80 ..
2023.06.26 -
[Kubernetes] Service (서비스) 란?
쿠버네티스로 서비스들을 관리하는 기법 중 하나인 Pod 는 간단하게 사용되고 버려지는 용도로 주로 사용됩니다. 따라서 수명도 짧다고 볼 수 있습니다. 또한 외부 브라우저에서 Pod 에 접근할 수 없습니다. Service는 Pod 보다 더욱 긴 수명을 가지고 있고, Service 는 ip 와 함께 안정되고 고정된 포트를 가지고 있습니다. 이 Service를 Pod 처럼 단독적으로 사용할 수도 있지만 Pod에 부착해서 사용할 수도 있습니다. Service를 이용하게 되면 Pod를 사용했을 때 외부 브라우저에서 호출했을 당시 접속이 안되던 문제를 브라우저와 Pod 사이에 위치시킴으로서 연결될 수 있게끔 할 수 있습니다. Pod는 label 이라고 하는 구분값을 가지고 있을 수 있습니다. 일련의 키:값 한 쌍을..
2023.06.26