728x90
[GCP] GKE로 웹 애플리케이션 배포 (1)
GKE로 웹 애플리케이션을 배포하는 과정은 다음과 같다.
1. 웹 애플리케이션 생성
2. Docker Image 생성
3. 생성 한 Docker Image로 Deployment 생성
4. NodePort 열어줌
5. Ingress Controller를 사용하여 경로 지정
1. 웹 애플리케이션 생성
Python의 Flask 모듈을 사용하여 간단한 웹 애플리케이션을 생성해준다.
- app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def root():
return 'hello, gke'
@app.route('/test')
def test():
return 'This is a test page.'
if __name__ == '__main__':
app.run(host='0.0.0.0')
2. Docker Image 생성
웹 애플리케이션을 도커 이미지로 만들어주기 위해 도커 파일을 생성해준다.
- Dockerfile
FROM ubuntu:latest
# 필요한 패키지 설치
RUN apt-get update && apt-get install -y \
python3 \
python3-pip
# 작업 디렉토리 설정
WORKDIR /app
# 필요한 Python 패키지 설치
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt
# 소스 코드 복사
COPY . .
# Flask 웹 서버 실행
CMD ["python3", "app.py"]
- requirements.txt
Flask
도커 이미지 빌드 & 실행
docker build -t my-web-app .
docker run -d -p 5000:5000 --name test-web my-web-app
도커 이미지를 도커 hub에 배포
docker login
docker tag my-web-app dockerhub-name/my-web-app
docker push dockerhub-name/my-web-app:latest
⚠ Docker Image를 Kubernets로 가져오기 위해선, 인증이 필요하다.
인증은 Kubernetes Secret을 사용해서 Docker Hub 인증 정보를 제공하는 방법이 있음
kubectl create secret generic dockerhub-credentials \
--from-file=.dockerconfigjson=~/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
테스트
k run test --image=dockerhub-name/my-web-app:latest
k exec -it test -- /bin/bash
웹 애플리케이션을 생성하고, 도커 hub에 배포까지 완료했다.
다음 포스팅에서 GKE를 통해 웹 애플리케이션을 배포해보는걸로 👋
참조
https://dreamgonfly.github.io/blog/deploying-web-app-to-gke-cluster/
반응형
'💻 CSP > GCP' 카테고리의 다른 글
[GCP] Artifact Registry (0) | 2023.07.18 |
---|---|
[GCP] GKE로 웹 애플리케이션 배포 (2) (0) | 2023.06.19 |
[GCP] GKE 사용해보기 (0) | 2023.06.17 |
[GCP] GKE 클러스터 생성해보기 (0) | 2023.06.16 |
[GCP] GKE (Google Kubernetes Engine) (0) | 2023.06.15 |