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