kubectl은 클러스터를 제어하기 위한 k8s 커맨드 라인 도구이다. GUI로도 사용할 수 있지만 다양한 CLI 명령어로 k8s를 제어할 수 있다.
kubectl 제어를 설정하기 위해 먼저 kubectl 클라이언트를 설치한 뒤 kubectl 제어를 설정하는 순서로 진행해본다.
kubectl 클라이언트 설치하기
1. 최신 릴리즈를 다운로드 한다. (Apple Silicon 버전)
터미널을 열어 curl을 이용해 kubectl 바이너리를 설치한다.
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"

2. 바이너리를 검증한다 (선택 사항)
1) 아래 커맨드를 입력해 kubectl 체크섬 파일을 다운로드 한다.
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"
2) kubectl 바이너리를 체크섬 파일을 통해 검증한다.
$ echo "$(cat kubectl.sha256) kubectl" | shasum -a 256 --check
검증에 성공하면 "kubectl: OK" 값이 출력된다. (아래 캡쳐화면 참고)

3. kubectl 바이너리에 실행 권한을 부여하고 위치를 옮긴다.
1) 터미널에 아래 커맨드를 입력해 실행 권한을 준다.
chmod +x ./kubectl
2) kubectl 바이너리를 시스템 PATH의 파일 위치로 옮긴다.
$ sudo mv ./kubectl /usr/local/bin/kubectl
$ sudo chown root: /usr/local/bin/kubectl

4. 설치한 버전을 확인한다.
아래 커맨드를 입력해 최신 버전으로 설치가 완료되었는지 확인한다.
$ kubectl version --client

kubectl 제어 설정하기
위에서 kubectl 클라이언트 설치가 완료되었으면, 이번 단계에서는 클러스터에 대한 kubectl 제어 설정을 진행한다.
- kubeconfig 설정하기
클러스터 접근 설정을 위해 kubeconfig 파일을 다운로드 한 후, 환경 변수를 설정한다.
1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동하기

2. kubeconfig 파일 다운로드
Cluster 메뉴에서 클러스터 목록 중 kubectl 제어를 설정할 클러스터 줄에 "kubectl" 버튼을 클릭한 뒤,
"kubeconfig 파일 다운로드" 를 한다.


3. kubeconfig 환경변수 설정하기
다운받은 .yaml 확장자 파일을 적절한 위치로 옮겨준 뒤, 아래 커맨드를 입력해 환경 변수를 설정하고 적용한다.
$ export KUBE_CONFIG="{DownloadPath}/{kubeconfigFile}"
$ source ~/.zshrc
- 클라우드 인증 클라이언트 설정하기
1. 카카오 클라우드 인증 클라이언트 다운로드
카카오 클라우드 인증 클라이언트 다운로드 주소에 접속해 Mac ARM_64 64Bit 버전의 "kic-iam-auth" 파일을 다운로드 받는다.
(맥북 M1 실리콘칩 기준)
2. 다운받은 클라이언트를 실행하기 위한 환경 변수 설정하기
아래 커맨드를 입력해 다운받은 파일에 실행 권한을 준다.
$ chmod +x kic-iam-auth
3. PATH에 환경변수 등록하기
아래 커맨드를 입력해 kic-iam-auth 파일을 환경변수로 등록한다.
$ export PATH="{DownloadPath}/kic-iam-auth:$PATH"
$ source ~/.zshrc
혹은, 기존 PATH에 존재하는 디렉터리 파일을 복사해 설정할 수도 있다.
$ cp {DownloadPath}/kic-iam-auth /usr/local/bin
- 액세스 키 생성하기
1. 카카오클라우드 콘솔 우측 상단 프로필 > 액세스 키 클릭

2. 액세스 키 생성하기
아래 생성 폼을 입력하면, ID/PW가 발급된다.

- 사용자 인증 설정하기
앞서 다운받은 kubeconfig-{cluster이름}.yaml 파일을 열어 users > user > exec > env 부분을 확인한다.

그리고 env: null 부분을 아래 내용(환경 변수 설정하는 내용)으로 수정한다.
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: "{해당 클러스터의 리전 입력}"
아래 표는 위에서 env 부분에 입력한 환경 변수 목록이다.
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 |
kubectl 동작 확인하기
마지막으로 kubectl 명령어를 터미널에 입력해 정상적으로 동작하는지 확인하는 단계이다.
$ kubectl --kubeconfig=$KUBE_CONFIG get nodes
위의 명령어를 입력했더니, 아래 사진과 같이 "kic-iam-auth not found" 에러가 발생했다. 이부분에 대한 환경변수 설정이 잘 되지 않은 것 같다.

kic-iam-auth 파일을 직접 /usr/local/bin 위치로 복사해준 뒤($ sudo cp kic-iam-auth /usr/local/bin) 다시 실행하니 정상 동작했다.

끝!
'Study > Server' 카테고리의 다른 글
MySQL 워크밴치 연결시 Public Key Retrieval is not allowed 에러 해결하기 (0) | 2024.09.25 |
---|---|
[Kubernetes] 도커 데스크톱에서 쿠버네티스 사용하기 (Mac OS) (0) | 2024.09.23 |
[NginX] Mac 로컬에 설치하기 (0) | 2024.08.27 |
[Jenkins] (3) 빌드 후 애플리케이션 자동 실행 설정 시도하기 (권장❌) (0) | 2024.08.27 |
[Jenkins] 비밀번호 잊어버렸을 때 변경하기 (0) | 2024.08.26 |