View Certification
cat /etc/kubernetes/manifests/kube-apiserver.yaml
위 명령어를 통해 kube-apiserver 가 사용하는 certificate file 을 확인할 수 있다.
인증서의 정보에 대해서는 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 서버 설정을 점검해본다.
Certification API
CertificateSigningRequest 객체를 생성한다. 이하 CSR 이라고 칭한다.
akshay.csr 파일의 인증키를 가지고 쿠버네티스에 접속할 수 있도록 설정한다.
객체는 yaml 파일로 생성한다.
yaml 파일 생성 후 kubectl 을 이용해 객체를 생성한다.
생성된 CSR 객체는 쿠버네티스에서 승인해주어야한다.
인증 요청에 대해 거부하는 방법도 알아본다. 부적절한 인증 요청인지를 먼저 확인해본다.
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 을 수정한다.
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
'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 |