목차
- 쿠버네티스 - Secret
- 쿠버네티스 - ConfigMap
- 쿠버네티스 - Namespace
- 쿠버네티스 - Ingress
- Post not found: k8s/deployment/deployment
- Post not found: k8s/replicaset/replicaset
- 쿠버네티스 - Node
- 쿠버네티스 - Pod
- 쿠버네티스 - Data Plane
- 쿠버네티스 - Control Plane
- Post not found: k8s/k8s
참고
- https://findstar.pe.kr/2023/04/09/access-k8s-api-from-pod/
- https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
- https://kubernetes.io/ko/docs/reference/access-authn-authz/service-accounts-admin/
ServiceAccount
ServiceAccount 는 쿠버네티스 API 서버와 통신하고 클러스터 내의 다른 리소스에 접근하기 위한 인증 정보를 제공합니다.
ServiceAccount 는 Pod 가 Kubernetes API Server 에 인증 하기 위한 Account 입니다. 때문에 Pod 를 생성할때 ServiceAccount 를 할당해야 하며 지정하지 않을 경우 default 가 자동으로 할당됩니다.
Rule 과 RuleBinding 을 이용해 ServiceAccount 에 권한을 부여함으로써 Pod 가 다른 리소스에 접근할 수 있게 해줍니다.
ServiceAccount 는 Namespace 단위로 생성되는 리소스며 다른 Namespace 에서 정의된 ServiceAccount 를 사용할 수 없습니다.
ServiceAccount 생성하기
매니페스트 내 kind: ServiceAccount
를 사용하여 ServiceAccount를 생성할 수 있습니다.
apiVersion: v1 |
Token 생성
v1.22 이전 버전의 쿠버네티스 버전은 쿠버네티스 API에 액세스하기 위한 장기 자격 증명을 자동으로 생성했다. 이 이전 메커니즘은 실행 중인 파드에 마운트할 수 있는 토큰 시크릿을 생성하는 것을 기반으로 했다. 쿠버네티스 v1.27을 포함한 최신 버전에서는, API 자격 증명이 토큰리퀘스트 API를 사용하여 직접 획득되고, 예상 볼륨을 사용하여 파드에 마운트된다. 이 방법을 사용하여 획득한 토큰은 수명이 제한되어 있으며, 마운트된 파드가 삭제되면 자동으로 무효화된다.
예를 들어 만료되지 않는 토큰이 필요한 경우 서비스 어카운트 토큰 시크릿을 수동으로 생성할 수 있다. 그러나 대신 TokenRequest 서브리소스를 사용하여 API에 액세스하기 위한 토큰을 얻는 것을 권장한다.
kubectl create token <ServiceAccount Name> |
Secret 생성
apiVersion: v1 |
Rule
apiVersion: rbac.authorization.k8s.io/v1 |
RoleBinding
apiVersion: rbac.authorization.k8s.io/v1 |