kubectl 액세스 설정

이 방법 가이드에서는 다른 절차에서 필요에 따라 필요한 kubeconfig 파일을 가져오는 방법을 설명합니다. 읽기 전용 파일은 클러스터 구성을 보기에 충분합니다. 핵심 네임스페이스 파일은 로컬 또는 Microsoft Entra 인증 수정 또는 패킷 캡처 수집과 같은 작업에 필요합니다.

읽기 전용 액세스

Pod를 설명하고 로그를 보는 것과 같은 읽기 전용 kubectl 명령을 실행하려면 ASE 로컬 UI에서 kubeconfig 파일을 다운로드할 수 있습니다. 디바이스에서 구성 다운로드를 선택합니다.

로컬 UI에 액세스하려면 자습서: GPU를 사용하여 Azure Stack Edge Pro에 연결을 참조하세요.

Screenshot of Kubernetes dashboard showing link to download config.

다운로드한 파일의 이름은 config.json입니다. 이 파일에는 Pod를 설명하고 로그를 볼 수 있는 권한이 있지만 kubectl exec를 사용하여 Pod에 액세스할 수는 없습니다.

코어 네임스페이스 액세스

Azure Private 5G Core 배포는 core 네임스페이스를 사용합니다. 로컬 또는 Microsoft Entra 인증 수정 또는 패킷 캡처 수집과 같은 작업의 경우 핵심 네임스페이스에 대한 전체 액세스 권한이 있는 kubeconfig 파일이 필요합니다. 이 파일을 다운로드하려면 minishell 세션을 설정하고 이 섹션의 지시에 따라 필요한 명령을 실행합니다.

이 절차는 한 번만 수행해야 합니다. 이전에 이 절차를 수행했다면 이전에 저장된 kubeconfig 파일을 사용할 수 있습니다.

minishell 세션에 들어가기

이 절차 중에 Azure Stack Edge에서 minishell 명령을 실행해야 합니다. ASE의 관리 포트에 액세스할 수 있는 네트워크에 있는 Windows 컴퓨터를 사용해야 합니다. 액세스 권한이 있는지 확인하려면 ASE 로컬 UI를 볼 수 있어야 합니다.

컴퓨터에서 WinRM 사용

다음 프로세스는 PowerShell을 사용하며 컴퓨터에서 WinRM을 사용하도록 설정해야 합니다. 관리자 모드의 PowerShell 창에서 다음 명령을 실행합니다.

winrm quickconfig

WinRM은 한 번만 수행하면 되므로 컴퓨터에서 이미 사용하도록 설정되었을 수 있습니다. 네트워크 연결이 프라이빗 또는 도메인(공용 아님)으로 설정되어 있는지 확인하고 변경 내용을 수락합니다.

WinRM은 PC를 원격 연결로 엽니다. 이 연결은 나머지 절차에서 필요합니다. 원격 연결을 허용하지 않으려면 나머지 절차를 완료하여 핵심 네임스페이스 액세스를 얻은 후 관리자 모드의 PowerShell 창에서 Stop-Service WinRM -PassThru를 실행한 다음 Set-Service WinRM -StartupType Disabled -PassThru를 실행합니다.

minishell 세션 시작

  1. 관리자 모드의 PowerShell 창에서 ASE 관리 IP 주소를 입력합니다(따옴표 포함, 예: "10.10.5.90").

    $ip = "<ASE_IP_address>"
    
    $sessopt = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
    
    $minishellSession = New-PSSession -ComputerName $ip -ConfigurationName "Minishell" -Credential ~\EdgeUser -UseSSL -SessionOption $sessopt
    
  2. 프롬프트에서 Azure Stack Edge 암호를 입력합니다. 다음과 같은 메시지를 무시합니다.

    WARNING: The Windows PowerShell interface of your device is intended to
    be used only for the initial network configuration. Please
    engage Microsoft Support if you need to access this interface
    to troubleshoot any potential issues you may be experiencing.
    Changes made through this interface without involving Microsoft
    Support could result in an unsupported configuration.
    

이제 다음 단계에서 kubeconfig 파일을 얻도록 minishell 세션 설정이 준비되었습니다.

네트워크 변경이 있는 경우 세션이 중단될 수 있습니다. 세션의 상태를 보려면 Get-PSSession을 실행합니다. 여전히 연결되어 있으면 여전히 minishell 명령을 실행할 수 있어야 합니다. 끊어졌거나 연결이 끊긴 경우 Remove-PSSession을 실행하여 로컬에서 세션을 제거한 다음 새 세션을 시작합니다.

kubectl 액세스 설정

  • 이 절차를 처음 실행하는 경우 다음 단계를 실행해야 합니다. 이러한 단계에서 네임스페이스를 만들고 kubeconfig 파일을 다운로드한 후 이를 사용하여 네임스페이스에 대한 액세스 권한을 부여합니다.

    Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesNamespace -Namespace "core"}
    Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesUser -UserName "core"} | Out-File -FilePath .\kubeconfig-core.yaml
    Invoke-Command -Session $minishellSession -ScriptBlock {Grant-HcsKubernetesNamespaceAccess -Namespace "core" -UserName "core"}
    

    The Kubernetes namespace 'core' already exists와 같은 오류가 표시되면 이러한 단계를 이전에 실행한 것입니다. 이 경우 다음 글머리 기호로 바로 건너뛰어 이전에 생성된 파일을 검색합니다.

  • 이전에 이 절차를 실행한 경우 다음을 실행하여 이전에 생성된 kubeconfig 파일을 즉시 검색할 수 있습니다.

    Invoke-Command -Session $miniShellSession -ScriptBlock { Get-HcsKubernetesUserConfig -UserName "core" }
    

자세한 내용은 Kubernetes RBAC를 통한 클러스터 액세스 구성을 참조하세요.

다음 단계

  • kubeconfig 파일을 저장하여 나중에 필요할 때 사용할 수 있도록 합니다.
  • Microsoft Entra 인증 설정과 같은 다른 절차를 완료하는 과정의 일부로 kubeconfig 파일이 필요한 경우 해당 절차로 돌아가서 계속합니다.