티스토리 뷰

 

● 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

 

kubectl 치트 시트

이 페이지는 일반적으로 사용하는 kubectl 커맨드와 플래그에 대한 목록을 포함한다. Kubectl 자동 완성 BASH source <(kubectl completion bash) # bash-completion 패키지를 먼저 설치한 후, bash의 자동 완성을 현재

kubernetes.io

 

'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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함