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 설정 안해준 이유 ㅎㅎ)
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 파일 설정)
기타 유용 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 |