CKA 학습을 준비하며, 네이버클라우드의 Kubernetes Service 를 이용하여 실습을 진행하기 위해 환경을 구성하였습니다.
이하 포스팅할 구성 방법들은 사용 가이드를 참고하여 진행하였습니다.
https://guide.ncloud-docs.com/docs/k8s-k8sstart
Kubernetes Service 시작
guide.ncloud-docs.com
Kubernetes Service 시작 파트부터 따라가며 진행합니다.
Cluster 생성 및 구성하기
Console > Services > Containers > Kubernetes Service > [생성하기] 로 접속하여 클러스터 생성.
필자는 제공하는 최신 버전을, 테스트를 쉽게 하기 위해 Public 네트워크로 생성하였습니다. (일반적으로 실 서비스에서는 보안상 Private 선택)
* 참고사항 - LB Private 서브넷 관련
- LB 서브넷은 Private 만 지원합니다. 여기서 Private 만 지원하는 이유는 내부 네트워크 간 통신은 Public 일 필요가 없기 때문입니다.
- Public의 경우, 노드 pool에 공인IP 할당을 별도로 진행해주어야 합니다.
- 네트워크 타입을 Private 으로 설정하였는데 외부 통신이 필요할 경우, NAT Gateway 서비스를 이용하면 외부 통신이 가능합니다.
- Private LB 앞단에 별도로 Public LB를 생성하여 연동하면 외부에 통신 가능합니다.
다음으로 노드 풀을 생성합니다.
다른 부분은 물리적인 부분이기에 이해에 어려운 점이 없었으나, Kubernetes label / Taint 에 대해서는 아래와 같이 간단히 정리하였습니다.
Kubernetes Label : 객체를 구분하기 위해 임의로 원하는 값을 지정, 해당 값으로 노드 예약을 관리할 수 있음
https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/labels/
레이블과 셀렉터
레이블 은 파드와 같은 오브젝트에 첨부된 키와 값의 쌍이다. 레이블은 오브젝트의 특성을 식별하는 데 사용되어 사용자에게 중요하지만, 코어 시스템에 직접적인 의미는 없다. 레이블로 오브
kubernetes.io
Taint : 노드가 특정 값을 가진 파드를 스케줄에서 제외할 수 있도록 해주는 데이터, 부적절한 노드에 스케줄 되지 않도록 관리한다.
https://kubernetes.io/ko/docs/concepts/scheduling-eviction/taint-and-toleration/
테인트(Taints)와 톨러레이션(Tolerations)
노드 어피니티는 노드 셋을 (기본 설정 또는 어려운 요구 사항으로) 끌어들이는 파드의 속성이다. 테인트 는 그 반대로, 노드가 파드 셋을 제외시킬 수 있다. 톨러레이션 은 파드에 적용된다. 톨
kubernetes.io
Label / Taint 에 대해서는 추후 별도 포스팅으로 따로 자세히 다루겠습니다.
이후 과정은 Server 생성과 동일하게 로그인 키를 설정하고 생성을 완료합니다.
Kubectl 및 ncp-iam-authenticator 설치
클러스터를 생성하였다면 클러스터를 조정할 CLI인 kubectl 을 설치하여 구성합니다.
필자는 macOS 를 사용하고 있기 때문에, 맥 기준으로 포스팅합니다.
https://kubernetes.io/ko/docs/tasks/tools/install-kubectl-macos/
macOS에 kubectl 설치 및 설정
시작하기 전에 클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 한다. 예를 들어, v1.27 클라이언트는 v1.26, v1.27, v1.28의 컨트롤 플레인과 연동될 수 있다. 호환되는 최신 버전
kubernetes.io
별도 포스팅이 필요하지 않을 정도로 공식 라이브러리에 자세히 설명되어 있고 간단하기 때문에 설치 과정은 생략합니다. (Homebrew 이용하여 설치하였음)
다음은 ncp-iam-authenticator 를 설치하여 NKS(Ncloud Kubernetes Service) 에 인증하여 접속 환경을 구성합니다.
https://guide.ncloud-docs.com/docs/k8s-iam-auth-ncp-iam-authenticator
ncp-iam-authenticator 설치
guide.ncloud-docs.com
간단하게 Homebrew 로 설치 가능합니다.
위와같이 설치 진행합니다.
다음은 API 인증키 값을 환경변수에 설정합니다.
$ export NCLOUD_ACCESS_KEY=ACCESSKEYIDACCESSKEY
$ export NCLOUD_SECRET_KEY=SECRETACCESSKEYSECRETACCESSKEYSECRETACCE
$ export NCLOUD_API_GW=https://ncloud.apigw.ntruss.com
위와같이 설정하는데, ACCESS KEY와 SECRET KEY는 포털에서 확인 가능합니다.
포털 > 마이페이지 > 계정 관리 > 인증키 관리 > API 인증키 관리 페이지에서 확인 가능합니다.
위 키를 참고하여 환경변수에 설정합니다.
다음은, kubeconfig.yaml 파일을 생성합니다.
https://guide.ncloud-docs.com/docs/k8s-iam-auth-kubeconfig
IAM 인증 kubeconfig 생성/업데이트
guide.ncloud-docs.com
위 사용 가이드의 "ncp-iam-authenticator create-kubeconfig 명령" 사용 부분을 참고합니다.
ncp-iam-authenticator create-kubeconfig --region <region-code> --clusterUuid <cluster-uuid> --output kubeconfig.yaml
위 명령어를 사용하는데, region-code는 한국 리전이니 "KR", cluster-uuid는 콘솔의 클러스터에서 확인 가능합니다.
위 스크린샷의 빨간 네모 박스 부분이 uuid 입니다.
성공적으로 kubeconfig 파일이 생성되었습니다.
이제 kubectl 명령어를 활용할 수 있습니다.
'IT > NAVER Cloud Platform' 카테고리의 다른 글
[CLOVA Studio - 2] 스킬 트레이너 활용하기 (0) | 2024.04.14 |
---|---|
[CLOVA Studio - 1] Prompt Programming (0) | 2024.03.23 |
[NAVER Cloud Platform] VOD Station 서비스 맛보기 (0) | 2023.03.07 |
CDN / GRM 정리 및 간단 실습 (0) | 2022.08.06 |
[NAVER Cloud] CDN+를 사용하여 웹 서버 배포하기 (0) | 2022.07.28 |