강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

서성혁님의 프로필 이미지
서성혁

작성한 질문수

ssh 공개키 등록하는 거는 이해했는데, k8s환경에서는 어떻게 하나요?

작성

·

14

0

안녕하세요. ansible강의가 업무에 도움이 많이 되었습니다.

특히, 앤서블로 관리하는 서버를 별도 계정/패스워드 없이 인증서가지고 접속하는 방법은 도움이 많이 되었습니다.

근데, 앤서블 서버(정확히는 awx)를 컨테이너 환경으로 바뀌게 되었는데, 이런 경우는 개인키, 공용키 생성을 어떻게 하나요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
서성혁님께서 질문 주신 Kubernetes 환경에서 SSH 공개키를 등록하는 방법에 대해 설명드리겠습니다.

Spring Boot Reference Documentation에 따르면, Spring Boot는 Kubernetes 배포 환경을 자동으로 감지합니다. Kubernetes 환경에서의 SSH 키 관리는 일반적인 서버 환경과 유사하지만, 더 세심한 설정이 필요할 수 있습니다. 기본적으로 SSH 키는 애플리케이션 컨테이너 이미지의 빌드 프로세스에 포함시키거나, Kubernetes의 시크릿(Secret) 객체로 설정하여 Pod에서 참조할 수 있도록 만드는 방법이 있습니다.

  1. SSH 키 생성:

    • 로컬 머신에서 SSH 키를 생성합니다. 예: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • 이 과정에서 생성된 id_rsa(개인키)와 id_rsa.pub(공개키)를 Kubernetes에 등록할 준비를 합니다.
  2. Kubernetes 시크릿 생성:

    • 생성된 SSH 키를 Kubernetes 시크릿으로 등록합니다.
    • 예를 들면 다음과 같은 명령을 사용할 수 있습니다:
      
      kubectl create secret generic ssh-key-secret --from-file=id_rsa=/path/to/your/id_rsa --from-file=id_rsa.pub=/path/to/your/id_rsa.pub
      

  3. Pod에 시크릿 마운트:

    • 생성한 시크릿을 Deployment나 Pod의 명세에 포함시켜 환경 변수 또는 파일로 사용할 수 있게 설정합니다.
    • Pod에서 비밀 키 사용을 위해 volumevolumeMounts 를 설정하여 시크릿을 참조할 수 있도록 하세요.

이렇게 구성하면 컨테이너 내에서 키를 사용하여 SSH를 사용하는 애플리케이션을 쉽게 관리할 수 있습니다. Kubernetes와의 연동을 위해 필요한 더 세부적인 설정은 공식 문서를 참조하시거나, 환경에 맞게 설정을 변경하시면 됩니다.

추가로 더 읽어보실 자료:
- Kubernetes에서 시크릿 사용하기

궁금하신 점이 있으면 언제든지 문의해주세요. 항상 성공적인 개발을 응원합니다!

서성혁님의 프로필 이미지
서성혁

작성한 질문수

질문하기