Exercise 6.1: RESTful API Access
CP 노드에 연결된 터미널로 이동
클러스터 접속정보 확인
kubectl config view
모든 네임스페이스에 있는 Secret 확인
kubectl get secret -A
모든 네임스페이스에 있는 ServiceAccount 확인
kubectl get sa -A
default
네임스페이스에 있는 ServiceAccount 확인kubectl get sa
default
네임스페이스에 있는 Secret 확인kubectl get secret
위에서 확인한 ServiceAccount에 연동되는 토큰을 생성하고 환경변수로 지정
{ export token=$(kubectl create token default) echo $token }
https://jwt.io 에서 토큰 내용 확인
위에서 생성한 토큰을 사용해서 클러스터 API 정보를 보는 API 호출
curl https://k8scp:6443/apis --cacert ./ca.pem \ --header "Authorization: Bearer $token"
v1 API 리소스 정보를 보는 API 호출
curl https://k8scp:6443/api/v1 --cacert ./ca.pem \ --header "Authorization: Bearer $token"
네임스페이스 목록 보는 API 호출
curl https://k8scp:6443/api/v1/namespaces --cacert ./ca.pem \ --header "Authorization: Bearer $token"
인증된 유저에게 부여된 역할 확인
kubectl get clusterrolebinding system:discovery -o yaml
위에서 확인한 역할에 부여된 권한 확인
kubectl get clusterrole system:discovery -o yaml
API Discovery Role 리뷰 - https://kubernetes.io/docs/reference/access-authn-authz/rbac/#discovery-roles
비인증 유저에게 부여된 역할 확인
kubectl get clusterrolebinding system:public-info-viewer -o yaml
위에서 확인한 역할에 부여된 권한 확인
kubectl get clusterrole system:public-info-viewer -o yaml
API 서버 버전을 확인하는 API 호출
curl -k https://k8scp:6443/version
Pod 생성
kubectl run busybox --image=busybox --rm -it --restart=Never
Pod 부여된 토큰값 확인
cat /var/run/secrets/kubernetes.io/serviceaccount/token
Pod 종료
exit
Last updated