다음을 통해 공유


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 클러스터를 배포할 때 사용한 프라이빗 키가 필요합니다.

대시보드를 사용하도록 설정하는 단계 개요

  1. 클러스터의 컨트롤 플레인 노드에서 Kubernetes 인증서를 내보냅니다.
  2. 인증서를 Azure Stack Hub 관리 머신으로 가져옵니다.
  3. Kubernetes 웹 대시보드를 엽니다.

마스터에서 인증서 내보내기

클러스터의 컨트롤 플레인 노드에서 대시보드의 URL을 검색할 수 있습니다.

  1. Azure Stack Hub 대시보드에서 주 클러스터의 공용 IP 주소 및 사용자 이름을 가져옵니다. 이 정보를 얻으려면 다음을 수행합니다.

    • https://portal.local.azurestack.external/Azure Stack Hub 포털에 로그인합니다.
    • 모든 서비스>모든 리소스선택합니다. 클러스터 리소스 그룹에서 마스터를 찾습니다. 마스터의 이름은 k8s-master-<sequence-of-numbers>.
  2. 포털에서 컨트롤 플레인 노드를 엽니다. 공용 IP 주소를 복사합니다. 연결 선택하여 VM 로컬 계정 상자를 사용하여 로그인에서 사용자 이름을 가져옵니다. 클러스터를 만들 때 설정한 것과 동일한 사용자 이름입니다. 연결 블레이드에 나열된 개인 IP 주소 대신 공용 IP 주소를 사용합니다.

  3. SSH 클라이언트를 열어 주 클러스터에 연결합니다. Windows를 사용하는 경우 Putty 사용하여 연결을 만들 수 있습니다. 컨트롤 플레인 노드, 사용자 이름에 공용 IP 주소를 사용하고 클러스터를 만들 때 사용한 프라이빗 키를 추가합니다.

  4. 터미널이 연결되면 kubectl 입력하여 Kubernetes 명령줄 클라이언트를 엽니다.

  5. 다음 명령을 실행합니다.

    kubectl cluster-info 
    

    대시보드의 URL을 찾습니다. 예: https://k8-1258.local.cloudapp.azurestack.external/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy

  6. 자체 서명된 인증서를 추출하고 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 
    
  7. kube-system 네임스페이스에서 비밀 목록을 가져옵니다. 다음 명령을 실행합니다.

    kubectl -n kube-system get secrets
    

    kubernetes-dashboard-token-<XXXXX> 값을 기록해 둡니다.

  8. 토큰을 가져와 저장합니다. 이전 단계의 비밀 값으로 kubernetes-dashboard-token-<####> 업데이트합니다.

    kubectl -n kube-system describe secret kubernetes-dashboard-token-<####>| awk '$1=="token:"{print $2}' 
    

인증서 가져오기

  1. Filezilla를 열고 컨트롤 플레인 노드에 연결합니다. 다음 정보가 필요합니다.

    • 컨트롤 플레인 노드 공용 IP
    • 사용자 이름
    • 프라이빗 비밀
    • SFTP 사용 - SSH 파일 전송 프로토콜
  2. /etc/kubernetes/certs/client.pfx/etc/kubernetes/certs/ca.crt을 Azure Stack Hub 관리 머신으로 복사하세요.

  3. 파일 위치를 기록해 둡다. 스크립트를 위치 정보로 업데이트한 다음, 권한이 상승된 프롬프트로 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 대시보드 열기

  1. 웹 브라우저에서 팝업 차단을 사용하지 않도록 설정합니다.

  2. 브라우저를 명령 kubectl cluster-info을 실행할 때 기록한 URL로 이동하십시오. 예를 들어, https://azurestackdomainnamefork8sdashboard/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy로 이동하십시오.

  3. 클라이언트 인증서를 선택합니다.

  4. 토큰을 입력합니다.

  5. 컨트롤 플레인 노드의 bash 명령줄에 다시 연결하고 kubernetes-dashboard권한을 부여합니다. 다음 명령을 실행합니다.

    kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard 
    

    이 스크립트는 kubernetes-dashboard 클라우드 관리자 권한을 제공합니다. 자세한 내용은 에서 RBAC 지원 클러스터을 참조하세요.

이제 대시보드를 사용할 수 있습니다. Kubernetes 대시보드에 대한 자세한 내용은 Kubernetes Web UI 대시보드참조하세요.

Azure Stack Hub Kubernetes 대시보드

문제 해결

사용자 지정 가상 네트워크

사용자 지정 가상 네트워크Kubernetes를 배포한 후 Kubernetes 대시보드에 액세스하는 데 연결 문제가 발생하는 경우 대상 서브넷이 AKS 엔진에서 만든 경로 테이블 및 네트워크 보안 그룹 리소스에 연결되어 있는지 확인합니다.

네트워크 보안 그룹 규칙이 컨트롤 플레인 노드와 Kubernetes 대시보드 Pod IP 간의 통신을 허용하는지 확인합니다. 컨트롤 플레인 노드에서 ping 명령을 사용하여 이 권한의 유효성을 검사할 수 있습니다.

다음 단계