IT/CKA

CKA 실습 - Certification / KubeConfig

Primes 2023. 8. 20. 11:07
728x90

View Certification

cat /etc/kubernetes/manifests/kube-apiserver.yaml

위 명령어를 통해  kube-apiserver 가 사용하는 certificate file 을 확인할 수 있다.

각종 cert 파일 경로를 확인 가능

인증서의 정보에 대해서는 crt 파일을 직접 열람해보면 확인 가능하다.

apiserver의 crt 파일에서 인증서 발급자는 kube-apiserver 이고, 인증서 CA는 kubernetes 임을 확인 가능하다.

이와 동일하게, etcd 서버의 인증서 파일은 해당 경로에서 확인 가능하다.

(openssl x509 -in /etc/kubernetes/pki/etcd/server.crt -text)

 

 

kube-apiserver 트러블 슈팅하기

 

kubectl 명령어가 먹히지 않는 상황이다. kubectl 가 kube-apiserver와 통신할 수 없는 것으로 추정된다.

에러가 발생했음을 확인
etcd 를 찾을 수 없는 에러로 파악된다

etcd 서버 설정을 점검해본다.

etcd.yaml 에서 cert 파일 인증 경로는 위와같다.
실제 파일은 위와 같으므로, 파일명이 잘못되었다.
해당 부분을 수정한다.

 

 

Certification API

CertificateSigningRequest 객체를 생성한다. 이하 CSR 이라고 칭한다.

akshay.csr 파일의 인증키를 가지고 쿠버네티스에 접속할 수 있도록 설정한다.

객체는 yaml 파일로 생성한다.

base64로 된 키 파일을 읽어온다. w 0 옵션은 줄바꿈을 없도록 한다.
yaml 파일을 생성한다. request 부분에 키 파일의 내용을 기입한다.

yaml 파일 생성 후 kubectl 을 이용해 객체를 생성한다.

생성된 CSR 객체는 쿠버네티스에서 승인해주어야한다.

 

인증 요청에 대해 거부하는 방법도 알아본다. 부적절한 인증 요청인지를 먼저 확인해본다.

system:masters 에 대해 접속 요청을 하고 있다.

masters 는 중요 폴더이므로 아무나 접근할 수 없게 해야한다. 따라서 인증 요청을 거절한다. 이후, 삭제한다.

 

 

KubeConfig

kubeconfig 파일은 아래 경로에 위치한다.

kubeconfig 의 각종 설정 내용들은 위 파일 내용 내에서 확인할 수 있고, 새로운 config 파일이 생성된다면 $HOME 경로 하에 생성이 되어 해당 파일 내용 내에서 설정값을 확인하면 된다.

 

 

Role Based Access Controls

조건에 맞는 Role 을 생성하고 바인딩한다. 조건은 다음과 같다.

먼저 role 을 생성한다.

다음으로 binding 객체를 생성한다.

 

잘못된 바인딩 지정으로 인한 에러를 수정해본다.

blue namespace에 있는 dark-blue-app 파드를 불러오려했으나, 찾을 수 없다는 에러가 발생한다. 

따라서 blue namespace의 role 을 확인해본 결과, dark-blue-app 은 없고 blue-app 파드만 존재한다. 없는 파드를 불러오려 했으니 에러가 발생한다.

 

따라서 edit 을 통해 role 을 수정한다.

k edit role developer -n blue

blue namespace의 developer role을 수정한다. resourceNames 부분을 blue-app => dark-blue-app 으로 수정

수정 후에는 정상적으로 파드를 불러오는 것을 확인할 수 있다.

 

다음은 namespace에 권한을 가진 유저가 되어 리소스를 생성하는 과정을 알아본다.

nginx deployment 를 생성하려 시도해보지만, dev-user 유저는 blue 네임스페이스에 대해 권한을 가지고 있지 않아 생성할 수 없다.

따라서, dev-user 유저의 role 인 developer roles 를 edit 한다.

resources 부분에 deployment 항목을 추가하여 권한을 부여한다.

 

이제 정상적으로 생성된다.

 

ClusterRoles

wc -l 옵션을 넣어서 몇 개의 개체가 있는지 확인할 수 있다.

 

반응형

'IT > CKA' 카테고리의 다른 글

CKA 실습 - Storage  (0) 2023.09.07
CKA 실습 - Security  (0) 2023.09.06
CKA 실습 - Cluster Maintenance  (0) 2023.08.15
CKA 실습 - Logging / Update / Application Lifecycle Management  (0) 2023.08.07
CKA 실습 - Scheduling  (0) 2023.07.31