- 인쇄
- PDF
클러스터 접속 및 관리
- 인쇄
- PDF
클러스터 생성을 완료하면 Ncloud Kubernetes Service 대시보드에서 클러스터 목록을 확인할 수 있으며, 클러스터에 접속할 수 있습니다. 클러스터 목록에서 클러스터의 상세 정보 확인, 파일 재설정, 클러스터 삭제 등 개별 클러스터와 관련된 작업을 수행할 수 있습니다.
네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Container > Ncloud Kubernetes Service 메뉴를 차례대로 클릭하면 생성된 클러스터의 목록이 표시됩니다.
클러스터에 접속하려면 SSL VPN이 연결된 클라이언트 환경이어야 합니다. SSL VPN에 접속하려면 SSL VPN 접속 방법을 참고해 주십시오.
클러스터 접속
생성된 클러스터에 kubectl 명령어를 사용하여 접속할 수 있습니다.
kubectl 명령어를 사용하여 클러스터에 접속하는 방법은 다음과 같습니다.
네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Container > Ncloud Kubernetes Service 메뉴를 차례대로 클릭해 주십시오.
클러스터 목록에서 접속할 클러스터의 행을 클릭한 인증 방식에 따라 설정파일을 구성해 주십시오.
- Admin 인증 : [다운로드] 버튼을 클릭하여 클러스터의 설정 파일을 다운로드해 주십시오.
- IAM 인증 : [IAM인증 가이드] 버튼을 클릭하여 ncp-iam-authenticator 설치 후 kubeconfig 파일을 생성해 주십시오.
참고Admin 인증은 2022년 2월 13일 이전에 생성된 클러스터만 지원됩니다.
아래 예시와 같이
kubectl
명령어에--kubeconfig
옵션을 사용하여 다운로드한 설정 파일의 경로를 지정한 후 실행해 주십시오.$ kubectl --kubeconfig "설정파일" get nodes
참고$HOME/.kube/config
경로에 설정 파일을 직접 추가하는 방법도 있습니다.아래 코드를 참조하여 사용 중인 운영 체제에 알맞은 방법으로 환경변수를 설정해 주십시오.
- Mac 또는 Linux 운영 체제에서
$KUBE_CONFIG
환경변수 설정
$ export KUBE_CONFIG="${HOME}/Downloads/kubeconfig-1865.yaml" $ echo $KUBE_CONFIG /Users/user/Downloads/kubeconfig-1865.yaml $ kubectl --kubeconfig $KUBE_CONFIG get nodes
- Windows Powershell에서
$KUBE_CONFIG
환경변수 설정
> $KUBE_CONFIG=$HOME+"\Downloads\kubeconfig-1865.yaml" > $KUBE_CONFIG C:\Users\NAVER\Downloads\kubeconfig-1865.yaml > kubectl --kubeconfig $KUBE_CONFIG get nodes
- Windows 명령 프롬프트에서
$KUBE_CONFIG
환경변수 설정
> SET KUBE_CONFIG=%USERPROFILE%\Downloads\kubeconfig-1865.yaml > kubectl --kubeconfig %KUBE_CONFIG% get nodes
- Mac 또는 Linux 운영 체제에서
정상적으로 설정된 경우 아래 예시와 같이 결과가 표시됩니다.
NAME STATUS ROLES AGE
nks-pool-0000-w-001 Ready node 5h22m
nks-pool-0000-w-002 Ready node 5h22m
nks-pool-0000-w-003 Ready node 5h22m
클러스터 상세 정보 보기
클러스터 목록에서 개별 클러스터 행을 클릭하면 상세 정보를 확인할 수 있습니다.
- [가이드 보기] 버튼을 클릭해 클러스터에 접속하는 방법에 대한 가이드를 확인할 수 있습니다. 해당 가이드에서 설명하는 내용은 클러스터 접속에서 더 자세히 확인할 수 있습니다.
- Audit Log 오른쪽에 있는 [수정] 버튼을 클릭하여 활성화 여부를 변경할 수 있습니다.
Audit Log를 활성화하면 Cloud Log Analytics에서 로그를 수집할 수 있습니다. 단, 활성화하려면 먼저 Cloud Log Analytics 서비스를 신청해야 합니다(CLA 사용 가이드 참조).
kubeconfig 파일 재설정
kubeconfig 설정 파일을 재설정할 수 있습니다. 재설정 기능을 사용할 경우 기존 파일은 더 이상 사용할 수 없으며, 재설정을 통해 만들어진 새 설정 파일을 다운로드해서 사용해야 합니다.
kubeconfig 설정 파일을 재설정하는 방법은 다음과 같습니다.
- 클러스터 목록에서 개별 클러스터 행을 클릭해 주십시오.
- 클러스터 상세 정보 탭에서 [재설정] 버튼을 클릭해 주십시오.
- 인증 파일을 재설정할 클러스터의 이름을 입력한 후 [재설정] 버튼을 클릭해 주십시오.
Admin 인증을 지원하는 클러스터에서만 kubeconfig 파일을 재설정할 수 있습니다.
클러스터 삭제
클러스터를 삭제하는 방법은 다음과 같습니다.
- 클러스터 목록에서 삭제하려는 클러스터의 행을 클릭해 주십시오.
- 클러스터 목록 왼쪽 위에 있는 [삭제] 버튼을 클릭해 주십시오.
- 확인 팝업창에 해당 클러스터의 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.
클러스터 Autoscaler 사용
클러스터 Autoscaler를 사용하면 클러스터를 자동으로 확장하거나 축소할 수 있습니다. Autoscaler는 사용자가 요청한 Pod의 자원량에 비해 현재 클러스터의 자원이 부족한 경우 자동으로 노드를 증가시키며, 일정 시간 동안 특정 노드의 사용률이 낮게 유지되는 경우 노드 개수를 감소시킵니다.
클러스터 Autoscaler를 사용하는 방법은 다음과 같습니다.
- 클러스터 목록에서 개별 클러스터 행을 클릭해 주십시오.
- 클래스터 상세 정보 탭에 표시되는 노드풀 목록에서 Autoscaler를 적용할 노드풀의 이름을 클릭해 주십시오.
- [수정] 버튼을 클릭해 주십시오.
- 설정 팝업창에서 [설정] 버튼을 클릭한 후 최소 노드 수, 최대 노드 수를 지정해 주십시오.
- [수정] 버튼을 클릭해 주십시오.
Autoscaler 사용 시에는 아래의 사항을 고려하십시오.
- Autoscaler 기능을 시작 또는 정지하는 데는 약 1분에서 5분 가량 소요됩니다.
- Autoscaler 사용 중에는 수동으로 노드 개수를 변경할 수 없으므로, 노드 개수를 수동으로 변경하려면 해당 기능을 미설정으로 변경해야 합니다.
- Autoscaler는 클러스터 내에서 해당 기능을 설정한 노드풀에만 적용됩니다.
- 아래와 같은 상황에서는 노드 사용률이 낮아도 노드 개수가 감소되지 않습니다.
- Controller (예: Deployment, StatefulSet 등)에 의해 제어되지 않는 경우
- Local Storage가 설정되어 있는 경우
- 다른 노드로 Pod가 이동할 수 없는 경우
- 어노테이션
"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
가 설정되어 있는 경우
Autoscaler의 특성에 관한 보다 자세한 내용은 Autoscaler FAQ를 참조하십시오.
Autoscaler 정상 동작 확인
Autoscaler가 정상적으로 동작하는지 확인하려면 아래 명령어를 실행해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG get cm cluster-autoscaler-status -o yaml -n kube-system
정상적으로 동작할 때의 결과 예시는 아래와 같습니다.
$ kubectl --kubeconfig $KUBE_CONFIG get cm cluster-autoscaler-status -o yaml -n kube-system
apiVersion: v1
data:
status: |+
Cluster-autoscaler status at 2019-09-03 08:59:53.84165088 +0000 UTC:
Cluster-wide:
Health: Healthy (ready=1 unready=0 notStarted=0 longNotStarted=0 registered=1 longUnregistered=0)
LastProbeTime: 2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
ScaleUp: NoActivity (ready=1 registered=1)
LastProbeTime: 2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
ScaleDown: NoCandidates (candidates=0)
LastProbeTime: 2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
NodeGroups:
Name: k8s-default-group
Health: Healthy (ready=1 unready=0 notStarted=0 longNotStarted=0 registered=1 longUnregistered=0 cloudProviderTarget=1 (minSize=1, maxSize=5))
LastProbeTime: 2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
ScaleUp: NoActivity (ready=1 cloudProviderTarget=1)
LastProbeTime: 2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
ScaleDown: NoCandidates (candidates=0)
LastProbeTime: 2019-09-03 08:59:53.70167178 +0000 UTC m=+23.846174142
LastTransitionTime: 2019-09-03 08:59:43.520248394 +0000 UTC m=+13.664750787
kind: ConfigMap
metadata:
annotations:
cluster-autoscaler.kubernetes.io/last-updated: 2019-09-03 08:59:53.84165088 +0000
UTC
creationTimestamp: 2019-09-03T08:59:31Z
name: cluster-autoscaler-status
namespace: kube-system
resourceVersion: "426558451"
selfLink: /api/v1/namespaces/kube-system/configmaps/cluster-autoscaler-status
uid: 248a8014-ce29-11e9-8a51-f220cd8c2e67
클러스터 업그레이드
클러스터를 업그레이드하여 내부 관리 마스터 영역을 신규 버전으로 교체할 수 있습니다. 업그레이드 이후에 추가하는 노드풀은 업그레이드 이후의 버전이 적용됩니다. 업그레이드 도중에는 일시적으로 리소스 조회, 수정, 삭제가 불가능할 수 있습니다.
업그레이드 전 점검
클러스터를 업그레이드하기 전 아래의 사항을 확인하여 서비스에 영향을 줄 수 있는 요소를 점검해 주십시오.
- 신규 버전 변경 사항: Kubernetes changelog를 참조하여 신규 버전에서 변경된 사항들이 서비스에 영향을 줄 수 있는지 확인하십시오.
- 버전 차이 정책: Version Skew Policy를 참조하여 클러스터 및 구성 요소의 버전 간 호환성을 확인하십시오.
- Admission Webhook: 클러스터 내에 Webhook이 있는 경우 업그레이드 도중 교착 상태에 빠질 수 있으므로, Dynamic Admission Control을 참조하여 업그레이드 전 미리 조치를 취하십시오.
- 가용 서버 확보: 안정적인 업그레이드를 위해 가용 서버를 3개 이상 확보하십시오.
- kube-system Namespace 리소스 백업: nodelocaldns, coredns ConfigMap과 같은 kube-system 리소스들은 업그레이드시에 유지되지 않으며, 새 버전으로 대체됩니다. 수정된 리소스가 있다면 백업하여 업그레이드 완료 후 다시 적용 하십시오.
다음 사항을 참고하여 업그레이드와 관련된 세부 사항을 설정할 수 있습니다.
- PodDisruptionBudget: Specifying a Disruption Budget을 참고하여 클러스터 업그레이드 중에도 서비스 중인 Pod을 원하는 비율 또는 개수로 유지할 수 있습니다.
- Readiness Probe: Define readiness probes를 참고하여 노드풀 교체 중 Pod가 재배치될 때 Pod가 서비스 가능 상태일때만 Ncloud Kubernetes Service 리소스를 통해 접근 가능하도록 설정할 수 있습니다.
업그레이드 방법
클러스터를 업그레이드하는 방법은 다음과 같습니다.
- 클러스터 목록에서 업그레이드하려는 클러스터의 행을 클릭해 주십시오.
- 클러스터 상세 정보 탭에서 [업그레이드] 버튼을 클릭해 주십시오.
- 설정 팝업 창에서 업그레이드할 버전을 선택한 후 해당 클러스터의 이름을 입력해 주십시오.
- [업그레이드] 버튼을 클릭해 주십시오.
Kubernetes 대시보드 사용
Kubernetes 대시보드를 사용하면 CLI 대신 GUI 인터페이스를 사용하여 클러스터를 제어할 수 있습니다. Kubernetes 대시보드는 브라우저를 통해 접속할 수 있습니다.
Kubernetes 대시보드에 접속하는 방법은 다음과 같습니다.
- 아래 명령어를 실행하여 프록시를 구동해 주십시오.
$ kubectl --kubeconfig $KUBE_CONFIG proxy
- 브라우저를 실행하여 아래 링크로 접속해 주십시오.
- http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
- 표시되는 대시보드 초기 화면에서 Token을 선택한 후 관리자용 토큰 값을 입력해 주십시오.
- 관리자용 토큰 값을 생성하는 방법은 Kubernetes 대시보드 설치를 참고하십시오.
- 관리자용 토큰 값을 생성하는 방법은 Kubernetes 대시보드 설치를 참고하십시오.
- [Sign In]을 클릭해 주십시오.
로그인을 완료하면 대시보드 화면에서 클러스터를 제어할 수 있습니다.