Kubernetes Training
Kubernetes Standard Architecture

- 해당 섹션에는 2023 표준 아키텍처를 기준으로 필자의 주관을 참조여 구성됩니다.
설치순서 ( 순서는 필자의 주관으로 강제가 아님. )
- 각 컴포넌트 중, 색상으로 표시한 컴포넌트를 기준으로 설치됩니다.
1. Container Runtime
- 툴: containerd, Docker
- 설명: 쿠버네티스가 컨테이너를 실행하는 런타임을 설치합니다.
- 가이드:
- 각 노드에 containerd 또는 Docker를 설치합니다.
- kubelet이 사용할 컨테이너 런타임을 설정합니다.
2. Cluster Provisioning
- 툴: kubeadm, KubeSpray, Terraform
- 설명: 쿠버네티스 클러스터를 생성하고, 노드들을 구성합니다. 이 단계에서는 쿠버네티스 클러스터의 기본 인프라를 배포합니다.
- 가이드:
- Kubeadm:
kubeadm init
명령어를 사용하여 클러스터를 초기화합니다. 각 노드를 클러스터에 추가합니다. - KubeSpray: Ansible을 사용하여 다중 노드 클러스터를 자동으로 배포합니다.
- Terraform: 인프라를 코드로 정의하여 클라우드 환경에서 쿠버네티스 클러스터를 프로비저닝합니다.
- Kubeadm:
3. Container Network Interface
- 툴: Calico, MetalLB, NGINX, K8GB
- 설명: 클러스터 내의 네트워킹을 설정합니다. Calico를 통해 네트워크 정책과 CNI를 설정합니다.
- 가이드:
- Calico를 설치하여 네트워크 정책과 Pod 간의 통신을 설정합니다.
- MetalLB를 사용하여 로드밸런서를 구성합니다.
- NGINX 또는 K8GB로 인그레스 컨트롤러를 설정합니다.
4. Usability Tools
- 툴: Helm, OpenLens
- 설명: 클러스터에서 쉽게 애플리케이션을 배포하고 관리할 수 있도록 도와주는 도구들을 설정합니다.
- 가이드:
- Helm을 사용하여 패키지 매니저로서 애플리케이션을 설치합니다.
- OpenLens를 통해 클러스터를 관리하고 모니터링합니다.
5. Container Natvie Storage
- 툴: Rook Ceph, Ceph
- 설명: 클러스터 내에서 스토리지를 설정하여 애플리케이션이 사용할 수 있게 합니다.
- 가이드:
- Rook/Ceph를 사용하여 퍼시스턴트 볼륨을 제공합니다.
- Velero를 설치하여 클러스터 백업 및 복원을 설정합니다.
6. Backup and Restore Service
- 툴: Velero
- 설명: Kubernetes 클러스터의 백업 및 복원을 관리합니다. Velero를 사용하여 클러스터의 상태와 데이터를 안전하게 저장하고, 필요시 복구할 수 있습니다.
- 가이드:
- Velero를 설치하여 클러스터의 백업 및 복구 작업을 자동화합니다.
- 클러스터 내의 퍼시스턴트 볼륨 및 네임스페이스 데이터를 백업하고 복구할 수 있는 설정을 구성합니다
7. Mesh Service
- 툴: Istio
- 설명: 서비스 간의 통신을 관리하고, 서비스 메시 패턴을 설정합니다.
- 가이드:
- Istio를 설치하여 마이크로서비스 간의 트래픽 관리, 모니터링, 보안을 설정합니다.
8. Access Management Service
- 툴: Keycloak
- 설명: SSO(Single Sign-On) 및 ID 관리 시스템을 설정합니다.
- 가이드:
- Keycloak을 설치하고, 클러스터의 RBAC 및 OIDC 인증을 통합합니다.
- SSO를 통해 애플리케이션 액세스를 제어합니다.
9. Key Management Service
- 툴: HashiCorp Vault
- 설명: 클러스터에서 사용하는 키와 인증서 관리 서비스를 설정합니다.
- 가이드:
- Vault를 설정하여 비밀 정보 및 인증서를 관리합니다.
- Kubernetes와 통합하여 비밀 데이터를 관리합니다.
10. Container Images Managemet Service
- 툴: Harbor
- 설명: 쿠버네티스 클러스터에서 사용하는 이미지를 저장하고 관리할 컨테이너 이미지 레지스트리를 설정합니다.
- 가이드:
- Harbor를 설치하여 내부 레지스트리를 설정하고, 이미지를 푸시하고 풀할 수 있게 합니다.
11. Monitoring and Logging
- 툴: Prometheus, Grafana, Fluentd, Elasticsearch, Kibana
- 설명: 클러스터의 모니터링 및 로깅을 설정합니다.
- 가이드:
- Prometheus를 설치하여 메트릭을 수집하고 Grafana를 통해 시각화합니다.
- Fluentd, Elasticsearch, Kibana를 설정하여 로그를 수집하고 분석합니다.
12. CI/CD Pipeline
- 툴: Jenkins, GitLab, Argo
- 설명: 애플리케이션의 지속적 통합과 지속적 배포를 설정합니다.
- 가이드:
- Jenkins/GitLab을 설정하여 빌드 파이프라인을 설정합니다.
- Argo를 사용하여 지속적 배포(CD)를 자동화합니다.
13. Multi Cluster Management
- 툴: Karmada
- 설명: 여러 클러스터를 관리하고 페더레이션 설정을 합니다.
- 가이드:
- Karmada를 설정하여 멀티 클러스터 관리 및 페더레이션을 지원합니다.