Kubernetes 운영하기

By | 2022년 10월 22일
Table of Content

Kubernetes 운영하기

Kubernetes 클러스터 운영에 필요한 내용을 정리해 봅니다.

Kubernetes in production

  • Infrastructure as Code (IaC)

    Terraform 등을 이용해 클러스터 구축을 코드화하는게 좋다.

  • Monitoring & Centralized logging

    Prometheus/Grafana 등을 이용해 서버 모니터링을 시각화하는게 좋다.

    Filebeat/ElasticSearch 등을 이용해 로그를 집중해 놓는게 좋다.

  • Centralized Ingress Controller with SSL certificate management

    외부에서 service 에 직접 접속하게 하는 것보다,
    Ingress 를 통해 접속하게 하고,
    Ingress 를 한곳으로 모아,
    서비스가 어떻게 외부에 노출되고 있는지를 한번에 알수 있게 하자.
    Ingress 를 한곳으로 모으면 SSL 인증키 관리도 쉬워진다.

  • Role-Based Access Control (RBAC)

  • GitOps Deployments

    kubectl apply 를 이용한 app 배포는 비효율적이다.
    CI/CD 툴을 이용하자.
    jenkins/ArgoCD 가 좋다.

  • Secret Management

    Hashicorp Vault 등을 이용해 인증키를 관리하자.

helm 설치

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

helm help

Jenkins 설치

여기

ingress-nginx 설치

여기

Prometheus/Grafana 설치

여기

웹로그 관리

기본방향

ingress-nginx 를 통해 모든 service 가 운영되므로,
ingress-nginx pod 에 access log 를 생성하게 하고,
access log 를 PV 에 저장한다.

Fluentd 가 로그를 조회해서 S3 and/or ElasticSeatch 에 전송하도록 한다.

일단 방향은 이렇게 잡았는데 더 좋은 방법이 있는지는 찾아봐야겠군요.

참조

MetalLB (Software Load-Balancer)

MetalLB 가 Software Load-Balancer 로 기능한다.

그닥인듯…

```

```bash