배경일을 하다보니, 간혹 subnet이 하나라 아쉬운 순간이 이만 저만이 아니다. 가령 연구실에서 쓰는 ESXi 테스트베드 대역 중 하나는 10.0.20.0/24 라는 대역인데, 여기에 사람들이 몰리다 보니, 나 혼자만의 subnet이 필요하다... 하지만, 연구실에서 교수님께 라우터를 사달라하면 교수님이 너무나 좋아하시고, 일을 더 시킬게 분명하기에, 조용히... 그냥 서버 하나를 가지고 NAT를 만들어보려고 한다. 그리고, 내가 여간 게으른 성격이 아니기에, 해당 서버에서 DHCP 서버도 같이 동작시켜서, 자동으로 IP 할당도 해보려 한다. (todo) 목표- Subnet: 10.0.30.0/24- Gateway: 10.0.30.1+ DHCP 서버까지 (todo)OVS 브릿지 설정실제 서버(VM)의..
배경 내가 클라우드를 좋아 하고, 인공지능을 하지 않고 별로 좋아하지 않는 이유는 1) 수학이 싫어서 2) GPU 설정하기 싫어서. 두 가지로 나뉜다. 하지만, N 교수님이 당장 인공지능을 LLM을 돌려보라는 말을 하셔서 해야한다. 정확히는 스토리가 길지만, 언제나 그렇듯 원래 다른 사람의 일이였으나 어쩔 수 없이 울며 겨지먹기로 인공지능을 해야한다. 제약사항: PCI Passthrough 언제나 그렇듯, 우리의 환경은 클라우드 환경이다. 누군가는 아니 그냥 설치하고 cuda 툴킷 설치하면 되는거 아니냐? 그거 못 설치하면서 리눅스 한다고 하냐? 이래서 인프라 하는 놈들은 안된다. 이라는 말을 할지 모른다. 하지만, 우리에게는 언제나 그렇듯, 제약사항이 존재한다 우리의 머신은 RTX 4090 두대가 들어..
배경 관리하던 학교 Kubernetes(이하 K8s) 클러스터에 접속해서 관리를 하려고 했더니 다음처럼 나왔다. $ kubectl get pods Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2023-07-14T01:22:53Z is after 2023-07-10T11:45:22Z 그래서 이를 해결하고자 살짝의 삽질을 했다 (한 10분 정도니까 삽질이라고 하기도 좀 그렇다...) 인증서 확인 먼저 정말로 X509 인증서가 만료되었는지 확인하자. sudo kubeadm certs check-expiration [check-expiration] Reading configuratio..
배경 나에게는 두분의 주인님이 계신다. 각 연구실에서 내가 하는 일이 살짝 다르다. Y 교수님: Ceph 관련 일을 해야한다 N 교수님: 분산 추적 관련 일을 해야한다 이번 랩미팅 때, 재미있는걸 해볼 수 있을 것 같다. 바로, "Ceph의 내부 상황을 Jager로 모니터링하기"다. 이러면 Ceph에 대해 조금 더 알 수 있고, Jager에 대해서도 알 수 있게 된다. 아주 좋다. "Ceph Jager" 키워드를 검색하니, Ceph가 기본으로 Jager를 지원한다고 나와있다. - https://docs.ceph.com/en/quincy/dev/developer_guide/jaegertracing/ JAEGER- DISTRIBUTED TRACING — Ceph Documentation © Copyright..
배경 N 교수님 연구실 말고, Y 교수님 연구실에서는 Ceph를 가지고 뭔가를 한다. 아직 Ceph에 대해 많이 알지는 못한다. 하지만 그냥 이런게 있다 정도는 안다. 이번에 KlosedStack을 구성하며, 새로 도입해야하는 요소는 바로 Ceph이다. https://blog.isu.kim/16 [KlosedStack #3] Vagrant + OVS 시리즈 - [KlosedStack #1] Intro: https://blog.isu.kim/14 - [KlosedStack #2] Vagrant + Libvirt: https://blog.isu.kim/15 배경 지난 시간에는, KlosedStack에서 사용할 VM을 Vagrant로 Libvirt를 사용해 생성했다. 이제는 각 VM끼리 연 blog.isu.k..
배경 [[Bind9] Private DNS 서버 + OpenVPN 배경 Y 교수님의 연구실에서 최근 내가 이런 저런 목적으로 VM을 너무 많이 만들었다. (전체 건물이 /24 서브넷인데, 그 중 28개 정도를 내가 먹었으니...) 또, 지난주에 OVS를 가지고 테스트 하다가, blog.isu.kim](https://isuwiki.tistory.com/7) 지난 시간에는 Private DNS 서버를 구축하는 방법에 대해 살펴봤다. 이번에는 Public DNS 서버를 구축해서, 실제적으로 우리의 DNS 서버를 다른 사람들이 쿼리할 수 있게 하려고 한다. 우선 전제는 도메인을 이미 소유하고 있다는 전제로 시작한다. 도메인 구매 방법은 뭐 다양하니, 아무 곳에서나 구매하면 된다. 사실 이걸 알아보게 된 계기는 ..
배경 가끔 세상을 살다보면, 리눅스 인터페이스를 바꿀 때가 필요할 수 있다. 기존 리눅스의 경우 eth0, eth1과 같은 인터페이스 이름을 썼는데, 최근의 리눅스 배포를 보면 ens192, ens224와 같은 인터페이스 이름을 기본으로 설정해준다. 이게 불편할 때가 있다. 예를 들어, 오픈스택에서 PackStack을 통해 멀티 노드 환경을 만들어줄 때 그렇다. 여러 노드에서 통일된 인터페이스 이름을 가져야지 (안그래도 설치하기에 운이 따르는) PackStack이 잘 설치될 수 있다. 그래서 이번에는 CentOS 8에서 네트워크 인터페이스 이름을 변경해보도록 한다. ens192 -> eth0: 외부 접속 용도 (192.168.100.0/24) ens224 -> eth1: 내부 인스턴스 사이의 Tunnel..
배경 기다리고 기다리던 Docker 시간이다. 사실 최근 팀플을 하면서 컨테이너를 만들 일이 많았다. 근데 뭔가 이걸 공개적으로 Docker Hub에 올리기는 상당히 수치스러운 컨테이너들이기 때문에, 자체적으로 호스팅을 하는게 낫지 않을까 하는 생각을 하게 되었다. 그러던 중 기존에 알던 Private Registry 등록을 실제로 한번 해보게 되었다. 절차는 복잡하지 않지만, 상당히 귀찮다. 참고 자료는: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-docker-registry-on-ubuntu-22-04 https://devopscube.com/create-self-signed-certificates-openssl/..
배경 Y 교수님의 연구실에서 최근 내가 이런 저런 목적으로 VM을 너무 많이 만들었다. (전체 건물이 /24 서브넷인데, 그 중 28개 정도를 내가 먹었으니...) 또, 지난주에 OVS를 가지고 테스트 하다가, 스위치에서 루프가 돌아서 정보 인프라팀에서 왔다. 정확히 누가 잘못인지는 모르겠지만, 조금 찔린다. 아무튼 그래서 연구실 내부의 서브넷을 만들었다. 근데 또 여기서 문제가 생긴다. 내가 조금 서버를 많이 사용하는게 아니다. 각 VM마다 IP 하나씩 DHCP 할당이니까, Kubernetes 만 돌린다고 쳐도 최소 3개, 즉 IP 3개를 외워야 하는데, 최근 멍청해지고 있어서 그정도 외우기도 힘들다. 그래서 생각한게 자체 DNS 서버를 만들자는것이다. DNS는 뭐 다들 너무 잘 알테니까, 굳이 설명하..