[Kubernetes] 쿠버네티스
MariaDB Pod 배포 및 LoadBalancer를 통한 외부 접근 방법
MariaDB Pod 배포 및 LoadBalancer를 통한 외부 접근 방법
1. DB 컨피그맵 생성
apiVersion: v1
kind: ConfigMap
metadata:
name: db-cm
data:
MARIADB_ROOT_PASSWORD: qwer1234
MARIADB_DATABASE: web
2. PV 생성
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-01
spec:
capacity:
storage: 2G
accessModes:
- ReadWriteOnce
local:
path: /node-vol
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- {key: kubernetes.io/hostname, operator: In, values: ['worker02']}
3. PVC 생성
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-01
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1G
storageClassName: ""
4. db파드 생성
# db-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: db-pod
labels:
type: db # 이 레이블이 서비스의 selector와 일치해야 합니다
spec:
nodeSelector:
kubernetes.io/hostname: worker02
containers:
- name: mariadb
image: mariadb:latest
volumeMounts:
- name: pvc-pv
mountPath: /var/lib/mysql
envFrom:
- configMapRef:
name: db-cm
ports:
- containerPort: 3306
volumes:
- name: pvc-pv
persistentVolumeClaim:
claimName: pvc-01
5. db파드를 포함한 서비스 생성
# db-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: db-svc
spec:
selector:
type: db # Pod의 레이블과 일치해야 합니다
ports:
- port: 3306
targetPort: 3306
type: ClusterIP # 클러스터 내부에서만 접근 가능
6. ubuntu pod 생성(db접속 확인)
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
spec:
containers:
- name: ubuntu
image: ubuntu:20.04
command:
- sleep
- infinity
ubuntu pod안에서 mariadb 사용하여 체크
유축 상단 창을 클릭하면 ubuntu 파드 안으로 접속이 가능하다.
apt update
apt install mariadb-client
mariadb client 설치
db-pod ip 확인
db-pod 주소로 접속확인
db-svc ip ,이름 확인
서비스의 클러스트 ip로 접속 확인
서비스 이름으로 접속 확인
7. db-svc2 생성 : 로드밸런서 적용, db-pod 포함
# db-svc2.yaml
apiVersion: v1
kind: Service
metadata:
name: db-svc2
spec:
selector:
type: db # Pod의 레이블과 일치해야 합니다
ports:
- port: 3306
targetPort: 3306
type: LoadBalancer # 외부에서 접근 가능
생성된 외부 엔드포인트 ip 확인
외부 ip로 workbench에서 db접속 확인
'IT관련 > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 Istio(이스티오), kiali(키알리) 설치 방법 (1) | 2024.08.22 |
---|---|
[Kubernetes] 도커허브와 쿠버네티스를 이용한 Spring Boot 애플리케이션 배포: ConfigMap, Deployment, Service 설정 (0) | 2024.08.21 |
[Kubernetes] Ubuntu 쿠버네티스 설치 방법 (0) | 2024.08.13 |