docker에 자신의 이미지가 있다는 전체하에 진행, 그리고 db도 서비스, config, 파드 생성 전제하에 진행
전 게시글에 해당 정보들이 다 있다.
apiVersion: v1
kind: Service
metadata:
name: httpd-svc
spec:
selector:
type: httpd
ports:
- port: 80
targetPort: 80
type: LoadBalancer
apiVersion: v1
kind: ConfigMap
metadata:
name: httpd-cm
data:
DBNAME: "web"
DBUSER: "root"
DBPASS: "qwer1234"
DBHOST: "db-svc"
DBPORT: "3306"
apiVersion: v1
kind: Pod
metadata:
name: httpd-pod-1
labels:
type: httpd
spec:
containers:
- name: httpd-container1
image: ddarahakit2023/httpd:1.5
command: ["/bin/sh", "-c", "python3 manage.py makemigrations && python3 manage.py migrate && httpd-foreground"]
envFrom:
- configMapRef:
name: httpd-cm
ports:
- containerPort: 80
# 현재 모드 확인
kubectl get configmap kube-proxy -n kube-system -o yaml | \
grep strictARP
# 위 명령어 실행 시 strictARP: false로 나오는 경우
kubectl get configmap kube-proxy -n kube-system -o yaml | \
sed -e "s/strictARP: false/strictARP: true/" | \
kubectl apply -f - -n kube-system
# MetalLB 설치
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.11.0/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.11.0/manifests/metallb.yaml
# 정상 설치 확인 - Running
kubectl get pod -n metallb-system
# 처음에는 Running이 바로 안뜬다. 계속 확인해서 모두 Running이 뜰때까지 기다려야한다.
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.87.60-192.168.87.200 // 가상머신의 IP 대역으로 할당