IAM 인증 kubeconfig 업데이트 또는 생성

Prev Next

VPC 환경에서 이용 가능합니다.

Ncloud Kubernetes Service는 IAM 클러스터 인증을 위해서 ncp-iam-authenticator를 사용합니다. ncp-iam-authenticator를 통해 IAM 인증이 적용된 kubeconfig를 가져와 기존 파일에 업데이트하거나 새로운 파일로 생성할 수 있습니다.

참고
  • SubAccount의 경우 ncp-iam-authenticator를 통해 kubeconfig를 생성/업데이트 하려면 View/getClusterDetail 과 View/getClusterList 권한이 필요합니다.
  • Jenkins, Github Action와 같은 3rd-party 서비스의 사용으로 ncp-iam-authenticator를 사용한 인증이 어려운 상황이라면 클러스터 권한 제어를 참고하여 서비스어카운트 토큰을 통한 인증을 사용할 수 있습니다.

ncp-iam-authenticator API 인증키값 설정

ncp-iam-authenticator를 사용하기 위해서 먼저 API 인증키값을 설정해야 합니다.

참고

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

OS 환경변수나 configure파일에 API 키를 설정해 주십시오. (OS 환경 변수가 configure 파일보다 우선합니다.)

  • OS 환경변수 설정
$ export NCLOUD_ACCESS_KEY=ACCESSKEYIDACCESSKEY
$ export NCLOUD_SECRET_KEY=SECRETACCESSKEYSECRETACCESSKEYSECRETACCE
$ export NCLOUD_API_GW=https://fin-ncloud.apigw.fin-ntruss.com
  • 사용자 환경 홈 디렉터리의 .ncloud 폴더에 configure 파일
$ cat ~/.ncloud/configure
[DEFAULT]
ncloud_access_key_id = ACCESSKEYACCESSKEYAC
ncloud_secret_access_key = SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
ncloud_api_url = https://fin-ncloud.apigw.fin-ntruss.com

[project]
ncloud_access_key_id = ACCESSKEYACCESSKEYAC
ncloud_secret_access_key = SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
ncloud_api_url = https://fin-ncloud.apigw.fin-ntruss.com
  • 인증키 값을 확인하지 못할 경우 ncp-iam-authenticator 명령 수행 중에 API 키 입력을 요구합니다.
Ncloud Access Key Id []: ACCESSKEYACCESSKEYAC
Ncloud Secret Access Key []: SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
Ncloud API URL []: https://fin-ncloud.apigw.fin-ntruss.com
  • 아래와 같은 옵션을 이용해 각 명령 시, Ncloud 인증키 설정 및 디버그 여부를 설정할 수 있습니다.
이름 설명 필수 여부 기본값
credentialConfig ncloud configure 파일 경로 X ~/.ncloud/configure
profile ncloud configure 파일 내의 profile X DEFAULT
debug debug log 출력 여부 X false

ncp-iam-authenticator update-kubeconfig 명령 사용

참고

최신 버전의 ncp-iam-authenticator가 아닐 경우 일부 명령어가 제한되므로 최신 버전 재설치를 권장드립니다.

  1. ncp-iam-authenticator가 설치되어 있는지 확인해 주십시오. ncp-iam-authenticator를 설치하려면 ncp-iam-authenticator 설치를 참조해 주십시오.

  2. 명령어에 사용될 옵션을 확인해 주십시오.

    참고

    kubeconfig 파일 경로에 kubeconfig이 존재하지 않다면 해당 경로에 새 파일을 생성합니다.
    clusterName 이나 userName을 설정했다면 contextName이 userName@clusterName으로 설정되며 그렇지 않다면 nks_<regionCode>_<clusterName>_<clusterUuid>으로 설정됩니다.

    이름 설명 필수 여부 기본값
    clusterUuid kubeconfig에 생성할 cluster의 uuid O
    region kubeconfig에 생성할 cluster의 regionCode
    - FKR
    O
    clusterName kubeconfig에 설정될 cluster name X nks_<regionCode>_<clusterName>_<clusterUuid>
    userName kubeconfig에 설정될 user name X nks_<regionCode>_<clusterName>_<clusterUuid>
    currentContext current-context를 새로 적용될 context로 수정할지의 여부 X true
    overwrite kubeconfig에 적용될 cluster name, user name, context name이 기존 파일과 중복될시 덮어쓸지의 여부 X false
    kubeconfig update할 kubeconfig의 파일 경로 X KUBECONFIG 환경변수에 설정된 첫 번째 경로
    KUBECONFIG 환경변수가 설정돼있지 않다면, ~/.kube/config
    format 생성될 kubeconfig의 파일 형식
    - yaml, json
    X yaml
  3. 위 표를 참고해, ncp-iam-authenticator update-kubeconfig 명령을 사용하여 기존 kubeconfig 파일에 클러스터의 config를 추가 하십시오.

    ncp-iam-authenticator update-kubeconfig --region <region-code> --clusterUuid <cluster-uuid>
    
  4. 생성된 kubeconfig 파일로 kubectl 명령을 테스트해 주십시오.

    $ kubectl get namespaces --kubeconfig kubeconfig.yaml
    NAME                    STATUS   AGE
    default                 Active   1h
    kube-node-lease         Active   1h
    kube-public             Active   1h
    kube-system             Active   1h
    kubernetes-dashboard    Active   1h
    

ncp-iam-authenticator create-kubeconfig 명령 사용

참고

최신 버전의 ncp-iam-authenticator가 아닐 경우 일부 명령어가 제한되므로 최신 버전 재설치를 권장합니다.

  1. ncp-iam-authenticator가 설치되어 있는지 확인해 주십시오. ncp-iam-authenticator를 설치하려면 ncp-iam-authenticator 설치를 참조해 주십시오.

  2. 명령어에 사용될 옵션을 확인해 주십시오.

    참고

    clusterName 이나 userName을 설정했다면 contextName이 userName@clusterName으로 설정되며, 그렇지 않다면 nks_<regionCode>_<clusterName>_<clusterUuid>으로 설정됩니다.

    이름 설명 필수 여부 기본값
    clusterUuid kubeconfig에 생성할 cluster의 uuid O
    region kubeconfig에 생성할 cluster의 regionCode
    - FKR
    O
    clusterName kubeconfig에 설정될 cluster name X nks_<regionCode>_<clusterName>_<clusterUuid>
    userName kubeconfig에 설정될 cluster name X nks_<regionCode>_<clusterName>_<clusterUuid>
    output kubeconfig이 저장될 filepath (파일명 포함) X kubeconfig-<clusterUuid>.<format>
    format 생성될 kubeconfig의 파일 형식
    - yaml, json
    X yaml
  3. 위 표를 참고해, ncp-iam-authenticator create-kubeconfig 명령을 사용하여 클러스터에 대한 kubeconfig를 생성해 주십시오.

    ncp-iam-authenticator create-kubeconfig --region <region-code> --clusterUuid <cluster-uuid> --output kubeconfig.yaml
    
  4. 생성된 kubeconfig 파일로 kubectl 명령을 테스트해 주십시오.

    $ kubectl get namespaces --kubeconfig kubeconfig.yaml
    NAME                    STATUS   AGE
    default                 Active   1h
    kube-node-lease         Active   1h
    kube-public             Active   1h
    kube-system             Active   1h
    kubernetes-dashboard    Active   1h