kubernetes 맛보기-7. service

mhlee·2021년 6월 15일
0

service 테스트를 하기 위해, 이번에는 gcp로 넘어가자.
GKE 클러스터 만드는 방법은 아래 링크를 참조한다.
https://velog.io/@ifthenelse/GCP-GKE-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

1. deploy.yaml 파일 생성

아래 명령을 통해 yaml 파일 템플릿을 생성한다.

kubectl create deploy --image=gasbugs/http-go http-go --dry-run=client -o yaml > http-go-deploy.yaml

2. service 내용 추가 및 생성

생성된 파일을 열어 맨위에 아래의 내용을 추가한다.

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

3. service 확인 및 scale-out

아래 명령을 통해 전체 상황을 조회한다.

kubectl get all

이번에는 pod의 갯수를 5개로 늘린다.

kubectl scale deploy http-go --replicas=5

이후 다시 클러스터 상태를 조회하면, pod이 5개로 늘어나고 있음을 확인할수 있다.

4. 세션 Affinity 설정

Affinity란 사전적 용어로 '친화성', '친밀성'이다.
ClientIP로 설정하여 클라이언트IP에 대해서 동일 서버로 트래픽이 계속 전달되도록 설정 해본다.

아래의 명령을 통해 Affinity를 직접 수정한다.

kubectl edit svc http-go-svc

5. 테스트

테스트를 위해 서비스의 클러스터 ip를 메모해 둔다.

kubectl get svc

아래의 명령을 통해 bash를 실행할수 있는 이미지를 기동한다.

kubectl run -it --rm --image=busybox bash

그리고, 컨테이너 안에서 아래의 3~5회 실행해 본다.
서버명이 동일하게 나옴을 확인할수 있다.

wget -O- -q <your-ip>

profile
삽질하는 개발자

0개의 댓글