karmada 란
- CNCF 프로젝트
- kubefed 단점 보완
- 클러스터간 리소스 공유&배포
- 워크로드 분산 가능
- 정책기반 배포 및 관리가 가능
- 클러스터간 고가용성 지원
- 기본적인 통신 플로우는 k8s 통신과 동일하게
api서버를 기반으로 통신 - karmada의 컨트롤플레인이 각 클러스터의 API 서버와 통신하는 구조
- PropagationPolicy 추가시 PolicyController가 Resource Binding 생성
- Resource Binding 시 Binding Controller가 Manifest 를 토대로 목적 클러스터에 Execution 생성
- Execution 생성시 Execution Controller가 목적 클러스터에 리소스를 배포
propagation policy란
PropagationPolicy란 워크로드를 어떤 클러스터에 어떻게 분산할지 정의하는 규칙으로 멀티클러스터환경을 위해 진행되는 karmada의 핵심 개념
- ClusterAffinity: ClusterName, Label, Field에 기반 스케쥴링
- SpreadConstraint: 여러 클러스터에 고르게 분산
- ReplicasScheduling: 워크로드복제본(동일 pod)을 여러 클러스터에 어떻게(Duplicated, Wdighted, Custom) 스케쥴링할지 결정
- Toleration: 기존 k8s 스케쥴링기법을 그대로 사용
karmada 설치 방법
git clone https://github.com/karmada-io/karmada.git; karmada/hack/local-up-karmada.sh
karmada join CLUSTER_NAME --cluster-kubeconfig=/path/to/your/cluster-kubeconfig.yaml
karmada 를통해 리소스 배포 방법
placement:
clusterAffinity:
clusterNames:
- member1
- member2
를 통해서 배포할 클러스터를 정해준다 - clusterAffinity 방식 weighted 를 기준으로 분산하는데 target cluster 모두 가중치는 1로 줬기에 균등분산하여 nginx 애플리케이션을 member1,2 각각의 클러스터에 분산 배치하여 고가용성 및 부하분산 향상
'job' 카테고리의 다른 글
teleport란 (0) | 2023.05.02 |
---|---|
keycloak - gitlab 연동1 (0) | 2023.04.17 |
시스템엔지니어의 실무관점 mongodb 메뉴얼 (0) | 2021.09.28 |
fortigate 100E SSL-VPN & (google workspace) 구성하기 (0) | 2021.08.10 |
사내 apple business manager(abm), mobile device manager(mdm), profile manager 구성하기 (2) | 2021.07.05 |