Skip to main content

02B. Windows

About 2 minKubernetescrashcoursedigitaloceankubernetesminkubekubctl

02B. Windows ๊ด€๋ จ

๋ชฉ์ฐจ

์–ธ์ œ๋‚˜ ์ตœ์‹  Kubernetes

Unit 2 - 2.3 Windows

์–ธ์ œ๋‚˜ ์ตœ์‹  Kubernetes

Docker ์„ค์น˜

Minikube๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— Docker๋ถ€ํ„ฐ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. Windows์— Docker๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.


Minikube ์„ค์น˜

Windows์— Minikube๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. PowerShell์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ ๋’ค ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

minikube start | minikube

minikube is local Kubernetes
  • Windows
  • x86-64
  • Stable
  • .exe download
New-Item -Path 'C:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'C:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing

๋‹ค์Œ์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ Path์— C:\minikube๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'C:\minikube') {
  [Environment]::SetEnvironmentVariable('Path', $('C:\minikube;{0}' -f $oldPath), [EnvironmentVariableTarget]::Machine)
}

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์œผ๋ฉด PowerShell์„ ์ข…๋ฃŒํ•œ ๋’ค ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.


kubectl ์„ค์น˜

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด kubectl์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ kubectl์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. Windows๋Š” Docker Desktop์— kubectl์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ, ์›ํ™œํ•œ ์‹ค์Šต์„ ์œ„ํ•ด kubectl์„ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Install and Set Up kubectl on Windows | Kubernetes

Before you begin You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.30 client can communicate with v1.29, v1.30, and v1.31 control planes. Using the latest compatible version of kubectl helps avoid unforeseen issues.
Invoke-WebRequest -OutFile 'C:\minikube\kubectl.exe' -Uri 'https://dl.k8s.io/release/v1.25.0/bin/windows/amd64/kubectl.exe' -UseBasicParsing

minikube kubectl

์‚ฌ์‹ค minikube kubectl์ฒ˜๋Ÿผ minikube ์•ˆ์— ๋‚ด์žฅ๋œ kubectl์„ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ณ„์† ์“ธ ๊ฒƒ์ด๋ฏ€๋กœ kubectl์„ ์„ค์น˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


kubectl์„ k๋กœ ๋ณ„์นญ ๋งŒ๋“ค๊ธฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด kubectl์„ ์ˆ˜ ๋ฐฑ, ์ˆ˜ ์ฒœ๋ฒˆ์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ kubectl์„ k๋กœ ์ค„์—ฌ์„œ ์“ฐ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

.PowerShell์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

echo "Set-Alias -Name k -Value kubectl" | Out-File -Encoding ascii -Append $PROFILE

์ด์ œ k๋งŒ ์ž…๋ ฅํ•˜๋ฉด kubectl์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ kubectl ํ•˜์œ„ ๋ช…๋ น์˜ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ๋„ ํ™œ์„ฑํ™”ํ•ด์ค๋‹ˆ๋‹ค.

kubectl completion powershell | Out-File -Encoding ascii -Append $PROFILE

๊ทธ๋‹ค์Œ์— notpad๋กœ $PROFILE์„ ์—ด์–ด์„œ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

notepad $PROFILE

์•„๋ž˜ ๋‚ด์šฉ์„

$PROFILE

Register-ArgumentCompleter -CommandName 'kubectl' -ScriptBlock {

์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, k๋งŒ ์ž…๋ ฅํ–ˆ์„ ๋•Œ๋„ ์ž๋™์™„์„ฑ์ด ๋˜๋„๋ก ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

$PROFILE

Register-ArgumentCompleter -CommandName 'k' -ScriptBlock {

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ $PROFILE์— ์ˆ˜์ •๋œ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•ด์ค๋‹ˆ๋‹ค.

& $PROFILE

์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์€ k get์„ ์ž…๋ ฅํ•˜๊ณ ์ž ํ•  ๋•Œ k์—์„œ g๋งŒ ์ž…๋ ฅํ•˜๊ณ  ํƒญ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด get์œผ๋กœ ์ž๋™์™„์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ธฐํƒ€ ๋ช…๋ น๋“ค๊ณผ ์˜ต์…˜๋“ค๋„ ์ž๋™์™„์„ฑ๋˜๋‹ˆ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

PowerShell_profile.ps1 ํŒŒ์ผ์„ ๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

.PowerShell์—์„œ & $PROFILE ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” PowerShell์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# & : C:\Users\pyrasis\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ํŒŒ์ผ์„ ๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. C:\Users\pyrasis\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ํŒŒ์ผ์ด ๋””์ง€ํ„ธ ์„œ๋ช…๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์‹œ์Šคํ…œ์—์„œ ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๋ฐ ์‹คํ–‰ ์ •์ฑ… ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
# ์œ„์น˜ ์ค„:1 ๋ฌธ์ž:3
# + & $PROFILE
# +   ~~~~~~~~
#     + CategoryInfo          : ๋ณด์•ˆ ์˜ค๋ฅ˜: (:) [], PSSecurityException
#     + FullyQualifiedErrorId : UnauthorizedAccess

.PowerShell์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ ๋’ค ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Set-ExecutionPolicy RemoteSigned

์ด์ œ ๋‹ค์‹œ & $PROFILE ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

& $PROFILE

์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.