# 윈도우에 kubectl 설치 및 설정

LLMS index: [llms.txt](/llms.txt)

---

## 시작하기 전에

클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 한다. 예를 들어, v1.36 클라이언트는 v1.35, v1.36, v1.37의 컨트롤 플레인과 연동될 수 있다.
호환되는 최신 버전의 kubectl을 사용하면 예기치 않은 문제를 피할 수 있다.

## 윈도우에 kubectl 설치

다음과 같은 방법으로 윈도우에 kubectl을 설치할 수 있다.

- [윈도우에서 curl을 사용하여 kubectl 바이너리 설치](#install-kubectl-binary-with-curl-on-windows)
- [Chocolatey, Scoop, 또는 winget을 사용하여 윈도우에 설치](#install-nonstandard-package-tools)

### 윈도우에서 curl을 사용하여 kubectl 바이너리 설치 {#install-kubectl-binary-with-curl-on-windows}

1. 최신 패치 릴리스 1.36 다운로드: 
   [kubectl 1.36.0](https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl.exe)

   또는 `curl` 을 설치한 경우, 다음 명령을 사용한다.

   ```powershell
   curl.exe -LO "https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl.exe"
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">참고:</h4>최신의 안정 버전(예: 스크립팅을 위한)을 찾으려면, <a href="https://dl.k8s.io/release/stable.txt">https://dl.k8s.io/release/stable.txt</a>를 참고한다.</div>


1. 바이너리를 검증한다. (선택 사항)

   `kubectl` 체크섬 파일을 다운로드한다.

   ```powershell
   curl.exe -LO "https://dl.k8s.io/v1.36.0/bin/windows/amd64/kubectl.exe.sha256"
   ```

   `kubectl` 바이너리를 체크섬 파일을 통해 검증한다.

   - 커맨드 프롬프트를 사용하는 경우, `CertUtil` 의 출력과 다운로드한 체크섬 파일을 수동으로 비교한다.

     ```cmd
     CertUtil -hashfile kubectl.exe SHA256
     type kubectl.exe.sha256
     ```

   - PowerShell을 사용하는 경우, `-eq` 연산자를 통해 `True` 또는 `False` 결과가 출력되는 자동 검증을 수행한다.

     ```powershell
     $($(CertUtil -hashfile .\kubectl.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl.exe.sha256)
     ```

1. `kubectl` 바이너리가 있는 폴더를 `PATH` 환경 변수의 앞부분 또는 뒷부분에 추가

1. `kubectl` 의 버전이 다운로드한 버전과 같은지 확인한다.

   ```cmd
   kubectl version --client
   ```
   또는 다음을 실행하여 버전에 대한 더 자세한 정보를 본다.

   ```cmd
   kubectl version --client --output=yaml    
   ```


<div class="alert alert-info" role="note"><h4 class="alert-heading">참고:</h4><a href="https://docs.docker.com/docker-for-windows/#kubernetes">윈도우용 도커 데스크톱</a>은 자체 버전의 <code>kubectl</code> 을 <code>PATH</code> 에 추가한다.
도커 데스크톱을 이전에 설치한 경우, 도커 데스크톱 설치 프로그램에서 추가한 <code>PATH</code> 항목 앞에 <code>PATH</code> 항목을 배치하거나 도커 데스크톱의 <code>kubectl</code> 을 제거해야 할 수도 있다.</div>


### Chocolatey, Scoop, 또는 winget을 사용하여 윈도우에 설치 {#install-nonstandard-package-tools}

1. 윈도우에 kubectl을 설치하기 위해서 [Chocolatey](https://chocolatey.org) 패키지 관리자, [Scoop](https://scoop.sh) 커맨드 라인 설치 프로그램, [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/) 패키지 관리자를 사용할 수 있다.

   <ul class="nav nav-tabs" id="tabs-kubectl-win-install" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-kubectl-win-install-0" role="tab" aria-controls="tabs-kubectl-win-install-0" aria-selected="true">choco</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-kubectl-win-install-1" role="tab" aria-controls="tabs-kubectl-win-install-1">scoop</a></li>
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-kubectl-win-install-2" role="tab" aria-controls="tabs-kubectl-win-install-2">winget</a></li></ul>

<div class="tab-content" id="tabs-kubectl-win-install-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-kubectl-win-install-0" role="tabpanel" aria-labelledby="tabs-kubectl-win-install-0-tab" tabindex="kubectl-win-install"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"> <span class="n">choco</span> <span class="n">install</span> <span class="nb">kubernetes-cli</span>
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-kubectl-win-install-1" role="tabpanel" aria-labelledby="tabs-kubectl-win-install-1-tab" tabindex="kubectl-win-install"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"> <span class="n">scoop</span> <span class="n">install</span> <span class="n">kubectl</span>
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-kubectl-win-install-2" role="tabpanel" aria-labelledby="tabs-kubectl-win-install-2-tab" tabindex="kubectl-win-install"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">winget</span> <span class="n">install</span> <span class="n">-e</span> <span class="p">-</span><span class="n">-id</span> <span class="n">Kubernetes</span><span class="p">.</span><span class="py">kubectl</span>
</span></span></code></pre></div></div></div>


1. 설치한 버전이 최신 버전인지 확인한다.

   ```powershell
   kubectl version --client
   ```

1. 홈 디렉터리로 이동한다.

   ```powershell
   # cmd.exe를 사용한다면, 다음을 실행한다. cd %USERPROFILE%
   cd ~
   ```

1. `.kube` 디렉터리를 생성한다.

   ```powershell
   mkdir .kube
   ```

1. 금방 생성한 `.kube` 디렉터리로 이동한다.

   ```powershell
   cd .kube
   ```

1. 원격 쿠버네티스 클러스터를 사용하도록 kubectl을 구성한다.

   ```powershell
   New-Item config -type file
   ```


<div class="alert alert-info" role="note"><h4 class="alert-heading">참고:</h4>메모장과 같은 텍스트 편집기를 선택하여 구성 파일을 편집한다.</div>


## kubectl 구성 확인


	<p>kubectl이 쿠버네티스 클러스터를 찾아 접근하려면,
<a href="https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh">kube-up.sh</a>를
사용하여 클러스터를 생성하거나 Minikube 클러스터를 성공적으로 배포할 때 자동으로 생성되는
<a href="/ko/docs/concepts/configuration/organize-cluster-access-kubeconfig/">kubeconfig 파일</a>이
필요하다.
기본적으로, kubectl 구성은 <code>~/.kube/config</code> 에 있다.</p>
<p>클러스터 상태를 가져와서 kubectl이 올바르게 구성되어 있는지 확인한다.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info
</span></span></code></pre></div><p>URL 응답이 표시되면, kubectl이 클러스터에 접근하도록 올바르게 구성된 것이다.</p>
<p>다음과 비슷한 메시지가 표시되면, kubectl이 올바르게 구성되지 않았거나 쿠버네티스 클러스터에 연결할 수 없다.</p>
<pre tabindex="0"><code>The connection to the server &lt;server-name:port&gt; was refused - did you specify the right host or port?
</code></pre><p>예를 들어, 랩톱에서 로컬로 쿠버네티스 클러스터를 실행하려면, Minikube와 같은 도구를 먼저 설치한 다음 위에서 언급한 명령을 다시 실행해야 한다.</p>
<p><code>kubectl cluster-info</code>가 URL 응답을 반환하지만 클러스터에 접근할 수 없는 경우, 올바르게 구성되었는지 확인하려면 다음을 사용한다.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info dump
</span></span></code></pre></div>

## 선택적 kubectl 구성 및 플러그인

### 셸 자동 완성 활성화

kubectl은 Bash, Zsh, Fish, 및 PowerShell에 대한 자동 완성 지원을 제공하므로 입력을 위한 타이핑을 많이 절약할 수 있다.

다음은 PowerShell에 대한 자동 완성을 설정하는 절차이다.


	<p>PowerShell용 kubectl 자동 완성 스크립트는 <code>kubectl completion powershell</code> 명령으로 생성할 수 있다.</p>
<p>모든 셸 세션에서 사용하려면, <code>$PROFILE</code> 파일에 다음을 추가한다.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">kubectl</span> <span class="n">completion</span> <span class="n">powershell</span> <span class="p">|</span> <span class="nb">Out-String</span> <span class="p">|</span> <span class="nb">Invoke-Expression</span>
</span></span></code></pre></div><p>이 명령은 PowerShell을 실행할 때마다 자동 완성 스크립트를 재생성한다. 아니면, 생성된 스크립트를 <code>$PROFILE</code> 파일에 직접 추가할 수도 있다.</p>
<p>생성된 스크립트를 <code>$PROFILE</code> 파일에 직접 추가하려면, PowerShell 프롬프트에서 다음 명령줄을 실행한다.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">kubectl</span> <span class="n">completion</span> <span class="n">powershell</span> <span class="p">&gt;&gt;</span> <span class="nv">$PROFILE</span>
</span></span></code></pre></div><p>셸을 다시 불러오면, kubectl 자동 완성이 동작할 것이다.</p>


### `kubectl convert` 플러그인 설치


	<p>이것은 쿠버네티스 커맨드 라인 도구인 <code>kubectl</code>의 플러그인으로서, 특정 버전의 쿠버네티스 API로 작성된 매니페스트를 다른 버전으로
변환할 수 있도록 한다. 이것은 매니페스트를 최신 쿠버네티스 릴리스의 사용 중단되지 않은 API로 마이그레이션하는 데 특히 유용하다.
더 많은 정보는 다음의 <a href="/docs/reference/using-api/deprecation-guide/#migrate-to-non-deprecated-apis">사용 중단되지 않은 API로 마이그레이션</a>을 참고한다.</p>


1. 다음 명령으로 최신 릴리스를 다운로드한다.

   ```powershell
   curl.exe -LO "https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl-convert.exe"
   ```

1. 바이너리를 검증한다. (선택 사항)

   `kubectl-convert` 체크섬(checksum) 파일을 다운로드한다.

   ```powershell
   curl.exe -LO "https://dl.k8s.io/v1.36.0/bin/windows/amd64/kubectl-convert.exe.sha256"
   ```

   `kubectl-convert` 바이너리를 체크섬 파일을 통해 검증한다.

   - 커맨드 프롬프트를 사용하는 경우, `CertUtil` 의 출력과 다운로드한 체크섬 파일을 수동으로 비교한다.

     ```cmd
     CertUtil -hashfile kubectl-convert.exe SHA256
     type kubectl-convert.exe.sha256
     ```

   - PowerShell을 사용하는 경우, `-eq` 연산자를 통해 `True` 또는 `False` 결과가 출력되는 자동 검증을 수행한다.

     ```powershell
     $($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
     ```

1. `kubectl-convert` 바이너리가 있는 폴더를 `PATH` 환경 변수의 앞부분 또는 뒷부분에 추가

1. 플러그인이 정상적으로 설치되었는지 확인한다.

   ```shell
   kubectl convert --help
   ```

   에러가 출력되지 않는다면, 플러그인이 정상적으로 설치된 것이다.

## 다음 내용


	<ul>
<li><a href="https://minikube.sigs.k8s.io/docs/start/">Minikube 설치</a></li>
<li>클러스터 생성에 대한 자세한 내용은 <a href="/ko/docs/setup/">시작하기</a>를 참고한다.</li>
<li><a href="/ko/docs/tasks/access-application-cluster/service-access-application-cluster/">애플리케이션을 시작하고 노출하는 방법에 대해 배운다.</a></li>
<li>직접 생성하지 않은 클러스터에 접근해야 하는 경우,
<a href="/ko/docs/tasks/access-application-cluster/configure-access-multiple-clusters/">클러스터 접근 공유 문서</a>를 참고한다.</li>
<li><a href="/ko/docs/reference/kubectl/kubectl/">kubectl 레퍼런스 문서</a> 읽기</li>
</ul>
