티스토리 뷰
● vagrant 는 kubernetes-admin 이므로, root 는 불가능 ( root 도 설정하면 가능 하다 )
[vagrant@ms ~]$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.98.10:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: DATA+OMITTED
client-key-data: DATA+OMITTED
▷ root 가 클러스터 관리자가 되려면 인증서가 필요
[root@ms ~]# ls /etc/kubernetes/admin.conf
/etc/kubernetes/admin.conf
>> 환경변수로 잡아주면, 바로 관리자 권한을 갖는다
[root@ms ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
[root@ms ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ms.example.com Ready control-plane 61m v1.29.2
wk1.example.com Ready <none> 61m v1.29.2
wk2.example.com Ready <none> 61m v1.29.2
▶ 새로운 계정으로 kubernetes 를 관리
>> admin 계정은 sudo 권한 없어도 된다
>> 클러스터 관리자가 설정한다
[vagrant@ms ~]$ sudo useradd admin
[vagrant@ms ~]$ sudo chpasswd
admin:admin
+ Ctrl d
▩ 하지만, admin 계정은 인증서를 환경변수로 잡아줘도 관리자가 불가능하다
>> 단, admin 이 sudo 권한이 있다면 가능하다
[admin@ms ~]$ export KUBECONFIG=/etc/kubernetes/admin.conf
[admin@ms ~]$ kubectl get nodes
error: error loading config file "/etc/kubernetes/admin.conf": open /etc/kubernetes/admin.conf: permission denied
▶ root 계정으로 admin 계정에 admin.conf 파일을 복사하고 권한까지 준다
[root@ms ~]# mkdir -p /home/admin/.kube
[root@ms ~]# cp -i /etc/kubernetes/admin.conf /home/admin/.kube/config
[root@ms ~]# id -u
0
[root@ms ~]# id -u admin
1001
[root@ms ~]# ll /home/admin/.kube/
total 8
-rw-------. 1 root root 5653 Mar 7 14:45 config
[root@ms ~]# chown admin:admin -R /home/admin/.kube/
[root@ms ~]# ll /home/admin/.kube/
total 8
-rw-------. 1 admin admin 5653 Mar 7 14:45 config
[root@ms ~]#
▩ 그런데 환경변수를 잡아준게 있어서 작동을 안한다
# 환경변수가 먼저 인식이 된다
[admin@ms ~]$ kubectl get nodes
error: error loading config file "/etc/kubernetes/admin.conf": open /etc/kubernetes/admin.conf: permission denied
[admin@ms ~]$ echo $KUBECONFIG
/etc/kubernetes/admin.conf
[admin@ms ~]$ unset KUBECONFIG
[admin@ms ~]$ echo $KUBECONFIG
[admin@ms ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ms.example.com Ready control-plane 150m v1.29.2
wk1.example.com Ready <none> 150m v1.29.2
wk2.example.com Ready <none> 150m v1.29.2
▷ admin 계정에 자동완성 기능을 넣어야한다
[admin@ms ~]$ source <(kubectl completion bash)
[admin@ms ~]$ echo "source <(kubectl completion bash)" >> ~/.bashrc
[admin@ms ~]$ tail -n 2 $HOME/.bashrc
# User specific aliases and functions
source <(kubectl completion bash)
# 잘 안될땐 치트시트를 참조하자
https://kubernetes.io/ko/docs/reference/kubectl/cheatsheet/#zsh
'Kubernetes [ 쿠버네티스 ]' 카테고리의 다른 글
Kubernetes - pods (0) | 2024.03.07 |
---|---|
Kubernetes 기본 개념 / namespace (0) | 2024.03.07 |
Kubernetes 정상 작동 확인 (0) | 2024.03.07 |
Kubernetes 설치 추가 (0) | 2024.03.07 |
Kubernetes 설치 (0) | 2024.03.07 |