Exercise 6.1: RESTful API Access

  1. CP 노드에 연결된 터미널로 이동

  2. 클러스터 접속정보 확인

    kubectl config view
  3. 모든 네임스페이스에 있는 Secret 확인

    kubectl get secret -A
  4. 모든 네임스페이스에 있는 ServiceAccount 확인

    kubectl get sa -A
  5. default 네임스페이스에 있는 ServiceAccount 확인

    kubectl get sa
  6. default 네임스페이스에 있는 Secret 확인

    kubectl get secret
  7. 위에서 확인한 ServiceAccount에 연동되는 토큰을 생성하고 환경변수로 지정

    {
        export token=$(kubectl create token default)
        echo $token
    }
  8. https://jwt.io 에서 토큰 내용 확인

  9. 위에서 생성한 토큰을 사용해서 클러스터 API 정보를 보는 API 호출

    curl https://k8scp:6443/apis --cacert ./ca.pem \
    --header "Authorization: Bearer $token" 
  10. v1 API 리소스 정보를 보는 API 호출

    curl https://k8scp:6443/api/v1 --cacert ./ca.pem \
    --header "Authorization: Bearer $token" 
  11. 네임스페이스 목록 보는 API 호출

    curl https://k8scp:6443/api/v1/namespaces --cacert ./ca.pem \
    --header "Authorization: Bearer $token"
  12. 인증된 유저에게 부여된 역할 확인

    kubectl get clusterrolebinding system:discovery -o yaml
  13. 위에서 확인한 역할에 부여된 권한 확인

    kubectl get clusterrole system:discovery -o yaml
  14. 비인증 유저에게 부여된 역할 확인

    kubectl get clusterrolebinding system:public-info-viewer -o yaml
  15. 위에서 확인한 역할에 부여된 권한 확인

    kubectl get clusterrole system:public-info-viewer -o yaml
  16. API 서버 버전을 확인하는 API 호출

    curl -k https://k8scp:6443/version
  17. Pod 생성

    kubectl run busybox --image=busybox --rm -it --restart=Never
  18. Pod 부여된 토큰값 확인

    cat /var/run/secrets/kubernetes.io/serviceaccount/token 
  19. Pod 종료

    exit

Last updated