https://daaa0555.tistory.com/329
클러스터 오토 스케일러
지금 현재 노드가 2개인데 그것을 늘리기 위해 디플로이먼트를 하나 만들어 늘린다
그냥 디플로이먼트를 만들어 스케일링을 해봐도 리소스.리퀘스트를 셋팅을 하지 않으면 ,어플리케이션을 올려봤자 실제로 외부에서 접근하는게 없어서 cpu 사용량이 늘어나지 않는다
리퀘스트를 설정해 스케일링을 하게되면 노드가 늘어난것을 확인 할 수 있다
apiVersion: apps/v1
kind: Deployment
metadata:
name: mydeploy
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- image: 이미지 넣으세요
name: myapp
ports:
- containerPort: 8080
resources:
requests:
cpu: 500m
memory: 500M
resources.requests 설정
디플로이먼트 생성
노드 확인 - 오토스케일링에 의해 노드가 하나 생성 되었다
리퀘스트 없이 요청하게 되면 파드의 갯수가 많아야한다
온프레임에서는 할 수 없다
쿠버네티스 버전 업그레이드
버전 업그레이드를 쉽게 할 수 있다
python flask를 이용하여 간단하게 웹어플리케이션 만들기
가상환경 활성화
flask 설치
requirements.txt 파일 생성 ( Docker build 할 때 사용)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Flask"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=int("5000"))
편집기를 열어 myflask 디렉토리 아래에 index.py 파일 작성
웹 미리보기에서 5000번 포트 변경 하여 확인
이미지 생성하기
FROM python:3-alpine
WORKDIR /app
COPY requirements.txt requirements.txt
COPY index.py index.py
RUN pip3 install -r requirements.txt
EXPOSE 5000
CMD ["python3", "index.py"]
편집기를 열어 myflask 디렉토리 아래에 Dockerfile 파일 작성
도커 이미지 빌드
도커 컨테이너 생성하여 잘 생성되는지 확인
컨테이너 레지스트리(저장소)에 push
도커 login하여 push하는 형태가 아니다
docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE:TAG
docker push HOSTNAME/PROJECT-ID/IMAGE
이미지를 가지고 파드 생성
쿠버네티 클러스터, 레지스트리도 모두 구글 서비스이다
쿠버네티스 워커노드(VM인스턴스)가 저장소에 접근 할 수 있는 권한이 이미 설정이 되어 있는 상태이기 때문에 (내부적으로 인증) 별도로 인증 설정할 필요가 없다
'클라우드 > 클라우드(Public Cloud)' 카테고리의 다른 글
클라우드 GCP IAM 1 / 역할 부여 1 (0) | 2021.08.25 |
---|---|
클라우드 GCP 쿠버네티스 Google Kubernetes Engine ( GKE ) 3 / CI 와 CD (0) | 2021.07.23 |
클라우드 GCP 쿠버네티스 Google Kubernetes Engine ( GKE ) 1 (0) | 2021.07.23 |
클라우드 GCP SQL (0) | 2021.06.25 |
클라우드 GCP 스토리지 (0) | 2021.06.25 |