Kubernetes Training

Kubernetes Training

Kubernetes Standard Architecture


 

image.png
  • 해당 섹션에는 2023 표준 아키텍처를 기준으로 필자의 주관을 참조여 구성됩니다.

 


 

설치순서 ( 순서는 필자의 주관으로 강제가 아님. )

  • 각 컴포넌트 중, 색상으로 표시한 컴포넌트를 기준으로 설치됩니다.

 

1. Container Runtime

  • 툴: containerd, Docker
  • 설명: 쿠버네티스가 컨테이너를 실행하는 런타임을 설치합니다.
  • 가이드:
    1. 각 노드에 containerd 또는 Docker를 설치합니다.
    2. kubelet이 사용할 컨테이너 런타임을 설정합니다.

 

2. Cluster Provisioning

  • 툴: kubeadm, KubeSpray, Terraform
  • 설명: 쿠버네티스 클러스터를 생성하고, 노드들을 구성합니다. 이 단계에서는 쿠버네티스 클러스터의 기본 인프라를 배포합니다.
  • 가이드:
    1. Kubeadm: kubeadm init 명령어를 사용하여 클러스터를 초기화합니다. 각 노드를 클러스터에 추가합니다.
    2. KubeSpray: Ansible을 사용하여 다중 노드 클러스터를 자동으로 배포합니다.
    3. Terraform: 인프라를 코드로 정의하여 클라우드 환경에서 쿠버네티스 클러스터를 프로비저닝합니다.

 

3. Container Network Interface

  • 툴: Calico, MetalLB, NGINX, K8GB
  • 설명: 클러스터 내의 네트워킹을 설정합니다. Calico를 통해 네트워크 정책과 CNI를 설정합니다.
  • 가이드:
    1. Calico를 설치하여 네트워크 정책과 Pod 간의 통신을 설정합니다.
    2. MetalLB를 사용하여 로드밸런서를 구성합니다.
    3. NGINX 또는 K8GB로 인그레스 컨트롤러를 설정합니다.

 

4. Usability Tools

  • 툴: Helm, OpenLens
  • 설명: 클러스터에서 쉽게 애플리케이션을 배포하고 관리할 수 있도록 도와주는 도구들을 설정합니다.
  • 가이드:
    1. Helm을 사용하여 패키지 매니저로서 애플리케이션을 설치합니다.
    2. OpenLens를 통해 클러스터를 관리하고 모니터링합니다.

 

5. Container Natvie Storage

  • 툴: Rook Ceph, Ceph
  • 설명: 클러스터 내에서 스토리지를 설정하여 애플리케이션이 사용할 수 있게 합니다.
  • 가이드:
    1. Rook/Ceph를 사용하여 퍼시스턴트 볼륨을 제공합니다.
    2. Velero를 설치하여 클러스터 백업 및 복원을 설정합니다.

 

6. Backup and Restore Service

  • 툴: Velero
  • 설명: Kubernetes 클러스터의 백업 및 복원을 관리합니다. Velero를 사용하여 클러스터의 상태와 데이터를 안전하게 저장하고, 필요시 복구할 수 있습니다.
  • 가이드:
    1. Velero를 설치하여 클러스터의 백업 및 복구 작업을 자동화합니다.
    2. 클러스터 내의 퍼시스턴트 볼륨 및 네임스페이스 데이터를 백업하고 복구할 수 있는 설정을 구성합니다

 

7. Mesh Service

  • 툴: Istio
  • 설명: 서비스 간의 통신을 관리하고, 서비스 메시 패턴을 설정합니다.
  • 가이드:
    1. Istio를 설치하여 마이크로서비스 간의 트래픽 관리, 모니터링, 보안을 설정합니다.

 

8. Access Management Service

  • 툴: Keycloak
  • 설명: SSO(Single Sign-On) 및 ID 관리 시스템을 설정합니다.
  • 가이드:
    1. Keycloak을 설치하고, 클러스터의 RBAC 및 OIDC 인증을 통합합니다.
    2. SSO를 통해 애플리케이션 액세스를 제어합니다.

 

9. Key Management Service

  • 툴: HashiCorp Vault
  • 설명: 클러스터에서 사용하는 키와 인증서 관리 서비스를 설정합니다.
  • 가이드:
    1. Vault를 설정하여 비밀 정보 및 인증서를 관리합니다.
    2. Kubernetes와 통합하여 비밀 데이터를 관리합니다.

 

10. Container Images Managemet Service

  • 툴: Harbor
  • 설명: 쿠버네티스 클러스터에서 사용하는 이미지를 저장하고 관리할 컨테이너 이미지 레지스트리를 설정합니다.
  • 가이드:
    1. Harbor를 설치하여 내부 레지스트리를 설정하고, 이미지를 푸시하고 풀할 수 있게 합니다.

 

11. Monitoring and Logging

  • 툴: Prometheus, Grafana, Fluentd, Elasticsearch, Kibana
  • 설명: 클러스터의 모니터링 및 로깅을 설정합니다.
  • 가이드:
    1. Prometheus를 설치하여 메트릭을 수집하고 Grafana를 통해 시각화합니다.
    2. Fluentd, Elasticsearch, Kibana를 설정하여 로그를 수집하고 분석합니다.

 

12. CI/CD Pipeline

  • 툴: Jenkins, GitLab, Argo
  • 설명: 애플리케이션의 지속적 통합과 지속적 배포를 설정합니다.
  • 가이드:
    1. Jenkins/GitLab을 설정하여 빌드 파이프라인을 설정합니다.
    2. Argo를 사용하여 지속적 배포(CD)를 자동화합니다.

 

13. Multi Cluster Management

  • 툴: Karmada
  • 설명: 여러 클러스터를 관리하고 페더레이션 설정을 합니다.
  • 가이드:
    1. Karmada를 설정하여 멀티 클러스터 관리 및 페더레이션을 지원합니다.

 

 

RSS Feed