개발강의정리/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가 잘 동작하는 지 확인 필요

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

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

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

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

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

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

    728x90

    댓글