레이블이 clusterrolebinding인 게시물을 표시합니다. 모든 게시물 표시
레이블이 clusterrolebinding인 게시물을 표시합니다. 모든 게시물 표시

k8s service account 생성

# 외부 drone ci 등에 신규 k8s 클러스터에 접근이 필요한 경우
# service account 와 clusterrolebinding(Role-based access control (RBAC)) 리소스를 생성하고
# service account 의 token을 사용하면 된다.

# 다음과 같이 service account 명세를 작성한다.
cat << zzz > service_account_for_droneci.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: drone-ci
  namespace: default

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: drone-ci-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: drone-ci
  namespace: default
zzz

# 이제 적용하면 serviceAccount 가 secret 이 생성된다.
kubectl apply -f service_account_for_droneci.yaml

# drone-ci-token-xxx 를 파악해서 ~/.kube/config 에서 사용하면 된다.
kubectl get secret $(kubectl get secret -n default | grep drone | awk '{print $1}') -n default -o jsonpath="{.data.token}"

# 인증서 확인
kubectl get secrets

# 참고로 A 네임스페이스의 인증서 B 네임스페이스에 적용하기
kubectl get secret -n A ysoftman-test-cert -o yaml > cert.yaml
# cert.yaml 의 namespace=B 로 수정해서 적용한다.
kubectl apply -f cert.yaml