2017-05-09 1 views
0

저는 작은 팀의 일원으로 일하기 때문에 우리는 자체 SSH 키를 사용하여 kubernetes 클러스터를 관리하고 싶습니다.Azure ACS : kubectl 용 복수 SSH 키

--generate-ssh-keys는 내 id_rsa.pub에서 ~/.ssh를 선택합니다. 그런 다음 az acs kubernetes get-credentials --resource-group $group --name $k8s_name을 사용하여 kubectl 구성 파일을 업데이트합니다.

동료가 대부분이 작업을 수행 할 수 있지만 부하 직원/에이전트에게 ssh 액세스가 필요하므로 kubectl exec을 사용할 수 없습니다.

내 키로 마스터에 들어갈 수는 있지만 추가 authorized_key를 배치하기 위해 에이전트에 접근 할 수없는 것 같습니다.

이 방법이 있습니까? 수동 작업이 필요한 경우에도?

답변

1

클러스터를 만들 때 입력 한 기본 ssh 키를 사용하여 마스터를 통해 에이전트에 액세스 할 수 있습니다 (이미 마스터에서 해당 키를 삭제 한 경우 다시 추가해야합니다).

보십시오이 설명서 다음 : How to login into DC-OS slave through Master

+0

내 이슈를 정리 한이 방법이 효과적이라고 생각하지 않지만 이것이 "대답"이라고 생각합니다. 그것은 지저분하고, 수동적이고 복잡합니다. – Chris

+0

나는 당신을 이해하고 동의합니다. 깨끗한 솔루션을 원한다면 어니 셔 너를 고려해야합니다.이 경우 유일한 문제는 학습 곡선이지만 가치가 있습니다. 다음은 몇 가지 링크입니다. http://docs.ansible.com/ansible/authorized_key_module.html 및 https://github.com/erjosito/ansible-azure-lab –

1

우리가했던 방법은 그것이 당신의 동료가 사용하여 마스터에 K8S 사용자 계정의 authorized_keys에 업데이트함으로써이었다

az vm user update -u azureuser --ssh-key-value "$(< ~/.ssh/id_rsa.pub)" -n <<master vm name>> -g <<k8s acs resource group>> 
그런 다음 kubectl을 실행할 수 있어야합니다

명령.

아직 에이전트에서이 작업을 수행해야하는 명령을 실행하지 않았지만 VM 이름을 가져 와서 각각을 실행하여 스크립트를 작성할 수 있습니다.

az vm list -g ONEKAY --query "[*].osProfile.computerName" 

당신은 첫 번째 명령을 사용하여이 목록을 실행할 수 있어야합니다 : (당신의 ACS 클러스터 자원 그룹의 유일한이기 때문에 너무 오래) 다음과 같은 무언가가 당신에게 VM 이름의 목록을 제공합니다 공개 키를 추가하십시오.

이렇게하는 것이 '처방 된'방법인지는 잘 모르겠지만 작동 할 것입니다.