siklog
[NCP/Containers] NKS 생성 및 접근 방법 본문
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
'클라우드 > NCP' 카테고리의 다른 글
[NCP/Security] ACG, NACL 설정 간 유의할 사항 (0) | 2022.08.16 |
---|---|
[Server/FTP] FTP Active, PassiveMode 차이점 (0) | 2022.06.19 |
[NCP/Security] NCP CDN Security Token 발급 및 사용 방법 (0) | 2022.05.09 |
[NCP/Certificate Manager] 외부 SSL 인증서 등록 방법(feat. Let's Encrypt) (0) | 2022.04.24 |
[NCP/Network] NCP Classic Load Balancer 에서 SSL Offloading 구성 (0) | 2022.04.09 |