개발강의정리/DevOps

[데브옵스를 위한 쿠버네티스 마스터] 연습문제: GKE에서 인그레스를 활용한 로드밸런싱 프로세스 확인

nineDeveloper 2020. 8. 22.
728x90

ingress-tomcat-http-go.yaml 파일 생성

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tomcat-http-go-ingress
spec:
  tls:
  - hosts:
    - tomcat.gasbugs.com
    - http-go.gasbugs.com
    secretName: tls-secret
  rules:
  - host: tomcat.gasbugs.com
    http:
      paths:
      - path: /
        backend:
          serviceName: tomcat
          servicePort: 80
  - host: http-go.gasbugs.com
    http:
      paths:
      - path: /
        backend:
          serviceName: http-go
          servicePort: 80

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-tomcat
  labels:
    app: tomcat
spec:
  replicas: 3
  selector:
    matchLabels:
      app: tomcat
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: consol/tomcat-7.0
        ports:
        - containerPort: 8080

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: http-go
  labels:
    app: http-go
spec:
  replicas: 3
  selector:
    matchLabels:
      app: http-go
  template:
    metadata:
      labels:
        app: http-go
    spec:
      containers:
      - name: http-go
        image: gasbugs/http-go
        ports:
        - containerPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: http-go
spec:
  selector:
    app: http-go
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080
    nodePort: 30001
  type: NodePort
---
apiVersion: v1
kind: Service
metadata:
  name: tomcat
spec:
  selector:
    app: tomcat
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080
    nodePort: 30002
  type: NodePort

create 명령으로 kubenetes 네트워크 생성

$ kubectl create -f ingress-tomcat-http-go.yaml

방화벽 정책 추가

gcloud compute firewall-rules create rule1 --allow tcp:30001-30002

tls 인증서 추가

kubectl delete secret tls-secret
openssl genrsa -out tls.key 2048
openssl req -new -x509 -key tls.key -out tls.cert -days 360 -subj /CN=tomcat.gasbugs.com
kubectl create secret tls tls-secret --cert=tls.cert --key=tls.key
curl -k  https://tomcat.gasbugs.com

쿠버네티스 엔진에서 서비스 및 수신을 클릭하고 각각의 서비스가 잘 동작하는 지 확인한다
특히 ingress가 잘 동작하는 지 확인 필요

인그레스가 IP를 할당 받기 까지는 약 2분, 내부에 라이브니스를 통해 서비스 정상동작 테스트가 약 10분 소요된다
테스트 중간에는 간헐적인 접속이 가능하다

이 10분동안은 인그레스에 느낌표 마크가 떠있으며 인그레스를 직접 클릭하면 수신 쪽에서 테스트 현황을 파악할 수 있다
현재는 총 세개의 서비스가 돌아가는지 파악하며 node의 30001과 30002, 30291을 모두 테스트하여 성공한 모습을 확인할 수 있다

저 백엔드 서비스로 떠있는 것은 GCE에서 제공하는 로드밸런서이다
테스트 되는데 시간이 발생할 수 있고 각 서비스마다 3번의 테스트 완료가 되면 그때부터 사용 가능하다

728x90

댓글

💲 추천 글