service 테스트를 하기 위해, 이번에는 gcp로 넘어가자.
GKE 클러스터 만드는 방법은 아래 링크를 참조한다.
https://velog.io/@ifthenelse/GCP-GKE-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
아래 명령을 통해 yaml 파일 템플릿을 생성한다.
kubectl create deploy --image=gasbugs/http-go http-go --dry-run=client -o yaml > http-go-deploy.yaml
생성된 파일을 열어 맨위에 아래의 내용을 추가한다.
apiVersion: v1
kind: Service
metadata:
name: http-go-svc
spec:
selector:
app: http-go
ports:
- protocol: TCP
port: 80
targetPort: 8080
그리고, 아래 명령을 통해 service와 deploy를 생성한다.
kubectl create -f http-go-deploy.yaml
아래 명령을 통해 전체 상황을 조회한다.
kubectl get all
이번에는 pod의 갯수를 5개로 늘린다.
kubectl scale deploy http-go --replicas=5
이후 다시 클러스터 상태를 조회하면, pod이 5개로 늘어나고 있음을 확인할수 있다.
Affinity란 사전적 용어로 '친화성', '친밀성'이다.
ClientIP로 설정하여 클라이언트IP에 대해서 동일 서버로 트래픽이 계속 전달되도록 설정 해본다.
아래의 명령을 통해 Affinity를 직접 수정한다.
kubectl edit svc http-go-svc
테스트를 위해 서비스의 클러스터 ip를 메모해 둔다.
kubectl get svc
아래의 명령을 통해 bash를 실행할수 있는 이미지를 기동한다.
kubectl run -it --rm --image=busybox bash
그리고, 컨테이너 안에서 아래의 3~5회 실행해 본다.
서버명이 동일하게 나옴을 확인할수 있다.
wget -O- -q <your-ip>