푸잉이의 기술블로그

[Day12] Certified Kubernetes Administrator (CKA) with Practice Tests 본문

IT/Kubernetes

[Day12] Certified Kubernetes Administrator (CKA) with Practice Tests

data고수 2023. 1. 17. 23:24

144강. TLS in Kubernetes

<Certificates type>

1. Root Certificates

2. Client Certificates

3. Server Certificates

 

<Server certificates for servers>

  • KUBE-API Server: https 서버를 expose// apiserver.crt apiserver.key
  • The etcd Server: 모든 cluster에 대한 정보를 저장// key (etcdserver.key), certificate (etcdserver.crt)
  • Kubelet server (worker node) : https api endpoint로 expose // kubelet.crt , kubelet.key

<Client certificates for clients>

  • Admin (관리자)-> kube-API 한테 certificate 과 key pair를 요구// admin.crt admin.key
  • Scheduler -> kube-API 접근 및 Certificate 요청
  • Controller -> Kube-API 접근 및 Certificate 요청
  • kube-proxy -> Kube-API 접근 및 Certificate 요청

Kube-api server는 etcd server 접근 및 certificate 요청 (apiserver-etcd-client.crt, apiserver-etcd-client.key)

 

* HTTP (HyperText Transfer Protocol)클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜 (컴퓨터 내부 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계).

*HTTPS 

HTTP의 문제점: 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않음 -> 데이터가 쉽게 도난

SSL (보안 소켓 계층)을 사용함으로 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버 브라우저가 민감한 정보를 주고 받을 때 도난 당하는 것을 막아줌.

 

145강. TLS in Kubernetes-Certificate Creation

Certificate을 generate하기 위해서 oenssl 배우기 

 

<CA>

  • Generate keys: openssl genrsa -out ca.key 2048
  • Certificate Signing Request: openssl req -new -key ca.key -subj "/CN=KUBERNETES-CA" -out.ca.csr
  • Sign Certificates: openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

<Admin user>

  • Generate keys: openssl genrsa -out admin.key 2048
  • Certificate Signing Request: openssl req -new -key admin.key -subj \ "/CN=kube-admin" -out.admin.csr
  • Sign Certificates: openssl x509 -req -in admin.csr -CA ca.crt -CAkey ca.key -out aadmin.crt

<Kube scheduler>, <Kube controller manager>, <kube proxy>

It is a system component, kubernetes control pane, keyword system과 함께 prefixed됨

방법 1. <호출>

curl https://kube-apiserver:6443/api/v1/pods \ 

--key admin.key --cert admin.crt

--cacert ca.crt

방법 2. <move all of these parameters into a configuration file called kubeconfig>

 

<ETCD servers>

CA root certificate과 client와 ETCD서버가 연결하여 유효하다는 것을 확인하기 위해 

<KUBE API SERVER>

=KUBERNETES

Kube API Server를 위해 만들어진 certificate

  • Generate keys: openssl genrsa -out apiserver.key 2048
  • Certificate Signing Request: openssl req -new -key apiserver.key -subj \ "/CN=kube-apiserver" -out.apiserver.csr
  • Sign Certificates: openssl x509 -req -in apiserver.csr -CA ca.crt -CAkey ca.key -out apiserver.crt

<Kubectl nodes (Client cert)>

node이름과 format을 확인

system:node:node01   system:node:node02   system:node:node03

 

146강. Veiw certificate details 

-기존 클러스터에서 인증서를 보는 법 확인

<Log>

- Inspect service logs

: journalctl -u etcd.service -1

- view logs 

: kubectl logs etcd-master

: docker ps -a

: docker logs 87fc

 

150강. Certificates API 

<새로운 team member, a 영입>

a는 cluster에 access 하고 싶음 

certificate과 key pair가 필요

a는 private key 만들고, certificate signing request->  CA server -> a

기간 지나면 다시 반복 

사람이 많아지면, 

1. Create certificateSigningRequest Object 

2. Review Requests

3. Approve Requests

4. Share Certs to Users

 

Generating key: openssl genrsa -out jane.key 2048

Request: openssl req -new -key jane.key -subj "/CN=jane" -out jane.csr

-> jane-csr.yaml

cat jane.csr |base64|tr-d"\n"에 있는 문자들을 

jane-csr.yaml 파일 request: 부분에 복붙 하면 모든 certificate signing request를 볼 수 있음 

-> command: kubectl get csr

승인: kubectl certificate approve jane

 

 

참고

https://velog.io/@jhyj0521/CS-HTTP%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

Comments