본문으로 건너뛰기

kubectl 제어 설정

kubectl은 클러스터를 제어하기 위한 Kubernetes 커맨드 라인 도구입니다. kubectl 제어를 설정하기 위해 먼저 kubectl 클라이언트 설치한 후, kubectl 제어를 설정합니다. kubectl 제어를 설정하는 방법은 다음과 같습니다.

Step 1. kubectl 클라이언트 설치

kubectl 제어 설정을 위해 kubectl 클라이언트를 설치합니다. kubectl 클라이언트 설치에 대한 자세한 설명은 Kubernetes 공식 문서를 참고하시기 바랍니다.

안내

사용자의 OS 환경에 따른 설치 방법과 Kubectl 버전을 확인한 후 설치를 진행하시기 바랍니다.

Step 2. kubectl 제어 설정

kubectl 클라이언트를 설치한 후, 클러스터에 대한 kubectl 제어 설정을 진행합니다.

kubeconfig 설정

kubectl 제어 설정 시 먼저 클러스터 접근 설정을 위한 kubeconfig 파일을 다운로드한 후, 환경 변수를 설정합니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. Cluster 메뉴에서 kubectl 제어를 설정할 클러스터의 [kubectl] 버튼을 클릭합니다.

    • kubectl 제어를 설정할 클러스터의 상세 페이지에서 [kubectl] 버튼을 클릭합니다.

    이미지

  3. kubectl 제어 설정 팝업창에서 [kubeconfig 파일 다운로드] 버튼을 클릭합니다.

    • kubeconfig-{clusterName} 형식의 파일명으로 클러스터 접근 정보가 담긴 kubeconfig 파일을 다운로드합니다.
  4. kubeconfig 파일 선언을 편리하게 하기 위해 kubeconfig 환경변수를 설정합니다.

    Mac의 터미널에서 다음 예시를 참고해 KUBE_CONFIG 환경변수를 설정합니다.

    KUBE_CONFIG 환경변수 설정
    export KUBE_CONFIG="{DownloadPath}/{kubeconfigFile}"
    파라미터유형필수 여부설명
    DownloadPathString필수  kubeconfig 파일이 위치한 경로 입력
    kubeconfigFileString필수  kubeconfig 파일명.확장자 입력
    - 예시: kubeconfig-cluster.yaml

카카오클라우드 인증 클라이언트 설정

카카오클라우드 인증 클라이언트 다운로드 및 환경 변수 설정을 진행합니다.

안내

카카오클라우드 인증 클라이언트 다운로드 후 OS 별로 다운로드 애플리케이션 열기 허용 설정이 필요할 수 있습니다. Windows의 경우 Windows Defender 등의 백신 프로그램에 감지되어 실행되지 않거나 자동 삭제될 수 있습니다. 그런 경우에는 백신 프로그램에 화이트 리스트 등록이 필요합니다.

  1. 사용자 인증을 위해 카카오클라우드 인증 클라이언트를 다운로드합니다.

    파일버전다운로드 링크
    Linux x86_64 64Bit0.1.2다운로드
    Linux ARM_64 64Bit0.1.2다운로드
    Linux i386 32Bit0.1.2다운로드
    Windows x86_64 64Bit0.1.2다운로드
    Windows i386 32Bit0.1.2다운로드
    Mac x86_64 64Bit0.1.2다운로드
    Mac ARM_64 64Bit0.1.2다운로드
  2. 다운로드받은 파일명을 kic-iam-auth으로 수정합니다.

    kic-iam-auth
  3. 다운로드 후 카카오클라우드 인증 클라이언트를 실행하기 위한 환경변수 설정을 진행합니다.

    a. 카카오클라우드 인증 클라이언트 실행 권한을 부여합니다.

    Mac/Linux 파일 실행 권한 부여
    cd {DownloadPath}
    chmod +x kic-iam-auth
    파라미터유형필수 여부설명
    DownloadPathString필수  카카오클라우드 인증 클라이언트가 위치한 디렉터리 경로 입력

    b. PATH에 환경변수 등록을 진행합니다.

    Mac/Linux PATH 환경변수 등록
    export PATH="{DownloadPath}:$PATH"

    또는 기존 PATH에 존재하는 디렉터리에 파일을 복사하여 설정할 수도 있습니다. 다음은 PATH에 존재하는 디렉터리에 파일 복사 예시입니다.

    파일 복사 예시
    cp {DownloadPath}/kic-iam-auth /usr/local/bin
    파라미터유형필수 여부설명
    DownloadPathString필수  카카오클라우드 인증 클라이언트가 위치한 디렉터리 경로 입력

