[Docker] - docker, kubernetes 기초설정, 예제
minikube start
minikube ip
minikube addons enable metallb
minikube addons configure metallb
우선 minikube에 metallb addon을 활성화시켜주고 metallb에 ip설정을 한다
현재 환경에선 loadbalancer를 구현하기 어려우므로 비슷하게 구현하기 위한 설정
mkdir test
cd test
nano wordpress.yml
nano mysql.yml
nano nodeport.yml
nano loadbalancer.yml
#wordpress.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:5.9.1-php8.1-apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_NAME
value: wordpress
- name: WORDPRESS_DB_USER
value: root
- name: WORDPRESS_DB_PASSWORD
value: password
ports:
- containerPort: 80
name: wordpress
#mysql.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mariadb:10.7
name: mysql
env:
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
---
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
#nodeport.yml
apiVersion: v1
kind: Service
metadata:
name: wordpress-np
labels:
app: wordpress
spec:
type: NodePort
ports:
- port: 80
protocol: TCP
nodePort: 31000
selector:
app: wordpress
tier: frontend
#loadbalancer.yml
apiVersion: v1
kind: Service
metadata:
name: wordpress-lb
spec:
type: LoadBalancer
ports:
- port: 30000
targetPort: 80
protocol: TCP
selector:
app: wordpress
tier: frontend
우선 테스트용 폴더를 만들고 폴더 안에 각 yml파일들을 만들어 준다
wordpress와 mysql을 각각 다른 pod에 생성하고 서로 연동되는것을 확인해보려고 한다
kubectl apply -f wordpress.yml,mysql.yml,nodeport.yml,loadbalancer.yml
kubectl get pod
kubectl get svc
모든 yml 파일들을 실행시켜주고 잘 실행 됐는지 확인해 본다
각 wordpress와 mysql이 다른 pod임에도 잘 연동되었고 nodeport와 loadbalancer도 정상 작동 하는 걸 볼 수 있다
* DB 연동 확인
만약 DB연동이 안되어있다면 위와 같은 메세지가 뜬다
따라서 설치 페이지가 정상적으로 뜬다면 DB가 연동되어 있다는 것이다
'Kubernetes' 카테고리의 다른 글
kubernetes를 활용한 emptydir 실습 예제 (0) | 2023.11.02 |
---|---|
cilium사용 시 session affinity가 적용이 안되는 문제 해결 (0) | 2023.11.01 |
kubernetes를 활용한 deployment 예제 (0) | 2023.10.31 |
kubernetes 설치 (1) | 2023.10.31 |
minikube를 활용한 nginx 로드분산 예제 (0) | 2023.10.24 |