본문 바로가기

⭐ Kubernetes & EKS/LoadBalancer & Ingress

로드밸런서로 서비스하기 실습 및 연습문제

# 로드밸런서로 서비스 하기

# 파일 복사하기

cp http-go-np.yaml http-go-lb.yaml

vim http-go-lb.yaml
apiVersion: v1
kind: Service
metadata:
  name: http-go-lb
spec:
  type: LoadBalancer
  selector:
    run: http-go
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

# 작성한 yaml 파일 실행하기

kubectl create -f http-go-lb.yaml

kubectl get svc -w

# 서비스 확인하기

- EXTERNAL-IP:80 으로 웹브라우저에서 접속한다.

34.64.93.2:80

- 서비스가 정상적으로 동작하는것을 볼 수 있다.

# 노드포트, 노드밸랜서 연습문제

# 톰캣 서비스 생성하기

kubectl create deploy tomcat --image=tomcat --dry-run=client -o yaml

kubectl create deploy tomcat --image=tomcat --dry-run=client -o yaml > tomcat-deploy-np-lb.yaml

vim tomcat-deploy-np-lb.yaml

# 생성된 소스코드 확인

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: tomcat
  name: tomcat
spec:
  replicas: 1
  selector:
    matchLabels:
      run: tomcat
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: tomcat
    spec:
      containers:
      - image: consol/tomcat-7.0
        name: tomcat
        ports:
        - containerPort: 8080
        resources: {}
status: {}
---
apiVersion: v1
kind: Service
metadata:
  name: tomcat-np
spec:
  type: NodePort
  selector:
    run: tomcat
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30002
---
apiVersion: v1
kind: Service
metadata:
  name: tomcat-lb
spec:
  type: LoadBalancer
  selector:
    run: tomcat
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

# 생성한 yaml 파일을 실행하기

kubectl create -f tomcat-deploy-np-lb.yaml

kubectl get pod -w

kubectl get svc

# 로드밸런서 서비스 접근하기

kubectl get svc

EXTERNAL-IP:80

34.64.185.51:80

- 톰캣 메인서비스 출력 완료

# node port로 접근하기

- 30002번 포트로 접근해보자.

- 방화벽 해제

gcloud compute firewall-rules create tomcat-svc-rule --allow=tcp:30002

kubectl get nodes -o wide

- node의 External-IP로 접근하면 된다.

- 톰캣 메인화면 출력 완료

# 톰캣 이미지를 다른 버전으로 업데이트 해보자

kubectl edit deploy tomcat

image: consol/tamcat-7.0 > 내용 추가 or 버전 변경하기

kubectl get pod

kubectl get pod -w