Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

siklog

[NCP/Containers] NKS 생성 및 접근 방법 본문

클라우드/NCP

[NCP/Containers] NKS 생성 및 접근 방법

ms 2022. 5. 17. 23:55

NCP에서 제공하는 Kubernetes Service인 NKS 가이드에는 생략된 설명 부분이 있어 본포스팅에서는 생성부터 접근 방법까지 간략하게 순서대로 작성해보려고 한다.

 

0. 사전준비

 

  • NKS는 현재 VPC 환경에서만 제공되고 있고 따라서, 먼저 VPC 및 Subnet 을 생성해야 한다.
  • Kubectl은 클러스터를 제어하는 데 사용되는 CLI로, 운영 체제에 알맞은 방법으로 Kubectl을 설치하면 된다.

* VPC 및 Subnet 생성과 Kubectl 설치 방법에 대해서는 생략.

 

1. 클러스터 생성

 

앞서 만들어 놓은 VPC 와 Subnet을 선택하여 클러스터를 생성해 주면 된다.

* 노드풀은 생성 이후에도 추가가 가능하나, 노드 수는 클러스터 생성 시 선택하는 최대 노드 수 이상으로 생성은 불가능 하므로 클러스터 생성 단계에서 잘 고려하여 생성해야 한다.

 

 

 

2. IAM 인증

 

클러스터에 접속하기 위해서 IAM 인증을 받아야 하며, kubectl 명령을 사용하려면 ncp-iam-authenticator를 설치하고 이를 인증에 사용하도록 kubectl 설정 파일을 수정해야 한다.

여기서는 linux에 설치하였고 각 운영체제에 맞게 설치하면 된다.

 

linux에서의 설치 예)

- ncp-iam-authenticator 바이너리를 다운
curl -o ncp-iam-authenticator https://kr.object.ncloudstorage.com/nks-download/ncp-iam-authenticator/v1.0.5/linux/amd64/ncp-iam-authenticator

- ncp-iam-authenticator 바이너리 파일의 SHA-256 합계를 확인 (선택)
openssl sha1 -sha256 ncp-iam-authenticator

- SHA-256 SUM을 다운 (선택)
curl -o ncp-iam-authenticator https://kr.object.ncloudstorage.com/nks-download/ncp-iam-authenticator/v1.0.5/linux/amd64/ncp-iam-authenticator

- 바이너리에 실행 권한을 추가
chmod +x ./ncp-iam-authenticator

- $HOME/bin/ncp-iam-authenticator를 생성하고 $PATH에 추가
mkdir -p $HOME/bin && cp ./ncp-iam-authenticator $HOME/bin/ncp-iam-authenticator && export PATH=$PATH:$HOME/bin

- Shell Profile에 PATH를 추가
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile

 

 

3. kubeconfig 생성

 

kubeconfig를 생성하기 위해서는 ncp-iam-authenticator create-kubeconfig 명령을 사용해야 한다.

때문에 ncp-iam-authenticator를 사용하기 위해서 먼저 API 인증키값을 설정해야 하는데, OS 환경변수나 configure파일에 API 키를 설정해 주면 사용할 수 있다. (둘중 하나만 하면 됨.)

* API 인증키는 [마이 페이지]>[계정 관리]>[인증키 관리] 에서 확인할 수 있다.

 

- OS 환경변수 설정
# export NCLOUD_ACCESS_KEY=Access Key ID
# export NCLOUD_SECRET_KEY=Secret Key
# export NCLOUD_API_GW=https://ncloud.apigw.ntruss.com

or

- 사용자 환경 홈 디렉터리의 .ncloud 폴더에 configure 파일
# vi ~/.ncloud/configure

[DEFAULT]
ncloud_access_key_id = Access Key ID
ncloud_secret_access_key = Secret Key
ncloud_api_url = https://ncloud.apigw.ntruss.com

[project]
ncloud_access_key_id = Access Key ID
ncloud_secret_access_key = Secret Key
ncloud_api_url = https://ncloud.apigw.ntruss.com

# ncp-iam-authenticator create-kubeconfig --region <region-code> --clusterUuid <cluster-uuid> --output kubeconfig.yaml

 

 

4. 확인

 

kubeconfig가 생성 되었으면 아래 명령어로 확인해 볼 수 있다.

# kubectl get namespaces --kubeconfig kubeconfig.yaml

 

* 만약 $KUBE_CONFIG 형태로 사용하려면 IAM 으로 생성한 kubeconfig 파일을 변수로 등록을 해주면 된다.

# export KUBE_CONFIG="[kubeconfig 파일 경로]"

 

 

5. Kubernetes 대시보드 설치

 

Kubernetes 대시보드는 CLI 대신 GUI를 통해 클러스터를 제어하는 기능으로, 브라우저를 통해 접근할 수도 있다.

 

- Kubernetes 대시보드에 필요한 리소스들을 생성
# kubectl --kubeconfig $KUBE_CONFIG apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml

- 대시보드 접속에 필요한 관리자용 토큰을 생성
# cat <<EOF | kubectl --kubeconfig $KUBE_CONFIG apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
EOF

- 프록시 구동 및 접속
# kubectl --kubeconfig $KUBE_CONFIG proxy
이후 브라우저에 아래 주소로 접속
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

 

Comments