반응형
□ 신규 인증서 생성,승인 이걸 하는 이유?
- k8s는 tls 기반으로 각 component에 엑세스를 하기때문에, 새로 추가된 멤버(개발자)에게 k8s 접근하기 위해선 ceriticate을 필요함.
□ 순서
1.개인key, csr 파일 생성
2. k8s에 csr object 생성( .yaml작성)
3. k8s에 csr 승인
1. 개인key,csr 파일 생성
- key 생성
# key 생성
[node2 pki]$ openssl genrsa -out tam.key 2048
Generating RSA private key, 2048 bit long modulus
...................+++
.....+++
e is 65537 (0x10001)
- csr파일 생성
## csr파일 생성, "CN=tam" (CN은 하고싶은대로 하면 됨)
[node2 pki]$ openssl req -new -key tam.key -subj "/CN=tam" -out tam.csr
[node2 pki]$ cat tam.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICUzCCATsCAQAwDjEMMAoGA1UEAwwDdGFtMIIBIjANBgkqhkiG9w0BAQEFAAOC
<중략>
-----END CERTIFICATE REQUEST-----
2. k8s에 csr object 생성( .yaml작성)
① : "CN=tam" 으로 생성했기때문에, name: tam으로 하면 됨
② : request 값은 tam.csr을 base64 encoding 한 값을 넣으면 됨
-> tam.csr을 base64 encoding 은 base64 -w 0 명령으로 한줄로 뽑으면 편함
### base64 인코딩 한줄로 출력
[node2 pki]$ cat tam.csr | base64 -w 0
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVN
ex) csr.yaml 작성예시
### vi로 yaml 파일 작성
vi tam-csr.yaml
apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
name: tam
spec:
request: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ1V6Q0NBVHNDQVFBd0RqRU1NQW9 <중략>
signerName: kubernetes.io/kube-apiserver-client
expirationSeconds: 86400 # one day
usages:
- client auth
3. k8s에 csr 승인
ex)
## create csr
[node2 ~]$ kubectl apply -f tam-csr.yaml
certificatesigningrequest.certificates.k8s.io/tam created
## 생성된 csr 확인
[node2 ~]$ kubectl get csr
NAME AGE SIGNERNAME REQUESTOR CONDITION
tam 35s kubernetes.io/kube-apiserver-client kubernetes-admin Pending
## csr 승인
[node2 ~]$ kubectl certificate approve tam
certificatesigningrequest.certificates.k8s.io/tam approved
반응형
'클라우드 > K8S' 카테고리의 다른 글
[k8s]Node Drain - 2 (Pod) (0) | 2023.02.01 |
---|---|
[k8s] security context 사용법(with multi-container) (0) | 2023.01.31 |
[k8s] k8s인증서 종류(openssl) (0) | 2023.01.26 |
helm 명령어 (0) | 2023.01.02 |
[system log]failed to get system container stats (0) | 2022.12.19 |