23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
개발과정에서 DB를 리소스로 편하게 사용하고자 하는 요구사항이 있다.
mysql 가 필요한 경우에 대한 과정으로 살펴 본다.
mysql 구성에 대해 요청은 접수portal을 통해서 MSP 작업 담당자에게 전달되어져야 한다.
접수 이후에 MSP 작업 담당자가 할당된다. 벌써 몇 십분은 흘러간다. 작업 담당자는 요구사항을 한 번 더 점검한다.
당일에 해소되기 어려운 절차라 빨라도 다음 날에야 클라우드 리소스를 제공 받는다.
이전 같으면 Azure의 서비스를 구성하는 것이 자연스러웠다.
지금은 aks로 시스템을 론칭하여 활용하고 있으니 mysql서비스로 aks가 바로 생각났다.
aks를 활용하여 개발 환경을 신속히 제공하는 방법에 대해 생각하던 차라 반가웠다.
이미 argocd 환경은 구성되어 있다.
repo를 우선 구성해야 한다. Artifact Hub 가 repo를 구성하는 허브로 알려져 있어 접속해서 확인해 보았다.
bitnami의 mysql을 선택하여 INSTALL을 클릭하면 repo 주소를 알 수 있다.
bitnami가 제공하는 repo URL은 https://charts.bitnami.com/bitnami 이다
argocd에 해당 bitnami repo 주소를 이용해서 helm 방식으로 타겟 클러스터에 배포를 한다.
몇 분만에 mysql 설치를 완료할 수 있다. 기존의 소통하는 시간 정도면 완성이 되었다.
HELM으로 표시된 섹션의 mysql 구성 정보와 관련된 파라미터를 변경하면 사용자가 원하는 방식으로 mysql을 구성할 수 있다.
ㅇ auth.rootPassword : mysql클라이언트가 접속시 root유저에 대한 패스워드 설정
ㅇ port : mysql 데몬이 구동할 때 사용하는 포트 번호(일반적으로 3306이나 보안을 고려해서 포트번호를 변경해서도 사용)
ㅇ service type : ClusterIP가 default
- 이번 요구사항은 개발자가 자신의 로컬PC에서 접속 가능해야 하는 상황으로 외부로 서비스 노출이 가능하도록 LoadBalancer로 설정
- primary, secondary 모두 LoadBalancer로 변경
k9s를 통해 해당 mysql pod로 접속하여 아래와 같은 명령으로 설정했던 root패스워드로 접속 가능한지 확인 가능하다
$ mysql -uroot -p
Enter password: <설정한 루트 패스워드> mysql로 생성한 리소스를 모두 확인해 보면 pod, service가 보인다.
pvc까지 할당된 것을 볼 수 있고, bitnami repo에서 제공하는 mysql은 스토리지 설정이 8GB 용량이다. (테스트나 개발에 사용하기에 충분한 스토리지 용량이다.)
# mysql로 생성한 리소스 모두 확인
$ kubectl get all -n mysql
NAME READY STATUS RESTARTS AGE
pod/mysql-0 1/1 Running 0 12m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mysql LoadBalancer 10.0.228.191 <***********> 8808:30519/TCP 12m
service/mysql-headless ClusterIP None <none> 8808/TCP 12m
$ kubectl get pvc -n mysql
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-mysql-0 Bound pvc-d60db5dd-fc25-434d-8d49-00aa1d734aa9 8Gi RWO default 16h* 위의 EXTERNAL-IP는 보안을 위해 비식별화 표시
로컬PC에서 접속이 가능하여 편리하지만 보안성을 확보할 필요를 느낀다.
LoadBalancer서비스 타입으로 pod를 생성을 하면 azure 에서 제공하는 MC리소스그룹에 자동으로 생성되는 nsg(network security group)에다 IP/port기반 접근제어를 설정한다.
개발자를 위한 mysql 개발 환경을 k8s 인프라로 설치하니 몇 분만에 제공할 수 있었다. 개발자들는 지금부터 약 3개월간 사용할 예정이다.
k8s클러스터의 유휴 자원을 활용할 수 있고, mysql 오픈소스로 설치하였다.
일반적인 Azure database for MySQL서비스 발생 비용을 절감하여 개발이나 테스트에 리소스를 공급할 수 있었다.
보안성을 위해 개발자 소스IP 한정으로 접속이 가능하도록 제한은 해야 한다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.