4 분 소요


윈도우에서 Agones 를 구성하는 방법은 다음 두 가지 방법이 있습니다.

  • minikube 로 Agones 구성하기
  • VirtualBox + Ubuntu 로 Agones 구성하기




minikube 로 Agones 구성하기

minikube 드라이버를 hyperv 로 설정하기:

  minikube config set driver hyperv


minikube 클러스터 시작하기:

  minikube start --kubernetes-version v1.18.15 -p agones


agones 설치하기:

  kubectl create namespace agones-system
  kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.15.0/install/yaml/install.yaml


agones gameserver 생성하기:

  kubectl create -f https://raw.githubusercontent.com/googleforgames/agones/release-1.15.0/examples/simple-game-server/gameserver.yaml


agones gameserver 확인하기:

다음 명령으로 pod/simple-game-server-* 상태가 Running 인 지 확인합니다.

  kubectl get all

gameserver 상태는 다음 명령으로 확인할 수 있습니다.

  kubectl get gameservers
  kubectl describe gameservers


minikube 서비스 시작하기:

  • service.yaml 작성하기:
    apiVersion: v1
    kind: Service
    metadata:
      name: agones-gameserver
    spec:
      type: NodePort
      selector:
        agones.dev/role: gameserver
      ports:
        - protocol: UDP
          port: 7676       # local port
          targetPort: 7654 # container port
    
  • 서비스 실행하기:
    minikube service --url agones-gameserver
    http://{Service IP}:{Service Port}
    
  • 서비스 테스트하기:
    ncat 테스트로 임의의 입력에 대해서 ACK 를 받으면 성공입니다.
    ncat -u {Service IP} {Service Port}
    hello
    ACK: hello
    




VirtualBox + Ubuntu 로 Agones 구성하기

만약 VirtualBox + Ubuntu 가 설치되지 않았다면 VirtualBox + Ubuntu 구성하기를 참고하세요.


윈도우에서 VMware 및 VirtualBox와 같은 앱은 Hyper-V가 사용 중일 때
동작하지 않았습니다. 즉 WSL2가 활성화되어 있으면 실행할 수 없었습니다.
그러나 최근 VirtualBox와 VMware는 모두 Hyper-V 및 WSL2를 지원하는 버전을
출시했습니다.

VirtualBox 변경사항VMware 변경사항 을 확인해보세요

여기에서는 VirtualBox 를 사용했습니다.


Weave Scope 설치하기

Weave Scope는 도커와 쿠버네티스를 위한 시각화 및 모니터링 도구입니다.

  • 쿠버네티스 클러스터에 Weave Scope 설치하기:
    $ kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    
  • Scope 를 브라우저로 열기:
    $ kubectl port-forward -n weave "$(kubectl get -n weave pod --selector=weave-scope-component=app -o jsonpath='{.items..metadata.name}')" 4040
    


Agones 실행하기

  • Agones 설치하기
    • Minikube 프로파일(클러스터)을 도커 드라이버로 시작하기:
      $ minikube start --kubernetes-version v1.18.15 -p agones --driver=docker
      $ minikube profile agones
      
    • Agones 설치하기:
      $  kubectl create namespace agones-system
      $  kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.14.0/install/yaml/install.yaml
      
    • Agones 파드 확인하기:
      $ kubectl describe --namespace agones-system pods
      $ kubectl get pods --namespace agones-system  
      
  • GameServer 생성하기
    • GameServer 생성하기:
      $ kubectl create -f https://raw.githubusercontent.com/googleforgames/agones/release-1.14.0/examples/simple-game-server/gameserver.yaml  
      
    • GameServer 확인하기:
      $ kubectl get gameservers
      $ kubectl describe gameserver
      


문제해결하기

  • Permission 이슈
    다음 에러가 발생하면, docker 그룹에 사용자를 추가합니다.
    $ minikube start --kubernetes-version v1.18.15 -p agones --driver=docker
    😄  [agones] minikube v1.20.0 on Ubuntu 20.04
    ✨  Using the docker driver based on user configuration
    
    💣  Exiting due to PROVIDER_DOCKER_NEWGRP: "docker version --format -" exit status 1: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version: dial unix /var/run/docker.sock: connect: permission denied
    💡  Suggestion: Add your user to the 'docker' group: 'sudo usermod -aG docker $USER && newgrp docker'
    📘  Documentation: https://docs.docker.com/engine/install/linux-postinstall/
    

    다음 명령을 실행합니다:

    $ sudo usermod -aG docker $USER && newgrp docker
    
  • Helm 설치하기(선택)
    # curl -O https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
    # bash ./get-helm-3  
    # helm version
    




VirtualBox + Ubuntu 구성하기




WSL2 + Docker Desktop + Minikube 이슈들

Part.0 에서 Agones 를 WSL2 환경에서 구성하는데 여러 이슈가 발생핬다고 소개했습니다.
특히, 윈도우에서 Minikube에서 노출된 서비스에 접근할 수 없는 이슈가 있었습니다.

다음은 Minikube 의 WSL 관련 이슈들입니다:


관련 자료

댓글남기기