Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add hodu-server #190

Merged
merged 12 commits into from
Aug 27, 2024
Merged

Add hodu-server #190

merged 12 commits into from
Aug 27, 2024

Conversation

jj1kim
Copy link
Contributor

@jj1kim jj1kim commented Aug 5, 2024

리크루팅을 위한 채점 서버인 "hodu"를 배포하려고 합니다.

현재 아래 내용이 해결되어 있지 않아서 draft pr로 올립니다.

  • ecr 이미지 발급 및 주소 입력
  • role 발급 및 ServiceAccount 설정
  • domain 발급 및 VirtualService 설정

+) 요청 자원의 경우 아직 내부적으로 스펙에 대한 토의가 끝나지 않아서, 토의가 끝난 이후에 수정하겠습니다.
+) hodu 팀에 대한 그룹이 없는거 같아서 따로 CODEOWNER은 건드리지 않았습니다.

Copy link
Member

@woohm402 woohm402 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wafflestudio/hodu 팀 있어요!

Copy link
Contributor

@minkyu97 minkyu97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다

- istio-ingress/waffle-ingressgateway
- mesh
hosts:
- #TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1) 아직 도메인 발급이 안 된 상태이지만, 도메인 발급되면 해당 도메인과 함께 서비스 DNS 도 추가해주세요!
저희가 테스트할 때는 퍼블릭 도메인으로 직접 요청할 수 있지만, wacruit-dev 서버와 통신할 때는 굳이 퍼블릭 도메인을 거칠 필요가 없어서요.

- istio-ingress/waffle-ingressgateway
- mesh
hosts:
- hodu-server.hodu-prod.svc.cluster.local
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2) 요거 제가 알기론 hodu-server 라고만 적어도 될 거예요 (http.route.destination.host 와 마찬가지로)

@minkyu97 minkyu97 marked this pull request as ready for review August 6, 2024 10:44
@minkyu97 minkyu97 requested a review from a team as a code owner August 6, 2024 10:44
@minkyu97
Copy link
Contributor

minkyu97 commented Aug 6, 2024

@wafflestudio/waffle-k8s-admin k8s 대장님들 안녕하십니까 오랜만입니다..
저희가 이번주 토요일 리크루팅 시작인데 개발 시간이 굉장히 타이트했어서 좀 촉박하지만 와플 월드 매니페스트 리뷰를 요청드립니다.
현재

  • ecr 레지스트리
  • dev 서버용 퍼블릭 도메인
  • ServiceAccount 에 사용될 IAM Role

등을 발급 대기 중이어서 완성된 Manifest 는 아니지만, 저걸 다 받고 리뷰를 요청 드리면 너무 늦어질 것 같아서 미리 리뷰 요청드립니다.
다시 한 번 촉박하게 요청드려 죄송해요! 감사합니다

@minkyu97 minkyu97 assigned minkyu97 and jj1kim and unassigned minkyu97 Aug 6, 2024
Comment on lines +28 to +34
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 200m
memory: 256Mi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

나름 트래픽이 몰릴 리크루팅 서버인데 리소스는 조금 더 증설해도 되지 않을까요?

NAME                                               CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
ip-192-168-5-125.ap-northeast-2.compute.internal   68m          3%     1643Mi          49%       
ip-192-168-5-142.ap-northeast-2.compute.internal   37m          1%     999Mi           30%       
ip-192-168-5-233.ap-northeast-2.compute.internal   52m          2%     1926Mi          58%       
ip-192-168-5-31.ap-northeast-2.compute.internal    253m         13%    1754Mi          53%       
ip-192-168-5-68.ap-northeast-2.compute.internal    36m          1%     789Mi           23%       
ip-192-168-5-97.ap-northeast-2.compute.internal    57m          2%     1750Mi          52%       
ip-192-168-6-148.ap-northeast-2.compute.internal   273m         14%    1951Mi          58%       
ip-192-168-6-153.ap-northeast-2.compute.internal   51m          2%     1799Mi          54%       
ip-192-168-6-30.ap-northeast-2.compute.internal    54m          2%     2095Mi          63%       
ip-192-168-6-37.ap-northeast-2.compute.internal    40m          2%     1301Mi          39%       
ip-192-168-6-80.ap-northeast-2.compute.internal    49m          2%     1793Mi          54%       
ip-192-168-6-90.ap-northeast-2.compute.internal    86m          4%     1124Mi          33%     

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

prod 기준 리소스 훨씬 많이 증설해야합니다!..
지금은 리소스를 얼마나 요청드려야할지 감이 안잡혀서 개발 완료 후 로드 테스트 해보고 재요청드리려 했습니다.

kind: Application
metadata:
namespace: argocd
name: hodu
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

운영환경에 올라갈 각종 API resource 네이밍이 (namespace 포함) hodu-prod인데, argoApp 이름을 hodu라고 짓는 이유가 따로 있을까요?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이건 기존에 작성된 앱들 보고 따라하신 것 같습니다!
다른 애들도 전부 dev 의 경우에만 -dev prefix를 붙이는 걸로 보입니다.

app: hodu-server
spec:
serviceAccountName: hodu-server
containers:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isolate 실행하기 위한 최소 조건입니다. privileged 옵션 추가해주세요.

Suggested change
containers:
containers:
securityContext:
privileged: true

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wafflestudio/waffle-k8s-admin 이거 추가해도 괜찮을까요??
파드 내에 샌드박스 환경을 구축하기 위해 필요합니다

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

public한 api서버인거죠? 다른 방법은 없나요?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Hank-Choi 에구 이 댓글을 지금 봤네요 ㅠㅠ
넵 퍼블릭한 서버가 맞고, cgroup 을 사용하기 위한 최소한의 조건이라 다른 방법이 없습니다.

  1. isolate → cgroup 에 의존,
  2. cgropu → privileged 필요입니다.

관련 링크 첨부합니다.

@Hank-Choi
Copy link
Contributor

Hank-Choi commented Aug 7, 2024

그리고 이거 wacruit랑은 다른건가요?
wacruit-server 랑 관계가 어떻게 되나요?

@jj1kim
Copy link
Contributor Author

jj1kim commented Aug 7, 2024

그리고 이거 wacruit랑은 다른건가요? wacruit-server 랑 관계가 어떻게 되나요?

@Hank-Choi 이 서버는 wacruit-judge에 해당하는 기능을 하고 있습니다. 기존 wacruit는 각종 백엔드 기능들을 담당하는 wacruit-server에서 코드 채점 부분을 외부 api인 judge0에 의존하고 있었습니다. hodu는 judge0의 기능을 직접 구현한 서버로, 채점 로직만을 담당하고 있습니다.

@jj1kim
Copy link
Contributor Author

jj1kim commented Aug 7, 2024

@wafflestudio/hodu 팀 있어요!

@woohm402 오호 있었군요! 리소스 수정할 때 같이 수정하겠습니다.

@minkyu97 minkyu97 merged commit 472d16a into wafflestudio:main Aug 27, 2024
Comment on lines +98 to +105
---
apiVersion: v1
kind: Namespace
metadata:
name: babble
labels:
istio-injection: enabled
---
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jj1kim @minkyu97 이건 왜 추가되었을까요?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants