Kubernetes: 애플리케이션 설정을 체계적으로 관리하기

쿠버네티스 개발전략을 읽고 작성한 내용입니다. https://product.kyobobook.co.kr/detail/S000200103262 쿠버네티스를 통해서 설정을 외부화하여 관리하는 방법을 알아보겠습니다. 여기서 설정은 데이터베이스 url, username, password, 얼마전에 작업한 뉴렐릭 라이센스 키 같은 값들을 말합니다. 이러한 설정값들은 변경되거나 추가 삭제되는 경우가 많기 때문에 애플리케이션 외부에서 관리하는 것이 유리합니다. 외부화된 설정: Externalized configuration 환경 변수와 실행 인자 실행 인자 우선 실행 인자와 환경 변수에 대해 알아보겠습니다 prod 프로필을 사용하려면 아래와 같이 실행 인자로 환경 정보를 넘겨줍니다. $ java -Dspring....

September 23, 2023 · 조민준

Kubernetes: pod와 service

Pod container Pod에는 container가 여러개 있을 수 있으며, localhost로 접근할 수 있다. Pod가 생성될 때는 IP가 할당되며, 이 IP를 통해 Pod에 접근할 수 있다. 쿠버네티스 클러스터 내에서만 IP로 접근 가능하다. Pod가 재생성되면 IP 주소가 바뀐다. apiVersion: v1 # 하나의 Pod kind: Pod metadata: name: pod-1 spec: # 여러 개의 container containers: - name: container1 image: image1 ports: - containerPort: 8000 - name: container2 image: image2 ports: - containerPort: 8080 label Pod 뿐만 아니라 다른 오브젝트에도 사용할 수 있지만, Pod에서 가장 많이 사용된다....

January 11, 2023 · 조민준

Introduce Kubernetes

What, Why Kubernetes? What 쿠버네티스는 컨테이너들을 운영, 관리하는 컨테이너 오케스트레이터이다. 컨테이너 오케스트레이터는 개별 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화해준다. Why 물리 서버에서 동작하는 서비스는 리소스 관리를 효율적으로 할 수 없다. 3개의 서비스에 트래픽이 몰리는 시간대가 다르다. 각 서비스는 최소 트래픽 때 0.5대, 최대 트래픽 때 3개의 서버가 사용된다. 이 경우 총 9대의 서버가 사용된다. 배포시에도 비효율적이다. 중단이 가능한 경우 모든 서비스를 내린 후, 업데이트하여 다시 올린다. 중단이 불가능하면 서비스를 하나씩 내리고 하나씩 업데이트하여 다시 올린다....

January 10, 2023 · 조민준

kubectl command

kubectl command 쿠버네티스 API를 사용하는 CLI 도구이다. kubectl [command] [TYPE] [NAME] [flags] [command] 하나 이상의 리소스에서 수행하는 동작을 지정한다. ex) create get describe delete [TYPE] 리소스 타입을 지정한다. 대소문자를 구분하지 않으며 단수형, 복수형, 약어를 지정할 수 있다. ex) pod pods po [NAME] 하나 이상의 리소스의 이름을 지정한다. 대소문자를 구분하며 리소스 이름을 지정하지 않으면 모든 리소스가 대상이 된다. 리소스가 모두 동일한 TYPE인 경우 ex) kubectl get pod name1 name2 리소스 타입을 개별로 지정하는 경우 ex) kubectl get pod/name1 replicaset/name2 [flags] 플래그를 지정한다....

January 9, 2023 · 조민준