기술 창고/Kubernetes(18)
-
[Kubernetes] Pod 에서 데이터베이스 접근하기 - 서비스 디스커버리
Pod 에서 데이터베이스에 접근하는 방법에 대해서 알아보겠습니다. 이는 단지 데이터베이스에 접근하기 위한 방법이 아니라 여러 다양한 서비스 컨테이너들과 통신하기 위한 공통적인 방법 중 하나입니다. vi {데이터베이스 연결 설정 yml 파일 명} 명령어를 입력하여 연결할 데이터베이스 설정값들이 저장되어있는 yml 파일을 만들어줍니다. 해당 파일 내부에 MySQL 데이터베이스 image를 불러와 Pod 로 래핑하고 그 Pod를 Service로 로컬 (port 번호 3306) 연결해주었습니다. MySQL 버전은 5버전으로 했습니다. 최신버전을 적용하려면 latest 로 입력하면 됩니다. 해당 설정들은 Docker의 yml 양식을 가져와 값을 기입해주었습니다. 이렇게 Pod 부터 Service 까지 한 파일에 ..
2023.07.14 -
[Kubernetes] 네임 스페이스 (Name Space)
독립적인 컨테이너 Service들끼리 연결할 때 사용되는 쿠버네티스 DNS 서비스는 어디서 실행되고 있는지 get all 명령어를 입력해도 확인할 수 없습니다. 이를 알려면 쿠버네티스에서 네임 스페이스를 먼저 알 필요가 있습니다. 네임 스페이스는 쿠버네티스의 리소스를 별도의 영역으로 분할하는 방법입니다. 예를 들어, 위의 이미지처럼 수천 개의 리소스가 있는 시스템에서 작업하고 있다고 가정할 때 그곳에는 수천 개의 Pod 와 수천 개의 Service가 있을 것입니다. 그리고 Deployment, Replica Set 등과 같은 리소스들도 마찬가지로 수천 개가 있을 것입니다. 이러한 시스템에서 작업하는 게 쉽지는 않을 것입니다. 이 때 네임 스페이스가 필요합니다. 이 Pod 와 Service들을 네임 스페이..
2023.07.14 -
[Kubernetes] 쿠버네티스의 네트워킹 개요
쿠버네티스가 어떻게 네트워킹을 처리하는지에 대해 알아보도록 하겠습니다. 뿐만 아니라 Service 검색이 어떻게 작동하는지에 대해서도 알아보겠습니다. 컨테이너 네트워킹 앞서 도커의 컨테이너를 사용할 때 각 컨테이너에 보통 독립적인 image 를 받아서 하나의 어플리케이션만을 운영하는 것을 권장한다는 것을 알고 있을 것입니다. 예를 들어, 한 컨테이너에 java 어플리케이션을 넣고 거기에 MySQL을 포함시켜서 컨테이너를 운영하는 것은 지양해야 합니다. 하나의 Java 어플리케이션 컨테이너, 하나의 MySQL 컨테이너를 따로 분리시켜 운영시키는 것을 권장합니다. 즉, 도커는 단일 서비스를 위해 설계되었다는 것입니다. Java 어플리케이션 컨테이너와 MySQL 컨테이너를 각자 독립적으로 운영하면서 네트워킹을..
2023.07.14 -
[Kubernetes] Deployment 관리
Deployment 로 배포를 하고 있는 상태에서 관리할 수 있도록 하는 명령어들에 대해서 알아보겠습니다. rollout status kubectl rollout status deployment {Deployment 시스템 명} 명령어를 입력하여 현재 실행 중인 Deployment의 현재 상태를 확인할 수 있습니다. 그 전에 rollout 명령어를 적용하기 이전에 yml 설정을 변경해줘야하는 부분이 있습니다. Deployment 내용이 들어있는 Pod yml 파일에 들어가주도록 합니다. 거기서 우선 버전을 초기 버전인 release0 버전으로 바꿔주겠습니다. 그리고 minReadySeconds 설정값도 주석 처리 해주었습니다. 변경 사항을 적용해줍니다. 이제 다시 kubectl rollout status..
2023.06.27 -
[Kubernetes] 쿠버네티스 Deployment (배포)
Deployment 는 Replica Set 중 하나 입니다. Replica Set에 기능 하나만 추가된 형태라고 보면 됩니다. Deployment 를 이용하면 가동 중지 시간 없이 자동으로 롤링 업데이트를 할 수 있습니다. 이전에 가동 중지 시간없이 Pod의 Label을 이용해서 수동으로 새로운 버전을 배포했었습니다. 이번에는 자동으로 가동 중지 시간없이 업데이트를 할 수 있는 Deployment 를 알아보겠습니다. https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#deployment-v1-apps Kubernetes API Reference Docs kubernetes.io Deployment의 yml 형식은 이렇습니다. 형식을..
2023.06.27 -
[Kubernetes] 쿠버네티스에 Replica Set 적용 / 크래시 후 안정적인 운용에 대해
Replica Set 작성이 완료되었으면 적용시켜야겠죠? 적용시켜보는 과정을 알아보겠습니다. 우선 kubectl delete pod --all 명령어를 사용하여 기존에 생성해서 실행중이던 pod들을 종료시켜줍니다. kubectl apply -f {yml 파일명} 명령어를 사용하여 작성했던 Replica Set 을 생성하고 적용시켜줍니다. 현재 Pod yml 에는 Replica Set 으로 변경하여 구성되어있습니다. kubectl get all 명령어를 입력했을 때 추가적으로 ReplicaSet 시스템이 실행중인 것을 확인할 수 있습니다. current 부분에 현재 실행중인 Replicas 의 수, 즉, 컨테이너 수를 알 수 있습니다. ready 부분은 요청에 응답하는 컨테이너의 수입니다. 이제 minik..
2023.06.27