๋ค์ด๊ฐ๊ธฐ ์์ ์ ๋ Windows ๋ฅผ ๋ง์ด ๋ค๋ค๋ณด์ง ์์๊ธฐ ๋๋ฌธ์ ๋ถ์กฑํ๊ฑฐ๋ ํ๋ฆฐ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค!
์ฟ ๋ฒ๋คํฐ์ค๋ v1.23 ๋ฒ์ , Karpenter ๋ v0.31 ๋ฒ์ ์ ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค(EKS) ํ๊ฒฝ์ ์๋์ฐ์ Karpenter ๋ฅผ ํ์ฑํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Karpenter ์ ๋ํด ๊ถ๊ธํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๊ทธ๋ผ ๋ ์ธ ๋๋์ฝ๋~
์ฐ๋ฆฌ๊ฐ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ก ์ค์ผ์คํธ๋ ์ด์ ์ ์ํจ์ด์ฃ .
ํ๋์ ๋ง์คํฐ ํ๋ ์ธ์ผ๋ก ์ฌ๋ฌ ๋ ธ๋์ ์ฌ๋ฌ ํ๋๋ฅผ ์ข ๋ ์ฝ๊ฒ ๊ด๋ฆฌํ๊ธฐ ์ํด์์ ๋๋ค.
Action Runner ์ญ์ ์์ธ๋ ์๋์ฃ .
Action Runner Controller ๋ฅผ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์ ํ๋ ๋จ์์ Runner ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋งจ ์ฒ์ Action Runner Controller ๋ฅผ ์ ํ์ ๋ Official ํ์ง ์์๋๋ฐ, ํ์ฌ๋ Github Docs ์๋ ๊ฐ์ด๋ํ๊ณ ์์ต๋๋ค.
๋ฆฌ๋ ์ค ๊ธฐ๋ฐ์ ๋ ธ๋๋ผ๋ฉด ์ด๋ ต์ง ์์์. ์ ๊ณต๋๋ Action Runner Controller ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง ์๋์ฐ๋ ์๊ธฐ๊ฐ ์ข ๋ค๋ฆ ๋๋ค.
๋ค.. ๊ณต์์ ์ผ๋ก ์ง์์ ์ํด์ค๋๋ค.. ๋ฐ๋ผ์ ์ด๋ฏธ์ง๋ฅผ ์ง์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋คํํ ์์ ํ ์๋์ฐ๋ฅผ ๋ฐฐ์ ํ ๊ฒ์ ์๋์์.
์ฌ๊ธฐ๋ฅผ ๋ณด๋ฉด ์ด๋ ๊ฒ ์๋์ฐ์ ๋ํด์ ๊ฐ์ด๋ํ๊ณ ์์ฃ .
๋ฌธ์๋ฅผ ๋ณด๋ฉด Dockerfile ์ด ์ ๊ณต๋๋๋ฐ ์ ๋ ์กฐ๊ธ~ ์์ ํ์ต๋๋ค.
FROM mcr.microsoft.com/windows/servercore:ltsc2019
ENV chocolateyVersion=1.4.0
WORKDIR /actions-runner
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';$ProgressPreference='silentlyContinue';"]
RUN Invoke-WebRequest -Uri https://github.com/actions/runner/releases/download/v2.292.0/actions-runner-win-x64-2.292.0.zip -OutFile actions-runner-win-x64-2.292.0.zip
RUN if((Get-FileHash -Path actions-runner-win-x64-2.292.0.zip -Algorithm SHA256).Hash.ToUpper() -ne 'f27dae1413263e43f7416d719e0baf338c8d80a366fed849ecf5fffcec1e941f'.ToUpper()){ throw 'Computed checksum did not match' }
RUN Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory('actions-runner-win-x64-2.292.0.zip', $PWD)
RUN Invoke-WebRequest -Uri 'https://aka.ms/install-powershell.ps1' -OutFile install-powershell.ps1; ./install-powershell.ps1 -AddToPath
RUN powershell Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
RUN powershell choco install git.install --params "'/GitAndUnixToolsOnPath'" -y
RUN powershell choco feature enable -n allowGlobalConfirmation
CMD [ "pwsh", "-c", "./config.cmd --name $env:RUNNER_NAME --url https://github.com/$env:RUNNER_ORG --runnergroup $env:RUNNER_GROUP --token $env:RUNNER_TOKEN --labels $env:RUNNER_LABELS --unattended --replace --ephemeral; ./run.cmd"]
๋ง์ฝ 2022 ๋ฒ์ ์ Karpenter ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด 2019 ๊ฐ ์๋ 2022 ๋ฒ์ ์ ์๋์ฐ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ ์ด์ ์ด Dockerfile ์ ๋น๋ํด์ผ ํ๋๋ฐ ๋ฌธ์ ๋ ์ ๋ ์๋์ฐ๊ฐ ์์ต๋๋ค..
๊ทธ๋์ Terraform ์ ์ด์ฉํด์ ๊ฐ๋จํ๊ฒ Windows ๊ธฐ๋ฐ์ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํด์ ๊ทธ ์์์ ์งํํ์ต๋๋ค.
์ฌ์ฉํ AMI ๋ Karpenter ์์ ์ฌ์ฉํ๋ AMI ์ ๊ฐ์ต๋๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ์ฒ๋ผ SSH ๋ก ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํด์ ์๋์ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋ค์ด๋ฐ์์ ์ ์์ ํ์ต๋๋ค.
์ ๊ทธ๋ผ ๋์ด ์๋์ฐ์์ ๋น๋๋ฅผ ์งํํด๋ณด์ฃ !
.NET Framework 4.8 was installed, but a reboot is required. Please reboot the system and try to install/upgrade Chocolatey again.
๋น๋ ํ๋ค ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
๊นํ ๋ฌธ์์ ์๋ Dockerfile ์ ๊ทธ๋๋ก ์ฐ๋ฉด ๋ฐ์ํ ๊ฒ๋๋ค.
์ฑ๊ณต์ ์ผ๋ก ๋น๋๊ฐ ๋์ต๋๋ค.
์ด๋ฏธ์ง๊ฐ ์๋นํ ํฐ๋ฐ.. ์๋์ฐ ๋ฒ ์ด์ค ์ด๋ฏธ์ง ํฌ๊ธฐ ์์ฒด๊ฐ ์ปค์ ์ด์ฉ ์ ์์ต๋๋ค ใ ใ
Dockerfile ์์ Layer ๋ฅผ ์ค์ด๊ธฐ ์ํด Run ์ ํ์ค๋ก ์ฐ๋ฉด ์ํญ์ผ๋ก ์ค์ผ ์ ์์ง ์์๊น์?
์ดํ ์๋์ฐ ๊ธฐ๋ฐ์ ๋ ธ๋๋ฅผ Karpenter ๋ก ํ๋ก๋น์ ๋ํ ํ ํ๋๋ก ๋ฐฐํฌํ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๋๋ ๊ฑธ ์ ์ ์์ต๋๋ค.
๋ง์ฝ ์๋์ ๊ฐ์ด No such host is Known ์ด๋ผ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
EKS ์์ ์๋์ฐ ๊ธฐ๋ฐ์ ์์ปค ๋ ธ๋ ๊ด๋ จํ ์ค์ ์ด ๋์ง ์์์ ๋ฐ์ํ ์๋ฌ์ ๋๋ค.
์์ปค ๋ ธ๋๋ Join ํ์ง๋ง ํ๋๊ฐ CoreDNS ์ ์ ๊ทผ์ ๋ชปํด์ DNS ๋ฅผ ์ฐพ์ง๋ชปํด ๋ฐ์ํ๋ ์๋ฌ์ฃ .
์ค๋์ ์ด๋ ๊ฒ Windows ๊ธฐ๋ฐ์ ์์ปค ๋ ธ๋์ Runner ์ด๋ฏธ์ง๋ฅผ ์ง์ ๋น๋ํ์ฌ ํ๋๋ก ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค.
๊ธ๋ก๋ ๊ทธ๋ ๊ฒ ๊ธธ์ง ์์ง๋ง... ์ ๋ง ๋ป์ง์ด ๋ง์๋ ์์ ์ด์๋ค์..
๊ทธ๋ผ ์ค๋์ ์ฌ๊ธฐ๊น์ง~!