분류 전체보기

728x90
TLS in Kubernetes? CA가 서버 인증서에 서명할 때 사용하는 공용 및 사설 keeper 세트가 있다. -> root 인증서 공용 키가 있는 인증서는 보통 CRT나 PEM 확장자로 불린다. -> 서버를 위한 CRT 고객 인증서를 위한 PEM 개인 키가 있는 인증서는 Key 혹은 Key.pem 으로 불린다. 노드들 사이의 모든 통신은 보안이 필요하고 암호화되어야 한다. 모든 서비스와 고객 간의 상호작용은 안전해야한다. Kubernetes 클러스터와 상호작용하는 관리자나 kubernetes API에 엑세스하는 동안 직접 보안 TLS연결을 설정해야한다. Kubernetes 클러스터 내 모든 구성 요소 간의 통신도 보안이 필요하다. OpenSSL을 사용한 인증서 생성 ca 생성 프라이빗 키 생성 =..
Backup and Restore Method? GitHub와 같은 관리 소스 리포지토리에서는 걱정할 필요가 없다 . 클러스터 전체를 잃어도 응용 프로그램을 클러스터에 재배치할 수 있다. Resource Config를 백업하는데 더 나은 방법은 Kube API 서버를 쿼리하는 것이다. API 서버에 직접 액세스함으로써 클러스터에 생성된 모든 개체에 대한 리소스 구성을 복사해서 저장할 수 있다. ETCD는 클러스터 상태에 대한 정보를 저장하는데 클러스터 자체에 관한 정보와 노드 및 클러스터 내부에서 생성된 모든 리소스가 여기에 저장된다. ETCD는 master node에 호스트 되어있는데 모든 데이터가 저장될 장소를 명시한다. ETCD는 또한 빌트인 스냅샷 솔루션도 가지고 온다. ETCD controll ..
· Computing
MSA(Micro Service Application) 이란 ? MSA는 최소한의 작게 쪼개진 서비스들이 서로 통신을 하며 연계하는 구조의 아키텍쳐를 말합니다. MSA 환경에서는 다양한 서비스들이 존재하며 각 서비스들은 고유한 IP와 PORT, 그리고 기본 정보를 가지고 있습니다. 특정 인스턴스에 대한 부하가 증가하면 해당 인스턴스가 추가될 수 있으며 아예 새로운 분야의 인스턴스가 새로 추가 될 수도 있습니다. MSA 기반에서는 새로운 언어나 기술의 도입이 쉽습니다. 운영중에도 신규 기능 등의 개발 요구사항이 계속 반영되어야 하기 때문에 작은 서비스 단위의 개발, 테스트, 운영 배포가 용이해집니다. Rest API 등으로 상호간에 규칙만 정의하면 서로의 서비스에 영향을 끼치지 않습니다. 단점? 각 서비스..
OS Upgrade? Node가 죽은경우 Master Node는 인지하는데 5분 정도 걸린다. 한 노드가 죽을 경우 해당 노드에 있던 pod 들이 다른 노드로 drain 되도록 구성한다. OS upgrade 실습 복제 품이 없는 경우에는 -ignore-daemonsets 옵션이 통하지 않는다. Cluster Upgrade process? 다른 어떤 구성 요소도 kubeAPI 서버 버전보다 높은 버전이면 안된다. 한 번에 마이너 버전 하나씩 업그레이드 해야한다. Master노드를 먼저 업그레이드 시키고 Worker 노드를 업그레이드 시키는데 Master 노드가 업그레이드 되는 동안 API 서버 , 스케줄러 컨트롤러 관리자 같은 control-plane 구성 요소들은 잠시 다운된다. Master노드가 다운된..
Secret 실습 Multi Container Pods? 마이크로 서비스라는 하위 부품으로 분리하여 독립적이고 작은 재사용 가능한 코드 세트를 개발 및 배포할 수 있다. 이런 구성은 Scale up/down 에 도움을 주고 개별 서비스를 수정할 수 있다. -> 응용 프로그램 전체를 수정하지 않아도된다. 다중 컨테이너 pod를 만들려면 새 컨테이너 정보를 pod정의 파일에 추가하면 된다. pod정의 파일의 spec 섹션의 container 섹션은 배열이다. -> 단일 pod에 다수의 컨테이너를 허용하기 때문이다. Multi Container Pods 실습 Init Container 실습
Commands and Arguments? Docker의 command & Entry point. Docker이미지에 대한 파일을 보면 cmd 라는 지침이 보이는데 프로그램을 정의하는 명령을 뜻한다. -> 시작되면 컨테이너 안에서 실행될 명령 컨테이너 시작 명령 지정 -> Docker 실행 명령에 명령을 추가한다. command 필드는 entrypoint 를 수동으로 overwrite 한다. arg 필드는 도커파일의 command 필드를 수동으로 한다. Commands and Arguments 실습 ConfigMaps in App? Pod 가 생성되면 pod에 configMap을 삽입하여 key-value 값이 환경 변수로 사용될 수 있게한다. ConfigMap 구성방법 ConfigMap을 생성하고 그걸..
Multiple Schedulers? Kubernetes Cluster는 한번에 Multiple Schedulers 를 가질 수 있다. Pod를 만들거나 배치할 때 Kubernetes에게 특정 Schedulers 가 포트를 지정하도록 지시할 수 있다. Multiple Schedulers 일 경우 이름이 다 달라야한다. kubectl get events 라는 명령어를 사용해 나오는 리스트는 우리가 만든 사용자 지정 스케줄러이다. Multiple Scheduler 실습 Monitoring? 힙스터는 Kubernetes 사용자들이 모니터링과 분석을 가능하게한 초기 프로젝트지만 사라지고 Metrics server 라는게 만들어졌다. Metrics server 클러스터당 한개이다. Metrics server 는 ..
Node affinity 실습 Resources Limit? Scheduler가 Node위에 POD를 놓으려 할 때 Node의 자원량을 식별하여 사용가능한 충분한 양의 리소스가 있는 Node를 선택한다. 만약 배포하고자하는 응용프로그램이 이 이상의 자원이 필요하면 Pod나 deployment yaml 파일에서 지정함으로 값을 수정할 수 있다. pod 정의 파일에서는 resources: request: 항목에 memory 혹은 cpu 를 지정한다. cpu 1은 1 AWS vCPU, 1 GCP Core, 1 Azure Core, 1 Hyperthread 와 같다. Pod 가 사용하는 리소스 양에 제한을 둘 수 있다. Kubernetes는 기본적으로 container까지 vCPU 한 대로 제한한다. 명시적으로..
728x90
酒인장
'분류 전체보기' 카테고리의 글 목록 (11 Page)