클러스터 접속 및 관리
    • PDF

    클러스터 접속 및 관리

    • PDF

    기사 요약

    클러스터 생성을 완료하면 Ncloud Kubernetes Service 대시보드에서 클러스터 목록을 확인할 수 있으며, 클러스터에 접속할 수 있습니다. 클러스터 목록에서 클러스터의 상세 정보 확인, 파일 재설정, 클러스터 삭제 등 개별 클러스터와 관련된 작업을 수행할 수 있습니다.

    네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Container > Ncloud Kubernetes Service 메뉴를 차례대로 클릭하면 생성된 클러스터의 목록이 표시됩니다.

    참고

    클러스터에 접속하려면 SSL VPN이 연결된 클라이언트 환경이어야 합니다. SSL VPN에 접속하려면 SSL VPN 접속 방법을 참고해 주십시오.

    클러스터 접속

    생성된 클러스터에 kubectl 명령어를 사용하여 접속할 수 있습니다.

    kubectl 명령어를 사용하여 클러스터에 접속하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Container > Ncloud Kubernetes Service 메뉴를 차례대로 클릭해 주십시오.

    2. 클러스터 목록에서 접속할 클러스터의 행을 클릭한 인증 방식에 따라 설정파일을 구성해 주십시오.

      • Admin 인증 : [다운로드] 버튼을 클릭하여 클러스터의 설정 파일을 다운로드해 주십시오.
      • IAM 인증 : [IAM인증 가이드] 버튼을 클릭하여 ncp-iam-authenticator 설치 후 kubeconfig 파일을 생성해 주십시오.
      참고

      Admin 인증은 2022년 2월 13일 이전에 생성된 클러스터만 지원됩니다.

    3. 아래 예시와 같이 kubectl 명령어에 --kubeconfig 옵션을 사용하여 다운로드한 설정 파일의 경로를 지정한 후 실행해 주십시오.

      $ kubectl --kubeconfig "설정파일" get nodes
      
      참고

      $HOME/.kube/config 경로에 설정 파일을 직접 추가하는 방법도 있습니다.

    4. 아래 코드를 참조하여 사용 중인 운영 체제에 알맞은 방법으로 환경변수를 설정해 주십시오.

      • 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
      


    정상적으로 설정된 경우 아래 예시와 같이 결과가 표시됩니다.

    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 설정 파일을 재설정하는 방법은 다음과 같습니다.

    1. 클러스터 목록에서 개별 클러스터 행을 클릭해 주십시오.
    2. 클러스터 상세 정보 탭에서 [재설정] 버튼을 클릭해 주십시오.
    3. 인증 파일을 재설정할 클러스터의 이름을 입력한 후 [재설정] 버튼을 클릭해 주십시오.
    참고

    Admin 인증을 지원하는 클러스터에서만 kubeconfig 파일을 재설정할 수 있습니다.


    클러스터 삭제

    클러스터를 삭제하는 방법은 다음과 같습니다.

    1. 클러스터 목록에서 삭제하려는 클러스터의 행을 클릭해 주십시오.
    2. 클러스터 목록 왼쪽 위에 있는 [삭제] 버튼을 클릭해 주십시오.
    3. 확인 팝업창에 해당 클러스터의 이름을 입력한 후 [삭제] 버튼을 클릭해 주십시오.

    클러스터 Autoscaler 사용

    클러스터 Autoscaler를 사용하면 클러스터를 자동으로 확장하거나 축소할 수 있습니다. Autoscaler는 사용자가 요청한 Pod의 자원량에 비해 현재 클러스터의 자원이 부족한 경우 자동으로 노드를 증가시키며, 일정 시간 동안 특정 노드의 사용률이 낮게 유지되는 경우 노드 개수를 감소시킵니다.

    클러스터 Autoscaler를 사용하는 방법은 다음과 같습니다.

    1. 클러스터 목록에서 개별 클러스터 행을 클릭해 주십시오.
    2. 클래스터 상세 정보 탭에 표시되는 노드풀 목록에서 Autoscaler를 적용할 노드풀의 이름을 클릭해 주십시오.
    3. [수정] 버튼을 클릭해 주십시오.
    4. 설정 팝업창에서 [설정] 버튼을 클릭한 후 최소 노드 수, 최대 노드 수를 지정해 주십시오.
    5. [수정] 버튼을 클릭해 주십시오.

    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개 이상 확보하십시오.
    • 리소스 백업/복구 : nodelocaldns, coredns ConfigMap과 같은 kube-system 리소스와 StorageClass 등은 업그레이드시에 유지되지 않으며, 새 버전으로 대체됩니다. 수정된 리소스가 있다면 백업하여 업그레이드 완료 후 다시 적용 하십시오.

    다음 사항을 참고하여 업그레이드와 관련된 세부 사항을 설정할 수 있습니다.

    • PodDisruptionBudget: Specifying a Disruption Budget을 참고하여 클러스터 업그레이드 중에도 서비스 중인 Pod을 원하는 비율 또는 개수로 유지할 수 있습니다.
    • Readiness Probe: Define readiness probes를 참고하여 노드풀 교체 중 Pod가 재배치될 때 Pod가 서비스 가능 상태일때만 Ncloud Kubernetes Service 리소스를 통해 접근 가능하도록 설정할 수 있습니다.

    업그레이드 방법

    클러스터를 업그레이드하는 방법은 다음과 같습니다.

    1. 클러스터 목록에서 업그레이드하려는 클러스터의 행을 클릭해 주십시오.
    2. 클러스터 상세 정보 탭에서 [업그레이드] 버튼을 클릭해 주십시오.
    3. 설정 팝업 창에서 업그레이드할 버전을 선택한 후 해당 클러스터의 이름을 입력해 주십시오.
    4. [업그레이드] 버튼을 클릭해 주십시오.

    Kubernetes 대시보드 사용

    Kubernetes 대시보드를 사용하면 CLI 대신 GUI 인터페이스를 사용하여 클러스터를 제어할 수 있습니다. Kubernetes 대시보드는 브라우저를 통해 접속할 수 있습니다.

    Kubernetes 대시보드에 접속하는 방법은 다음과 같습니다.

    1. 아래 명령어를 실행하여 프록시를 구동해 주십시오.
      $ kubectl --kubeconfig $KUBE_CONFIG proxy
      
    2. 브라우저를 실행하여 아래 링크로 접속해 주십시오.
      • http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
    3. 표시되는 대시보드 초기 화면에서 Token을 선택한 후 관리자용 토큰 값을 입력해 주십시오.
    4. [Sign In]을 클릭해 주십시오.

    로그인을 완료하면 대시보드 화면에서 클러스터를 제어할 수 있습니다.
    k8s-k8suse-cluster_kubedashbaord_vpc_ko


    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.