Notice
Recent Posts
Recent Comments
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

ITFragile

[Kubernetes] 05. Web-DB 연결을 위한 컨피그맵 수정 본문

Project

[Kubernetes] 05. Web-DB 연결을 위한 컨피그맵 수정

경요 2023. 3. 22. 17:10

 

1.DB 구성

먼저 DB에 직접 접속하여 연걸할 db, table, user 생성한다.

kubectl exec mydb-0 -it -- bash

 

만드는 건 [Linux] 01. 작업 환경 구성 (tistory.com) 참고~~

 

현재 파드 상태

 

2. 컨피그맵으로 연결한 index.php 수정

# index.php
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$servername = "db-read"; # 외부에서 접속 가능한 db 이름 부여!!
$user_name = "root";
$password = "";
$db_name = "web_db";
$connection = mysqli_connect($servername, $user_name, $password, $db_name);
$query = "SELECT * FROM web_tb";
$rst = mysqli_query($connection, $query);

if (mysqli_num_rows($rst) > 0) {
  while($i = mysqli_fetch_assoc($rst)) {
    echo "id : "  .  $i["id"]  .  " | name : "  .  $i["name"]  .   "<br>" ;
  }
}
mysqli_close($connection);
?>

 

3. 서비스 타입 변경

현재 웹서버는 인그레스로 접근시 curl로는 php,html 출력되지만 웹에서 직접 도메인 접속을 확인할 수 없음

따라서 서비스를 Loadbalancer로 바꾸어 external ip를 부여받아 확인 해보자.

다시 서비스와 디플로이먼트 실행하면

서비스 타입이 로드밸런서로 변경되고 외부에서 접근 가능한 external ip가 부여되었다. 

해당 ip로 접근시 두 파드를 번갈아서 출력한다.

 

4. 컨피그맵 수정

파일을 수정했으니 기존 생성한 컨피그맵을 삭제해주고 다시 파일과 연결 후 디플로이먼트 재 생성해줘야 한다!

kubectl delete cm cmfile
kubectl create cm --from-file index.php cmfile

kubectl apply -f dep-web.yaml

 

5. 접속 확인

db 연결 완료~