[Kubernetes] 쿠버네티스 에러
쿠버네티스 공부좀 하려고 하는데 무슨 에러가 이렇게 많이 나는지 모르겠다.다음에 또 설치할 때 헷갈릴까봐 정리함.아래 명령어 실행이렇게 했는데도 잘 안됀다?Master에서 실행Worker에서 이전
velog.io
https://it-hangil.tistory.com/59
쿠버네티스 클러스터 재구성(초기화)
네트워크 대역이 변경돼서 kubeadm의 노드를 초기화 한후 다시 진행 하려면 마스터,컨트롤 플레인 노드에서 kubeadm reset cleanup-node 후 다시 설정 해주면 된다. (노드들 에서도 kubeadm reset 명령 실행)
it-hangil.tistory.com
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/
ChatGPT의 말:
kubectl get nodes -A -o wide 명령어를 실행할 때, 일반 사용자 계정에서는 조회가 되지 않고 root 계정에서만 조회가 가능한 이유는, Kubernetes 클러스터에서 RBAC (Role-Based Access Control) 설정에 따라 사용자에게 부여된 권한이 다르기 때문입니다.
1. RBAC(Role-Based Access Control) 개념
Kubernetes는 사용자, 그룹, 서비스 계정 등에 대해 접근을 제어하기 위해 RBAC를 사용합니다. RBAC는 특정 리소스에 대한 읽기, 쓰기, 실행 권한을 할당하는 역할(Role)과 이러한 역할을 사용자나 그룹에 바인딩하는 역할 바인딩(Role Binding)을 정의합니다.
- Role: 특정 네임스페이스 내에서 리소스에 대한 접근 권한을 정의합니다.
- ClusterRole: 클러스터 전체에서 리소스에 대한 접근 권한을 정의합니다.
- RoleBinding: 특정 네임스페이스 내에서 Role을 사용자, 그룹, 또는 서비스 계정에 바인딩합니다.
- ClusterRoleBinding: ClusterRole을 클러스터 전체에서 사용자, 그룹, 또는 서비스 계정에 바인딩합니다.
2. 권한 부족
일반 사용자 계정으로 kubectl get nodes 명령을 실행할 때 조회가 되지 않는 것은 해당 사용자 계정에 노드(Resource)에 접근할 수 있는 권한이 할당되지 않았기 때문입니다. 일반적으로 kubectl get nodes 명령은 클러스터 전체의 노드 목록을 조회하기 때문에, 이 작업을 수행하려면 적절한 ClusterRole이 필요합니다.
- root 계정은 기본적으로 모든 권한을 가지고 있기 때문에 조회가 가능합니다.
- 일반 사용자 계정에는 이러한 권한이 부여되지 않았을 가능성이 큽니다.
3. 해결 방법
일반 사용자 계정으로도 노드 정보를 조회할 수 있게 하려면 해당 사용자에게 필요한 권한을 부여해야 합니다.
(1) 사용자에게 ClusterRole 부여
다음과 같은 방법으로 특정 사용자에게 ClusterRole을 부여할 수 있습니다. 예를 들어, view라는 ClusterRole을 특정 사용자에게 부여하려면:
이 명령은 view 역할을 <사용자이름> 사용자에게 클러스터 전체에 대해 부여하는 것입니다. view 역할은 노드, 파드 등 다양한 리소스에 대한 읽기 권한을 포함합니다.
(2) 사용자에 대한 현재 권한 확인
사용자가 어떤 권한을 가지고 있는지 확인하기 위해 다음 명령어를 사용할 수 있습니다:
이 명령어는 특정 사용자가 노드를 조회할 권한이 있는지를 확인합니다.
4. 요약
- 일반 사용자 계정으로 kubectl get nodes 명령어가 실행되지 않는 이유는 RBAC 설정에 따라 해당 계정에 노드 조회 권한이 없기 때문입니다.
- 이 문제를 해결하려면 사용자에게 적절한 ClusterRole을 부여해야 합니다.
이와 같은 방법으로 일반 사용자 계정에 필요한 권한을 부여하면, root 계정이 아닌 일반 사용자 계정에서도 kubectl get nodes 명령을 실행할 수 있게 됩니다.
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/
'Chapter01 > Kubernetes' 카테고리의 다른 글
[ Kubernetes ] 자주 쓰는 명령어 (0) | 2025.02.25 |
---|---|
[ Kubernetes ]MetalLB와 Ingress 사용해 배포하기 (2) | 2024.09.30 |
[ Kubernetes ] MetalLB와 Ingress를 사용해 외부에서 접근 가능한 인프라 구축 (0) | 2024.09.30 |
[ Kubernetes ] .yaml로 Nginx Pod을 K8S cluster에 배포하기 (0) | 2024.09.03 |
[ Kubernetes ] 설치하기 (0) | 2024.08.26 |