푸잉이의 기술블로그
[Day12] Certified Kubernetes Administrator (CKA) with Practice Tests 본문
[Day12] Certified Kubernetes Administrator (CKA) with Practice Tests
data고수 2023. 1. 17. 23:24144강. 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