본문 바로가기

kubernetes

[Kubernetes] kubeconfig

kubernetes에서 보안이걸린 component에 접근하는 방법은 다음과 같다.

 

1. curl request

>> curl https://kube-server:6443/api/v1/pods 
	--key admin.key 
    	--cert admin.crt
    	--cacert ca.crt

 

2. kubelet declarative

>> kubectl get pods
	--server kube-server:6443
    --clinet-key admin.key
    --client-certificate admin.crt
    --certificate-authority ca.crt

 

3 kubeconfig 사용

>> kubectl get pods
	--kubeconfig config

 

 

사실상 1,2번은 너무 길어서 사용성 떨어짐 따라서 3번 kubeconfig로 관리한다.

 

기본적으로, .kube/config 파일에 defualt config 파일이 있다. (지금까지 kubectl을 이용할 때 key, crt 설정 안해준 이유 ㅎㅎ)

 

config yaml example

 

kubeconfig 파일은 clusters, contexts, users들의 정보를 array로 받는다.

 

** context는 cluster + user로 특정 cluster클러스터에 접근할 수 있는 유저를 설정해 놓는 것

ex)

clusterA 클러스터에는 admin만 접근가능: admin@clusterA

clusterB 클러스터에는 dev만 접근가능: dev@clusterB

 

- context에는 새로운 user를 사용하면안됨. clusters, users group에서 정의한 name을 사용

- cluster내의 default namespace도 설정할 수 있다.

- certificate-authority를 파일명말고 data field에 넣어도 된다. (certificate-authority 대신 certificate-authority-data로 바꾸고 base64 encoding 된 crt 파일 설정)

 

config yaml example2

 

기타 유용 kubectl command

** kubectl config view : view config list

** kubectl config use-context <user>@<cluster> : context change

'kubernetes' 카테고리의 다른 글

[kubernetes] Authorization, cluster role  (0) 2021.02.18
TLS basic  (0) 2021.02.16