Azure Stack Hub에서 Kubernetes 대시보드에 액세스
메모
Kubernetes Azure Stack Marketplace 항목만 사용하여 개념 증명으로 클러스터를 배포합니다. Azure Stack에서 지원되는 Kubernetes 클러스터의 경우 AKS 엔진
Kubernetes에는 기본 관리 작업에 사용할 수 있는 웹 대시보드가 포함되어 있습니다. 이 대시보드를 사용하면 애플리케이션에 대한 기본 상태 및 메트릭을 보고, 서비스를 만들고 배포하고, 기존 애플리케이션을 편집할 수 있습니다. 이 문서에서는 Azure Stack Hub에서 Kubernetes 대시보드를 설정하는 방법을 보여 줍니다.
Kubernetes 대시보드의 필수 구성 요소
- Azure Stack Hub Kubernetes 클러스터: Azure Stack Hub에 배포된 Kubernetes 클러스터입니다. 자세한 내용은 Kubernetes배포를 참조하세요.
- SSH 클라이언트: 보안에 대한 SSH 클라이언트는 클러스터의 컨트롤 플레인 노드에 연결합니다. Windows를 사용하는 경우 Putty사용할 수 있습니다. Kubernetes 클러스터를 배포할 때 사용한 프라이빗 키가 필요합니다.
- FTP(PSCP): 컨트롤 플레인 노드에서 Azure Stack Hub 관리 머신으로 인증서를 전송하는 SSH 및 SSH 파일 전송 프로토콜을 지원하는 FTP 클라이언트입니다. FileZilla사용할 수 있습니다. Kubernetes 클러스터를 배포할 때 사용한 프라이빗 키가 필요합니다.
대시보드를 사용하도록 설정하는 단계 개요
- 클러스터의 컨트롤 플레인 노드에서 Kubernetes 인증서를 내보냅니다.
- 인증서를 Azure Stack Hub 관리 머신으로 가져옵니다.
- Kubernetes 웹 대시보드를 엽니다.
마스터에서 인증서 내보내기
클러스터의 컨트롤 플레인 노드에서 대시보드의 URL을 검색할 수 있습니다.
Azure Stack Hub 대시보드에서 주 클러스터의 공용 IP 주소 및 사용자 이름을 가져옵니다. 이 정보를 얻으려면 다음을 수행합니다.
-
https://portal.local.azurestack.external/
Azure Stack Hub 포털에 로그인합니다. -
모든 서비스>모든 리소스선택합니다. 클러스터 리소스 그룹에서 마스터를 찾습니다. 마스터의 이름은
k8s-master-<sequence-of-numbers>
.
-
포털에서 컨트롤 플레인 노드를 엽니다. 공용 IP 주소를 복사합니다.
연결 선택하여 VM 로컬 계정 상자를 사용하여로그인에서 사용자 이름을 가져옵니다. 클러스터를 만들 때 설정한 것과 동일한 사용자 이름입니다. 연결 블레이드에 나열된 개인 IP 주소 대신 공용 IP 주소를 사용합니다. SSH 클라이언트를 열어 주 클러스터에 연결합니다. Windows를 사용하는 경우 Putty 사용하여 연결을 만들 수 있습니다. 컨트롤 플레인 노드, 사용자 이름에 공용 IP 주소를 사용하고 클러스터를 만들 때 사용한 프라이빗 키를 추가합니다.
터미널이 연결되면
kubectl
입력하여 Kubernetes 명령줄 클라이언트를 엽니다.다음 명령을 실행합니다.
kubectl cluster-info
대시보드의 URL을 찾습니다. 예:
https://k8-1258.local.cloudapp.azurestack.external/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
자체 서명된 인증서를 추출하고 PFX 형식으로 변환합니다. 다음 명령을 실행합니다.
sudo su openssl pkcs12 -export -out /etc/kubernetes/certs/client.pfx -inkey /etc/kubernetes/certs/client.key -in /etc/kubernetes/certs/client.crt -certfile /etc/kubernetes/certs/ca.crt
kube-system 네임스페이스에서 비밀 목록을 가져옵니다. 다음 명령을 실행합니다.
kubectl -n kube-system get secrets
kubernetes-dashboard-token-<XXXXX> 값을 기록해 둡니다.
토큰을 가져와 저장합니다. 이전 단계의 비밀 값으로
kubernetes-dashboard-token-<####>
업데이트합니다.kubectl -n kube-system describe secret kubernetes-dashboard-token-<####>| awk '$1=="token:"{print $2}'
인증서 가져오기
Filezilla를 열고 컨트롤 플레인 노드에 연결합니다. 다음 정보가 필요합니다.
- 컨트롤 플레인 노드 공용 IP
- 사용자 이름
- 프라이빗 비밀
- SFTP 사용 - SSH 파일 전송 프로토콜
/etc/kubernetes/certs/client.pfx
및/etc/kubernetes/certs/ca.crt
을 Azure Stack Hub 관리 머신으로 복사하세요.파일 위치를 기록해 둡다. 스크립트를 위치 정보로 업데이트한 다음, 권한이 상승된 프롬프트로 PowerShell을 엽니다. 업데이트된 스크립트를 실행합니다.
Import-Certificate -Filepath "ca.crt" -CertStoreLocation cert:\LocalMachine\Root $pfxpwd = Get-Credential -UserName 'Enter password below' -Message 'Enter password below' Import-PfxCertificate -Filepath "client.pfx" -CertStoreLocation cert:\CurrentUser\My -Password $pfxpwd.Password
Kubernetes 대시보드 열기
웹 브라우저에서 팝업 차단을 사용하지 않도록 설정합니다.
브라우저를 명령
kubectl cluster-info
을 실행할 때 기록한 URL로 이동하십시오. 예를 들어,https://azurestackdomainnamefork8sdashboard/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
로 이동하십시오.클라이언트 인증서를 선택합니다.
토큰을 입력합니다.
컨트롤 플레인 노드의 bash 명령줄에 다시 연결하고
kubernetes-dashboard
권한을 부여합니다. 다음 명령을 실행합니다.kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
이 스크립트는
kubernetes-dashboard
클라우드 관리자 권한을 제공합니다. 자세한 내용은 에서 RBAC 지원 클러스터을 참조하세요.
이제 대시보드를 사용할 수 있습니다. Kubernetes 대시보드에 대한 자세한 내용은 Kubernetes Web UI 대시보드참조하세요.
문제 해결
사용자 지정 가상 네트워크
사용자 지정 가상 네트워크Kubernetes를 배포한 후 Kubernetes 대시보드에 액세스하는 데 연결 문제가 발생하는 경우 대상 서브넷이 AKS 엔진에서 만든 경로 테이블 및 네트워크 보안 그룹 리소스에 연결되어 있는지 확인합니다.
네트워크 보안 그룹 규칙이 컨트롤 플레인 노드와 Kubernetes 대시보드 Pod IP 간의 통신을 허용하는지 확인합니다. 컨트롤 플레인 노드에서 ping
명령을 사용하여 이 권한의 유효성을 검사할 수 있습니다.