| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- 스프링
- 리팩토링
- VOA
- AWS
- mybatis
- Java
- docker
- 스프링부트
- 쿠버네티스
- springboot
- 마이바티스
- Winform
- machine-learning
- 도커
- 파이썬
- DataGridView
- Spring Boot
- design pattern
- Spring
- kubernetes
- react
- git
- 코틀린
- Kotlin
- MySQL
- 자바
- 리액트
- Python
- github
- c#
- Today
- Total
보뇨 다이어리
[12. 노드 관리]출제 비중: 중간. drain 과 uncordon 은 업그레이드 문제에 항상 끼어 나오고 단독 문제로도 자주 나온다.명령이 짧아서 점수를 쉽게 딸 수 있는 영역.관련 문제: 0033 (노드 유지보수 drain) - 통과1. 왜 필요한가 노드는 OS 패치, 커널 업그레이드, 하드웨어 교체 때문에 가끔 내려야 한다. 그냥 끄면 그 위의 Pod 이 갑자기 죽는다. 그래서 새 Pod 이 안 오게 막고, 기존 Pod 을 다른 노드로 옮긴 다음 작업한다. 4절 업그레이드에서 쓴 drain 과 uncordon 이 이것이다.2. 세 가지 동작 명령 새 Pod 스케줄 기존 Pod 노드 오브젝트 cordon 막음 ..
[11. CRD / Operator]출제 비중: 낮음 ~ 중간. 커리큘럼에 "CRD 와 Operator 이해"가 있다.보통 목록 조회, CR 생성, explain 으로 필드 찾기 수준. CRD 를 직접 만드는 문제는 드묾.관련 문제: 0022 (CRD 조회와 Custom Resource 생성) - 통과1. 왜 CRD 인가 쿠버네티스에는 Pod, Deployment, Service 같은 기본 리소스가 있다. "인증서", "Gateway", "DB 클러스터"처럼 기본에 없는 개념도 쿠버네티스 방식으로 관리하고 싶어진다. CRD 는 apiserver 에 새 리소스 타입을 등록하는 기능이다. 등록하고 나면 kubectl get, apply, delete 가 기본 리소스와 똑같이 동작한다.2. 세 가지 ..
[10. 확장 인터페이스 (CRI, CNI, CSI)]출제 비중: 낮음 ~ 중간.CNI 설치 문제가 가장 흔하다 (공식 문서나 주어진 URL 에서 매니페스트를 찾아 apply).최근 수험 후기에서는 CRI 런타임 설치와 커널 파라미터 설정 문제도 보고됨 (12절 노드 관리).관련 실습: drill C12 (노드의 CRI 런타임, 소켓, CNI 설정 위치 확인) - 완료1. 왜 인터페이스인가 쿠버네티스는 컨테이너 실행, 네트워크, 스토리지를 직접 구현하지 않는다. "이런 형식으로 요청하면 이렇게 답해라"라는 규격만 정하고 실제 일은 플러그인에게 맡긴다. USB 규격과 같다. 규격만 맞으면 어느 회사 제품이든 꽂아 쓸 수 있다. CRI 컨테이너 실행 contai..
[9. Kustomize]출제 비중: 중간. Helm 과 같은 커리큘럼 항목이라 둘 중 하나 또는 둘 다 나온다.보통 overlay 작성이나 patch 한 개 수준.관련 문제: 0021 (Kustomize overlay 작성과 적용) - 통과1. 왜 Kustomize 인가 Helm 과 목표는 같다. 환경마다 조금씩 다른 YAML 을 깔끔하게 관리하는 것. 방식이 다르다. 항목 Helm Kustomize 방식 YAML 에 {{ .Values.x }} 빈칸을 뚫음 원본 YAML 은 그대로, 바꿀 부분만 따로 적음 설치 helm 바이너리 필요 ..
[8. Helm]출제 비중: 중간. 커리큘럼에 "Helm으로 클러스터 컴포넌트 설치"가 명시돼 있어 보통 한 문제.설치, 업그레이드, 롤백, 렌더링 결과 저장 중 하나가 나온다.관련 문제: 0020 (Helm 설치와 업그레이드)1. 왜 Helm을 쓰나 앱 하나를 배포하려면 Deployment, Service, ConfigMap 같은 YAML이 여러 개 필요하다. 환경마다 replicas나 이미지 태그만 조금씩 다른데, YAML을 통째로 복사해서 관리하면 금방 엉망이 된다. Helm은 YAML을 템플릿으로 만들고, 바뀌는 값만 따로 넣게 해준다. apt나 brew 같은 패키지 매니저라고 생각하면 된다.2. 용어 4개 chart 템플릿 YAML과 기본값 묶음. 보통 .tgz 파일 ..
[7. HA 컨트롤플레인]출제 비중: 매우 낮음. 관련 문제 없음. 시험은 개념 + join 명령 수준.1. 왜 HA가 필요한가 CP가 1대면 그 노드가 죽을 때 kubectl, 스케줄링, 스케일링이 전부 멈춘다. 이미 떠 있는 Pod은 살아 있지만 관리가 안 된다. CP를 여러 대로 늘리면 한 대가 죽어도 나머지가 이어받는다.2. etcd를 어디에 둘까 Stacked (kubeadm 기본값, 실무 대부분) 구조 : CP 노드마다 etcd가 같이 뜸 장점 : 서버 수가 적고 구성이 간단함 단점 : CP 한 대가 죽으면 etcd 멤버도 같이 빠짐 External 구조 : etcd를 별도 서버에 따로 둠 장점 : CP 장애와 etcd 장애가 분리됨 단점 : 서버가 최..
[6. 인증서]출제 비중: 낮음. 만료 확인/갱신이 가끔 한 문제.CSR로 사용자 만들기가 조금 더 자주 나오고 RBAC 문제와 묶여 나온다.1. 왜 인증서가 이렇게 많은가 쿠버네티스는 모든 컴포넌트가 서로 mTLS로 통신한다. (서버와 클라이언트가 서로 인증서를 보여주는 방식) 그래서 연결마다 인증서가 한 쌍씩 필요하다. 인증서가 곧 신분증이다. apiserver는 클라이언트 인증서를 이렇게 읽는다. CN -> User 이름 예) CN=jane O -> Group 예) O=system:masters 면 사실상 관리자 User 오브젝트가 없는 이유가 여기에 있다.2. 누가 누구에게 보여주나 연결 서버 ..
사설 인증서 로컬 신뢰 처리 (macOS)Chrome에서 NET::ERR_CERT_AUTHORITY_INVALID 가 뜨는 내부 클러스터 도메인(*.idc1.ten1010.io 등)을 로컬에서 신뢰시키는 절차. 클러스터 인증서가 재발급될 때마다 반복한다.아래에서 HOST 는 대상 도메인(예: aipub.cluster3.idc1.ten1010.io)이다.export HOST=example.comexport KC=~/Library/Keychains/login.keychain-dbPhase 1. 서버가 주는 인증서 확인echo | openssl s_client -connect $HOST:443 -servername $HOST 2>/dev/null \ | openssl x509 -noout -subject -..
