본문 바로가기

kubernetes55

K8s 구성 - AWS 1. 개요 - AWS에서 Amazon EC2에 Kubernetes를 구성하는 절차를 간단하게 설명하고자 합니다. - 구성 환경은 Amazon EC2(Redhat 9.2), CRI-O 1.25.4, Kubernetes 1.28, flannel 0.22.2입니다. - AWS는 관리형 서비스인 Amazon EKS(Elastic Kubernetes Service)와 Amazon ECS(Elastic Container Service)를 제공하고 있습니다. 2. AWS EC2 구성 2.1 Key pair 생성 Kubernetes를 설치하기 위하여 Amazon EC2에 접속할 때 사용할 키를 생성합니다. - 메뉴 EC2 console > Network & Security > Key Pairs > Create key .. 2023. 8. 30.
Kubeflow 1.4.1 in Minikube 구성 1. 개요 - minikube에 Kubeflow 1.4.1을 설치한다. - Kubeflow 설치 방식이 버전 1.2까지는 kfctl를 사용하였으나, 1.3부터는 kustomize를 사용한다. ✓ kfctl is a CLI for deploying and managing Kubeflow, Latest release: 1.2.0(21 Nov 2020), https://github.com/kubeflow/kfctl ▷ Kubeflow 1.2 in On-prem 구성 ▷ Kubeflow 1.2 in Minikube 구성 ✓ Kubeflow 1.4.1는 Istio 1.9.6, Knative 0.22.1을 포함하고 있다. 2. 환경 - kubeflow 1.4.1 - minikube 1.17.1 - kubernete.. 2021. 12. 30.
Velero와 restic으로 K8s 백업/복구 in on-premise 1. 개요 - Velero (https://velero.io/)? ✓ Velero는 쿠버네티스 리소스와 퍼시스턴트 볼륨을 오프젝트 스토리지로 백업하는 툴이다. ✓ Velero는 로컬에서 수행하는 클라이언트 CLI(Command-line Interface)와 쿠버네티스 클러스터에서 운영되는 서버로 구성되어 있다. ✓ 클라우드 프로바이더가 제공하는 블럭 스토리지 스냅샷 기능을 이용하여 PV(Persistent Volume)에 대한 스냅샷을 생성하여 백업한다. ✓ On-premise 환경에서는 restic 오픈소스를 활용하여 PV를 오브젝트 스토리지로 백업한다. (Velero 1.5 부터) https://velero.io/blog/velero-1.5-for-and-by-community/ - Velero 활용.. 2021. 12. 8.
MongoDB Sharded by Bitnami 1. 개요 - MongDB ✓ MongoDB는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. ✓ NoSQL 데이터베이스로 분류되는 MongoDB는 JSON과 같은 동적 스키마형 도큐먼트들을 선호한다. - MongoDB Replica sets vs Sharded cluster ✓ https://severalnines.com/database-blog/turning-mongodb-replica-set-sharded-cluster a. Replica sets ✓ Replica Sets are a great way to replicate MongoDB data across multiple servers and have the database automatically failover in case of se.. 2021. 11. 3.
MongoDB Community Kubernetes Operator 1. 개요 - MongDB ✓ MongoDB는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. ✓ NoSQL 데이터베이스로 분류되는 MongoDB는 JSON과 같은 동적 스키마형 도큐먼트들을 선호한다. - MongoDB Enterprise server vs Community server ✓ MongoDB Enterprise server는 아래와 같은 추가적인 기능을 제공한다. ▷ in-memory storage engine for high throughput and low latency ▷ advanced security features like LDAP and Kerberos access controls ▷ encryption for data at rest. - MongoDB Enterprise .. 2021. 11. 3.
NFS-Client Provisioner - PV 마운트 위치 1. 개요 - Docker container가 PV(Pysical Volume)를 어떻게 연결해서 사용하는지 이해한다. - 본 환경은 Dynamic provisioning이 구성되어 있어 PVC(Pysical Volume Claim리소스를 생성하면 자동으로 PV가 생성된다. Storage : NFS Provisioner: quay.io/external_storage/nfs-client-provisioner v3.1.0-k8s1.11 구성 관련 문서: NFS-Client Provisioner - Docker container에 마운트된 PV는 '/var/lib/kubelet/pods' 디렉토리 이하에 위치한다. 2. Docker container 정보 확인 - NFS에 생성된 PV을 사용하는 예제 Pod에.. 2021. 10. 22.
Knative - Private docker registry certificates 설정 1. 테스트 환경 - knative v0.14.3, istio 1.3, Kubernetes 1.16.15, Harbor 2.1.3 - Kubeflow 1.2에 포함된 knative, istios를 사용함 2. Problem - Knative serving service 배포 시 에러("certificate signed by unknown authority")가 발생된다. 배포할 이미지는 "repo.acp.kt.co.kr/agp/helloworld-python:1.0"이다. 해당 이미지는 Self-signed certificate를 사용하는 Private docker registry(Harbor)에서 제공한다. $ vi knative-svc.yaml apiVersion: serving.knative.dev.. 2021. 10. 13.
Knative - SKS Mode (Proxy, Serve) 이해 1. 개요 - Knative Service request flow ✓ istio(Route)에서 Knative serving service를 요청하는 경우 a. 'scale to zero' 상태로 Activator가 호출된다. 이 모드가 Proxy이다. Activator는 Revision을 활성화(Pod 기동), 요청을 전달하고 SKS 모드를 Proxy에서 Serve로 변경한다. b. Revision이 활성화 된 경우로 Pod가 호출된다. 이 모드가 Serve이다. ✓ Activator 역할과 Request flow에 대한 상세한 설명은 Knative 이해 (3. Knative 이해)를 참조하기 바란다. - SKS(Serverless Knative Service)는 knative serving 리소스 중.. 2021. 10. 13.
Knative - Autoscaling #2 (테스트) 1. 테스트 환경 - knative serving v0.14.3, istio 1.3, Kubernetes 1.16.15 - Kubeflow 1.2에 포함된 knative serving, istio를 사용함 2. 사전 작업 a. concurrency 조회를 위한 로그 레벨 조정 - Knative service에 대한 autoscaling의 stable/panic concurrency metric을 얻기 위해서는 Autoscaler의 log level을 debug로 변경해야 한다. $ k edit cm config-logging -n knative-serving apiVersion: v1 data: loglevel.autoscaler: debug ... $ k rollout restart deployment.. 2021. 10. 12.
Knative - Autoscaling #1 (개념) 1. Knative Autoscaling? - https://knative.dev/docs/serving/autoscaling/ ✓ automatic scaling of replicas for an application to closely match incoming demand - Supported Autoscaler types ✓ Knative Serving supports the implementation of Knative Pod Autoscaler (KPA) and Kubernetes' Horizontal Pod Autoscaler (HPA). a. Knative Pod Autoscaler (KPA) Part of the Knative Serving core and enabled by defaul.. 2021. 10. 9.
Knative 이해 1. Knative? - Knative는 Kubernetes 환경에서 동작하는 서버리스 클라우드 네이티브 애플리케이션(Severless CNA)을 배포, 실행, 관리하기 위한 오픈소스 소프트웨어 - Public Cloud의 대표적인 Serverless Computing 기술은 AWS Lambda, Azure Functions, Google Cloud Functions 등 2. Knative 기능 a. Serving - https://bcho.tistory.com/1322 ✓ Stateless web service를 위한 serverless model ✓ 서빙은 무상태 웹서비스를 구축하기 위한 프레임웍으로 간단하게 웹서비스 컨테이너만 배포하면, 로드밸런서의 배치, 오토 스케일링, Scale to zero,.. 2021. 10. 5.
MariaDB 1. 개요 - MariaDB MariaDB is a fast, reliable, scalable, and easy to use open-source relational database system. MariaDB Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. https://mariadb.com/ - MariaDB helm chart This chart bootstraps a MariaDB replication cluster deployment on a Kubernetes cluster using the Helm package ma.. 2021. 10. 4.
Redis - corrupted cluster config file 1. Environment - helm chart redis-cluster-6.0.3 / redis 6.2.3 - Helm 3.3.1 / Kubernetes 1.16.15 - Kubernetes 1.16.15 2. Problem - ptts-redis-cluster-1 error : CrashLoopBackOff $ k get pod -n ptts -l app.kubernetes.io/name=redis-cluster -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ptts-redis-cluster-0 2/2 Running 0 25d 10.244.4.203 iap10 ptts-redis-cluster-1 1/2 C.. 2021. 10. 2.
K8s - No more than 110 pods per node 1. Node limit - https://kubernetes.io/docs/setup/best-practices/cluster-large/ ✓ Considerations for large clusters A cluster is a set of nodes (physical or virtual machines) running Kubernetes agents, managed by the control plane. Kubernetes v1.22 supports clusters with up to 5000 nodes. More specifically, Kubernetes is designed to accommodate configurations that meet all of the following criter.. 2021. 10. 2.
K8s - Master node의 role이 '<none>' 일 때 1. Environments - Kubernetes 1.16.15 - Master node list : iap01, iap02, iap03 2. Problem - iap02 Master node(Control plane)의 Role이 master가 아닌 상태로 되어 있음 $ k get nodes iap01 iap02 iap03 NAME STATUS ROLES AGE VERSION iap01 Ready master 421d v1.16.15 iap02 Ready 6d21h v1.16.15 iap03 Ready master 420d v1.16.15 $ 3. Cause analysis - iap02 노드는 'node-role.kubernetes.io/master=' 라벨이 누락되어 있음 - 일시적으로 리소스가 .. 2021. 9. 30.