4.3.1 kubectl 설치 및 설정

이제 클라우드 네이티브 개발 환경 구축의 첫 단추를 꿰어볼 시간입니다. 앞서 소개했듯이 kubectl은 쿠버네티스 클러스터와 상호작용하기 위한 핵심 명령줄 도구입니다. 마치 우리가 외국어로 소통하기 위해 번역기를 사용하듯, kubectl은 우리가 내리는 명령을 쿠버네티스가 이해할 수 있는 언어(API 요청)로 변환하고, 클러스터의 응답을 우리에게 다시 전달해주는 중요한 역할을 수행합니다. 따라서 쿠버네티스를 다루기 위해서는 kubectl 설치와 기본적인 설정이 필수적입니다. 지금부터 여러분의 운영체제에 맞춰 kubectl을 설치하고, 사용 편의성을 높이는 설정을 추가하며, 설치가 잘 되었는지 확인하는 과정을 상세히 안내해 드리겠습니다.

4.3.1.1 kubectl 다운로드 및 설치

kubectl을 설치하는 방법은 사용하고 계신 운영체제(macOS, Windows, Linux)에 따라 조금씩 다릅니다. 하지만 걱정하지 마세요. 어떤 환경에서든 어렵지 않게 설치할 수 있도록 쿠버네티스 공식 문서에서 상세한 가이드와 최신 버전을 제공하고 있습니다. 여기서는 각 운영체제별 대표적인 설치 방법을 설명드리겠습니다.

  • macOS: macOS 사용자분들은 Homebrew라는 패키지 관리자를 사용하는 것이 가장 간편합니다. 터미널을 열고 다음 명령어를 입력하면 최신 버전의 kubectl이 설치됩니다.
클립보드에 복사

만약 Homebrew를 사용하지 않거나 특정 버전을 설치하고 싶다면, 쿠버네티스 공식 문서에서 직접 바이너리 파일을 다운로드 받아 /usr/local/bin과 같이 실행 경로(PATH)에 포함된 디렉토리에 위치시키는 방법도 있습니다.

  • Windows: Windows 사용자분들은 Chocolatey나 winget과 같은 패키지 관리자를 사용하거나, 공식 문서에서 제공하는 kubectl.exe 파일을 직접 다운로드 받을 수 있습니다.
    • Chocolatey 사용 시:
클립보드에 복사
    • winget 사용 시 (Windows 10 1709 이상):
클립보드에 복사
    • 직접 다운로드 시: 최신 kubectl.exe 파일을 다운로드 받은 후, 이 파일을 실행 경로(PATH)에 등록된 폴더(예: C:\kubectl)로 옮기고 환경 변수 설정에서 해당 폴더를 PATH에 추가해주어야 합니다. 이렇게 해야 명령 프롬프트나 PowerShell 어디서든 kubectl 명령어를 바로 실행할 수 있습니다. 환경 변수 PATH에 경로를 추가하는 것은, 운영체제가 우리가 입력한 명령어(kubectl)를 어느 폴더에서 찾아 실행해야 할지 알려주는 과정이라고 생각하시면 됩니다.
  • Linux: Linux 배포판 사용자분들은 각 배포판의 패키지 관리자(apt for Debian/Ubuntu, yum/dnf for CentOS/Fedora/RHEL)를 사용하거나, curl 명령어를 통해 직접 바이너리 파일을 다운로드 받을 수 있습니다.
    • Debian/Ubuntu:
클립보드에 복사
    • CentOS/Fedora/RHEL:
클립보드에 복사
    • curl을 이용한 직접 설치:
클립보드에 복사

마지막 명령어는 다운로드 받은 kubectl 파일에 실행 권한을 부여하고, 시스템의 어느 위치에서든 실행될 수 있도록 /usr/local/bin 디렉토리로 옮기는 역할을 합니다.

어떤 방법을 선택하시든, 중요한 것은 여러분의 시스템에서 kubectl 명령어를 인식하고 실행할 수 있도록 올바르게 설치하는 것입니다.

4.3.1.2 자동 완성 설정

