RubbyMine 등 JetBrains IDE를 k8s Pod에 연결

VSCode Remote Containers라면 kubectl exec를 할 수 있는 경우 간단하게 VScode에 attach를 할 수 있지만, 루비마인 등 제트브레인스 IDE라면 SSH를 통해서만 방법이 있을 것 같다.
이에 따라 kubectl port-forward를 이용해 SSH를 통해 k8s의 Pod에 연결하는 방법을 시도해 메모로 기록했다.
그럼에도 SSH 연결만 가능하면 이후 IDE를 통해서만 SSH 연결 정보를 입력하기 때문에 실제 K8s의 Pod에 SSH를 할 수 있는 방법을 기록했다.
물론 Image에 따라 패키지 관리자와 존재하는 사용자 등도 다르기 때문에 적절한 재독이 필요하다.
다음은 ghcr입니다.3개의 Image를 활용한 예다.

1.ssh-keygen 후 GiitHub 로그인


GiitHub을 통해 Pod에 쉽게 전달할 수 있으므로 등록하십시오.
SSH 공용 키가 등록되어 있으면 건너뛸 수 있습니다.
ssh-keygen -t ed25519 -C "メールアドレス" -f ~/.ssh/id_k8s_test
이후 cat ~/.ssh/id_k8s_test.pub등록https://github.com/settings/ssh/new한 결과.

2. Pod에 sshd 설치


sudo apt-get update
sudo apt-get install openssh-server -y

3. ~/.ssh/authorized_키스 준비하기.

kubectl port-forward를 해야 하기 때문에 비밀번호 없이 로그인을 허용할 수 있을 것 같았지만 SSH 키를 먼저 사용했다.
mkdir ~/.ssh
curl https://github.com/<github user 名>.keys > ~/.ssh/authorized_keys
chmod 750 ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

4. sshd 시작


-e에서 표준 출력에 오류가 발생했기 때문에 디버깅에 사용하기 편리할 수 있습니다.
sudo mkdir /var/run/sshd
sudo /usr/sbin/sshd -D -e

5.port-forward


kubectl port-forward <pod 名> 2222:22
로컬 측의 포트 번호(이번은 2222)로 중복된 것이 있으면 변경할 수 있습니다.

6. SSH 가능 여부 확인


ssh user@localhost -p 2222 -i ~/.ssh/id_k8s_test
이게 소통이 안 되면 어쩔 수 없어요.
반대로 이게 잘 진행되면 JetBrains IDE 연결에 오류가 발생하지 않습니다.아마

7. JetBrains IDE에서 SSH


Remote Development->SSH->Connectvia SSH에서 연결합니다.
자세한 내용은 공식 문서를 참조하시오.
https://www.jetbrains.com/help/idea/2021.3/remote-development-a.html#launch_gateway

좋은 웹페이지 즐겨찾기