Cloud-native/Kubernetes (65) 썸네일형 리스트형 [Kubernetes]클러스터의 안정성을 최대화할 수 있는 여러 설정과 구성요소 이번 글에서는 Kubernetes의 안정성을 향상시키는 주요 설정과 구성요소에 대해 다룹니다. 이러한 설정과 구성요소는 파드의 생명주기 관리, 자원 할당 및 사용, 스케줄링 전략, 노드 관리 등 여러 범주에 걸쳐 있습니다. 특히 다음 주제에 초점을 맞춥니다. 파드의 생명주기 및 상태 관리: 파드의 정상 작동을 지속적으로 확인하고 필요에 따라 복구 또는 재시작하는 메커니즘. 스케줄링 전략: 파드가 클러스터 내에서 어떻게 배치되며, 고가용성과 효율성을 동시에 달성하기 위한 전략. 리소스 관리: 클러스터의 리소스를 효율적으로 할당하고 사용하는 방법. 노드 관리 및 안정성: 노드의 상태를 모니터링하고, 장애 발생 시 자동 복구를 위한 전략. Pod Lifecycle Probe 개요: Kubernetes에서 Po.. [Kubernetes]Sealed secrets - A Kubernetes controller and tool for one-way encrypted Secrets https://github.com/bitnami-labs/sealed-secrets 개요 kubernetes secrets config를 git에 저장하려고 한다. 문제는 secrets config는 base64 decode를 이용해 쉽게 해독이 가능하다. SealedSecret를 이용하면 이 대상 클러스터에서 실행되는 컨트롤러에 의해서만 secrets이 해독될 수 있고 다른 누구도(심지어 원래 작성자도) SealedSecret에서 원래 비밀을 얻을 수 없다. 방법 SealedSecret 를 이용하여 암호된 SealedSecret.yaml을 생성한다. SealedSecret.yaml를 배포하여 kubernetes secrets을 생성한다. 주기적으로 Sealed secrets, secrets(e.g. d.. [Kubernetes]How to use PV and PVC in kubernetes with GKE 목표 Google Cloud 영구 디스크(동적으로 만들어진 항목 또는 기존 항목)로 사용할 PersistentVolume(PV) 및 PersistentVolumeClaim(PVC)에 대한 매니페스트 만들기 Google Cloud 영구 디스크 PVC를 파드의 볼륨으로 마운트하기 매니페스트를 사용하여 StatefulSet 만들기 Google Cloud 영구 디스크 PVC를 StatefulSet의 볼륨으로 마운트하기 파드가 중지되었다가 다시 시작될 때 StatefulSet의 파드와 특정 PV의 연결 확인하기 작업 1. PVC, PV 만들기 Cluister API access 설정 gcloud container clusters get-credentials standard-cluster-1 --zone us-ce.. [Kubernetes]How to create Kubernetes Secret from Json/Yaml/Literal Concept 비밀번호, OAuth 토큰, SSH 키 같은 민감한 정보들을 저장하는 용도로 사용한다. 이런한 정보들은 컨테이너 안에 저장하지 않고 별도로 보관했다가 실제 파드를 실행할 때의 템플릿으로 컨테이너에 제공한다. Secret Type 내장 시크릿 쿠버네티스 클러스터 안에서 쿠버네티스 API에 접근할 때 사용. 클러스터 안에서 사용하는 ServiceAccount 라는 계정을 생성하면 자동으로 관련 시크릿을 만든다. 이 시크릿으로 ServiceAccount가 사용 권한을 갖는 API에 접근할 수 있다. 사용자 정의 시크릿 How to There are 3 ways to create secret file k create secret generic [file-secret-name] --from-file.. [Kubernetes]What is Annotation in Kubernetes? label과 마찬가지로 key-value 쌍으로 구성하며 label처럼 사용자가 설정할 수 있다. label → 사용자가 설정한 특정 label의 오브젝트들을 선택 annotation → 쿠버네티스 시스템이 필요한 정보들을 담았으며, 쿠버네티스 클라이언트나 라이브러리가 자원을 관리하는 데 활용. e.g. 릴리즈 정보, 로깅, 모니터링에 필요한 정보등 Example - Annotation annotation 설정 apiVersion: apps/v1 kind: Deployment metadata: name: annotation labels: app: nginx annotations: manager: "admin-name" # 관리자 정보 contact: "010-0000-0000" # 관리자 번호 relea.. [Kubernetes]How to use Label and Selector - Example Example - How to use label and selector create deployment, service with labels and selector deployment(nginx-label01~04)에 label(app,environment,release)을 작성한다. deployment-nginx-label01 ~04.yaml 작성 위 표에 맞게 라벨을 작성한다. apiVersion: apps/v1 kind: Deployment metadata: name: nginx-label01 # deployment별로 label01~04로 설정 labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metad.. [Kubernetes]How to use Label and Selector - Concept Concept key-value 쌍으로 구성하며 사용자가 클러스터 안에 오브젝트를 만들 때 메타데이터로 설정할 수 있다. label의 key: 컨트롤러들이 pod를 관리할 때 자신이 관리해야 할 pod를 구분하는 역할. kubernetes는 label만으로 관리 대상을 구분하므로 특정 컨트롤러가 만든 pod라도 레이블을 변경하면 인식할 수 없다. 컨트롤러와 pod를 느슨하게 결합하는 이런 특징 때문에 쿠버네티스가 파드들을 관리할 때 유연성이 있다. label의 key, value 설정 규칙 63글자를 넘지 않아야 한다 시작과 끝 문자는 알파벳 대소문자 및 소문자([a-z0-9A-z]) 여야 한다. 중간에는 대시(-), 밑줄(_), 점(.), 숫자 등이 올 수 있다. label의 selector 설정 방법.. [Kubernetes]What is kube-proxy (userspace, iptables, IPVS) Concept 쿠버네티스에서 서비스를 만들었을 때 클러스터 IP나 노드 포트로 접근할 수 있게 만들어 실제 조작을 하는 컴포넌트 쿠버네티스 클러스터의 노드마다 실행되면서 클러스터 내부 IP로 연결하려는 요청을 적절한 파드로 전달한다. kube-proxy의 네트워크 관리 방법 userspace, iptables, IPVS 초기 → userspace 현재 → iptables 앞으로의 예상 → IPVS userspace 클라이언트 요청 → 서비스의 클러스터 IP → iptables → kube-proxy 그리고 서비스의 클러스터 IP는 연결되어야 하는 적절한 파드(애플리케이션)로 연결해준다. 이때, 요청은 RR 방식으로 분배. 파드 하나로의 연결 요청이 실패하면 자동으로 다른 파드에 연결을 재시도. iptab.. 이전 1 2 3 4 ··· 9 다음