kubectl 제어 설정
kubectl은 클러스터를 제어하기 위한 Kubernetes 커맨드 라인 도구입니다. kubectl 제어를 설정하기 위해 먼저 kubectl 클라이언트 설치한 후, kubectl 제어를 설정합니다. kubectl 제어를 설정하 는 방법은 다음과 같습니다.
Step 1. kubectl 클라이언트 설치
kubectl 제어 설정을 위해 kubectl 클라이언트를 설치합니다. kubectl 클라이언트 설치에 대한 자세한 설명은 Kubernetes 공식 문서를 참고하시기 바랍니다.
사용자의 OS 환경에 따른 설치 방법과 Kubectl 버전을 확인한 후 설치를 진행하시기 바랍니다.
Step 2. kubectl 제어 설정
kubectl 클라이언트를 설치한 후, 클러스터에 대한 kubectl 제어 설정을 진행합니다.
kubeconfig 설정
kubectl 제어 설정 시 먼저 클러스터 접근 설정을 위한 kubeconfig 파일을 다운로드한 후, 환경 변수를 설정합니다.
-
카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.
-
클러스터 메뉴에서 kubectl 제어를 설정할 클러스터를 클릭합니다.
- kubectl 제어를 설정할 클러스터의 [kubeconfig 파일] 버튼을 클릭합니다.
-
kubectl 제어 설정 팝업창에서 [kubeconfig 파일 다운로드] 버튼을 클릭합니다.
kubeconfig-{clusterName}
형식의 파일명으로 클러스터 접근 정보가 담긴 kubeconfig 파일을 다운로드합니다.
-
kubeconfig 파일 선언을 편리하게 하기 위해 kubeconfig 환경변수를 설정합니다.
- Mac/Linux
- Windows(Command Prompt)
Mac의 터미널에서 다음 예시를 참고해 KUBE_CONFIG 환경변수를 설정합니다.
KUBE_CONFIG 환경변수 설정export KUBE_CONFIG="{DownloadPath}/{kubeconfigFile}"
파라미터 유형 필수 여부 설명 DownloadPath String 필수 kubeconfig 파일이 위치한 경로 입력 kubeconfigFile String 필수 kubeconfig 파일명.확장자 입력
- 예시: kubeconfig-cluster.yamlWindows의 터미널에서 다음 예시를 참고하여 OS 환경변수를 설정합니다.
OS 환경변수 설정set KUBE_CONFIG={DownloadPath}\{kubeconfigFile}
파라미터 유형 필수 여부 설명 DownloadPath String 필수 kubeconfig 파일이 위치한 경로 입력 kubeconfigFile String 필수 kubeconfig 파일명.확장자 입력
- 예시: kubeconfig-cluster.yaml
카카오클라우드 인증 클라이언트 설정
카카오 클라우드 인증 클라이언트 다운로드 및 환경 변수 설정을 진행합니다.
카카오클라우드 인증 클라이언트 다운로드 후 OS 별로 다운로드 애플리케이션 열기 허용 설정이 필요할 수 있습니다. Windows의 경우 Windows Defender 등의 백신 프로그램에 감지되어 실행되지 않거나 자동 삭제될 수 있습니다. 그런 경우에는 백신 프로그램에 화이트 리스트 등록이 필요합니다.
-
사용자 인증을 위해 카카오클라우드 인증 클라이언트를 다운로드합니다.
파일 버전 다운로드 링크 Linux x86_64 64Bit 0.1.2 다운로드 Linux ARM_64 64Bit 0.1.2 다운로드 Linux i386 32Bit 0.1.2 다운로드 Windows x86_64 64Bit 0.1.2 다운로드 Windows i386 32Bit 0.1.2 다운로드 Mac x86_64 64Bit 0.1.2 다운로드 Mac ARM_64 64Bit 0.1.2 다운로드 -
다운로드받은 파일명을 kic-iam-auth으로 수정합니다.
kic-iam-auth
-
다운로드 후 카카오클라우드 인증 클라이언트를 실행하기 위한 환경변수 설정을 진행합니다.
- Mac/Linux 카카오클라우드 인증 클라이언트 설정
- Windows(Command Prompt)
a. 카카오클라우드 인증 클라이언트 실행 권한을 부여합니다.
Mac/Linux 파일 실행 권한 부여cd {DownloadPath}
chmod +x kic-iam-auth파라미터 유형 필수 여부 설명 DownloadPath String 필수 카카오클라우드 인증 클라이언트가 위치한 디렉터리 경로 입력 b. PATH에 환경변수 등록을 진행합니다.
Mac/Linux PATH 환경변수 등록export PATH="{DownloadPath}:$PATH"
또는 기존 PATH에 존재하는 디렉터리에 파일을 복사하여 설정할 수도 있습니다. 다음은 PATH에 존재하는 디렉터리에 파일 복사 예시입니다.
파일 복사 예시cp {DownloadPath}/kic-iam-auth /usr/local/bin
파라미터 유형 필수 여부 설명 DownloadPath String 필수 카카오클라우드 인증 클라이언트가 위치한 디렉터리 경로 입력 Windows의 커맨드 창에서 PATH에 환경변수 등록을 진행합니다.
Windows PATH 환경변수 등록set path=%PATH%;{DownloadPath}
파라미터 유형 필수 여부 설명 DownloadPath String 필수 파일이 위치한 경로 입력
액세스 키 생성
사용자 인증 정보를 이용하기 위해 액세스 키를 생성합니다. 액세스 키 생성 시, 프로젝트 지정에 제어할 클러스터가 속한 프로젝트를 지정해야 합니다. 액세스 키 생성 방법에 대한 자세한 설명은 액세스 키 발급을 참고하시기 바랍니다.
이미 사용하고 있는 액세스 키가 있다면 본 단계는 생략한 후, 다음 단계를 진행하시기 바랍니다.
사용자 인증 설정
액세스 키의 정보를 활용하여 사용자 인증 설정을 진행합니다.
현재 환경 변수는 기본값을 그대로 사용하며, OS_APPLICATION_CREDENTIAL_ID, OS_APPLICATION_CREDENTIAL_SECRET는 발급한 액세스 키의 정보를 사용합니다.
-
액세스 키의 사용자 인증 설정을 위해, 이전 단계에서 다운로드한 kubeconfig 파일에 하단의 표를 참고하여 사용자 인증 환경 변수를 입력합니다.
사용자 인증 OS 환경 변수
환경 변수 설명 비고 OS_AUTH_URL 사용자 인증을 위한 서버 URL https://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 -
이전 단계에서 다운로드한 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 --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