액세스 키 생성

사용자 인증 정보를 이용하기 위해 액세스 키를 생성합니다. 액세스 키 생성 시, 프로젝트 지정에 제어할 클러스터가 속한 프로젝트를 지정해야 합니다. 액세스 키 생성 방법에 대한 자세한 설명은 액세스 키 발급을 참고하시기 바랍니다.

안내

이미 사용하고 있는 액세스 키가 있다면 본 단계는 생략한 후, 다음 단계를 진행하시기 바랍니다.

사용자 인증 설정

액세스 키의 정보를 활용하여 사용자 인증 설정을 진행합니다.

안내

현재 환경 변수는 기본값을 그대로 사용하며, OS_APPLICATION_CREDENTIAL_ID, OS_APPLICATION_CREDENTIAL_SECRET는 발급한 액세스 키의 정보를 사용합니다.

  1. 액세스 키의 사용자 인증 설정을 위해, 이전 단계에서 다운로드한 kubeconfig 파일에 하단의 표를 참고하여 사용자 인증 환경 변수를 입력합니다.

    사용자 인증 OS 환경 변수
    환경 변수설명비고
    OS_AUTH_URL사용자 인증을 위한 서버 URLhttps://iam.kakaocloud.com/identity/v3
    OS_AUTH_TYPE사용자 인증 타입v3applicationcredential
    OS_APPLICATION_CREDENTIAL_ID액세스 키 ID사용자가 발급한 액세스 키 ID
    OS_APPLICATION_CREDENTIAL_SECRET사용자 API 보안 액세스 키사용자가 발급한 API 보안 액세스 키
    OS_REGION_NAME제어하고자 하는 클러스터가 존재하는 리전kr-central-1 또는 kr-central-2
  2. 이전 단계에서 다운로드한 kubeconfig 파일의 users > user > exec > env에 사용자 인증 환경 변수를 입력합니다.

    사용자 인증 환경 변수 입력 예시
    users:
    - name: {클러스터 이름}-admin
    user:
    exec:
    apiVersion: client.authentication.k8s.io/v1beta1
    args: null
    command: kic-iam-auth
    env:
    - name: "OS_AUTH_URL"
    value: "https://iam.kakaocloud.com/identity/v3"
    - name: "OS_AUTH_TYPE"
    value: "v3applicationcredential"
    - name: "OS_APPLICATION_CREDENTIAL_ID"
    value: "{액세스 키 ID 입력}"
    - name: "OS_APPLICATION_CREDENTIAL_SECRET"
    value: "{사용자 API 보안 액세스 키 입력}"
    - name: "OS_REGION_NAME"
    value: "{해당 클러스터의 리전 입력}"

Step 3. kubectl 동작 확인

kubectl 제어 설정이 끝난 후, kubectl 명령어를 터미널에 입력하여 kubectl 명령이 정상적으로 동작하는지 확인합니다.

  • Windows의 경우 $KUBE_CONFIG 대신 %KUBE_CONFIG%를 사용합니다.
안내
  • 예시 명령어는 클러스터의 노드를 조회하는 명령어로, Kubernetes 공식 문서에서 더 많은 명령어를 확인할 수 있습니다.
  • Kubernetes 공식 문서에서 kubeconfig 파일을 활용한 다중 클러스터 접근 구성 방법을 확인할 수 있습니다.
kubectl 동작 확인 명령어
kubectl --kubeconfig=$KUBE_CONFIG get nodes
실행 결과
NAME           STATUS   ROLES    AGE     VERSION
{node-name} Ready <none> 2d2h v1.18.17
{node-name} Ready <none> 2d2h v1.18.17