kubectl은 매우 다양한 명령어와 옵션, 그리고 리소스 이름을 가지고 있습니다. 이를 매번 정확하게 모두 입력하는 것은 번거롭고 오타를 유발하기 쉽습니다. 다행히 kubectl은 대부분의 셸 환경(Bash, Zsh, PowerShell 등)에서 명령어 자동 완성(autocompletion) 기능을 지원합니다. 이 기능을 설정하면, 명령어의 일부만 입력하고 Tab 키를 눌렀을 때 가능한 명령어, 옵션, 또는 현재 클러스터에 존재하는 리소스(파드, 서비스 등)의 이름까지 자동으로 완성해주거나 목록을 보여줍니다. 이는 오타를 줄여주고 명령어 입력 속도를 비약적으로 향상시켜 개발 생산성을 크게 높여주는, 반드시 설정해야 할 기능입니다.

자동 완성 설정 방법은 사용하시는 셸에 따라 다릅니다.

  • Bash: 다음 명령어를 실행하여 자동 완성 스크립트를 설치하고, 셸 설정 파일(~/.bashrc)에 반영합니다.
    클립보드에 복사
  • Zsh: Zsh 사용자는 보통 Oh My Zsh과 같은 프레임워크를 사용하는데, 플러그인 방식으로 활성화하거나 직접 스크립트를 생성할 수 있습니다.
    클립보드에 복사
  • PowerShell (Windows): PowerShell 프로필 파일에 자동 완성 스크립트 실행 구문을 추가합니다.
    클립보드에 복사

이제 터미널에서 kubectl g를 입력하고 Tab 키를 누르면 get으로 자동 완성되거나, kubectl get pods my-pod-까지 입력하고 Tab 키를 누르면 해당 이름으로 시작하는 파드 이름이 자동으로 완성되는 편리함을 경험하실 수 있습니다. 자동 완성 기능은 kubectl 사용 경험을 극적으로 향상시키므로 꼭 설정하시기를 강력히 권장합니다.

4.3.1.3 버전 확인

kubectl 설치와 자동 완성 설정까지 마쳤다면, 이제 모든 것이 제대로 되었는지 확인할 차례입니다. 터미널에서 다음 명령어를 입력해 보십시오.

클립보드에 복사

이 명령어를 실행하면 kubectl의 버전 정보가 출력됩니다. 만약 쿠버네티스 클러스터에 아직 연결되지 않은 상태라면 클라이언트 버전 정보만 나올 수 있습니다. 이때는 –client 플래그를 사용하여 클라이언트 버전만 명시적으로 확인할 수도 있습니다.

클립보드에 복사

출력 예시:

클립보드에 복사

위 예시에서는 Client Version 정보가 성공적으로 출력되어 kubectl v1.28.3이 잘 설치되었음을 보여줍니다. 하지만 아직 쿠버네티스 클러스터에 연결 설정(kubeconfig 파일)이 되어 있지 않아 서버 버전 정보는 가져오지 못하고 에러 메시지가 함께 출력되었습니다. 이는 정상적인 상황이며, kubectl 자체는 성공적으로 설치되었다는 의미입니다.

만약 나중에 쿠버네티스 클러스터에 연결한 후 kubectl version 명령어를 다시 실행하면, 다음과 같이 클라이언트 버전과 서버(쿠버네티스 API 서버) 버전 정보가 함께 출력됩니다.

클립보드에 복사

여기서 중요한 점은 클라이언트 버전(kubectl)과 서버 버전(쿠버네티스 클러스터) 간의 호환성입니다. 쿠버네티스는 일반적으로 클라이언트와 서버 간에 마이너 버전 차이가 1 이내인 경우를 지원합니다 (예: 클라이언트 1.28 ↔ 서버 1.27, 1.28, 1.29). 버전 차이가 너무 크면 예기치 않은 문제가 발생할 수 있으므로, 사용하는 클러스터 버전에 맞춰 kubectl 버전을 관리하는 것이 좋습니다. 버전 확인은 설치 검증뿐만 아니라, 향후 발생할 수 있는 호환성 문제를 미리 진단하는 데도 중요한 단계입니다.