Home

0

[쿠버네티스] 인증/인가 - ServiceAccount

목차 [쿠버네티스] 인증/인가 - OIDC 를 이용한 Keycloak 연동 [쿠버네티스] 인증/인가 - ServiceAccount [쿠버네티스] 인증/인가 - X.509 인증서를 사용한 사용자 추가 및 인증 [쿠버네티스] 인증/인가 - Role 과 ClusterRole 참고 https://findstar.pe.kr/2023/04/09/access-k8s-api-from-pod/ https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ https://kubernetes.io/ko/docs/reference/access-authn-authz/service-accounts-admin/ 🔎 ServiceAccount 란? ServiceAccount 는 쿠버네티스 API 서버와 통신하고 클러스터 내의 다른 리소스에 접근하기 위한 인증 정보를 제공합니다. ServiceAccount 는 Pod 가 Kubernetes API Server 에 인증 하기 위한 Account 입니다. 때문에 Pod 를 생성할때 ServiceAccount 를 할당해야 하며 지정하지 않을 경우 default 가 자동으로 할당됩니다. Rule 과 RuleBinding 을 이용해 ServiceAccount 에 권한을 부여함으로써 Pod 가 다른 리소스에 접근할 수 있게 해줍니다. ServiceAccount 는 Namespace 단위로 생성되는 리소스며 다른 Namespace 에서 정의된 ServiceAccount 를 사용할 수 없습니다.

0

Istio - Istio 설치 및 addon 설치

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - istioctl Istio 란? 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ istioctl 설치Mac 을 사용하는 경우 HomeBrew 를 이용해 istioctl 을 설치할 수 있습니다. brew install istioctl 다른 OS 를 사용하거나 특정 버전의 Istio 를 사용하고 싶은 경우 다음과 같이 Istio 버전을 Setting 한 후 해당 버전을 내려받아 사용할 수 있습니다. export ISTIO_VERSION=1.14.5curl -L https://istio.io/downloadIstio | ISTIO_VERSION=$ISTIO_VERSION TARGET_ARCH=x86_64 sh -

0

쿠버네티스 - CustomResource

참고 https://frozenpond.tistory.com/111 CustomResourceCustom Resource는 쿠버네티스에서 사용자가 정의한 리소스를 나타냅니다. 이는 일반적으로 클러스터 내에 존재하지 않는 기본 리소스의 새로운 종류를 정의하고, 이를 통해 사용자의 애플리케이션에 특화된 동작을 수행할 수 있도록 합니다. Custom Resource 는 클러스터 상태의 일부로서 존재하며, 일반적인 리소스와 동일한 방식으로 쿠버네티스 API를 통해 작동합니다. 예를 들어, 사용자는 Custom Resource 를 생성, 조회, 수정 및 삭제할 수 있습니다. Custom Resource 를 사용하기 위해 먼저 Custom Resource Definition(CRD) 을 정의해야 합니다. CRD는 Custom Resource 의 스키마를 설명하는 쿠버네티스 API 개체입니다. 이를 통해 Custom Resource 의 구조, 필드 및 기타 특성을 정의할 수 있습니다. CRD는 일종의 템플릿으로서, Custom Resource 의 정의를 기반으로 생성됩니다. CRD를 생성하면 쿠버네티스 API 서버가 새로운 Custom Resource 타입을 이해하고 처리할 수 있게 됩니다. Custom Resource Definition 을 작성한 후, 사용자는 해당 정의를 사용하여 Custom Resource 인스턴스를 생성하고 관리할 수 있습니다. Custom Resource 인스턴스는 일반적으로 YAML 또는 JSON 형식으로 정의되며, 클러스터에 배포됩니다. 이후 Custom Resource 는 클러스터 내에서 다른 리소스와 유사하게 다룰 수 있으며, 사용자는 쿠버네티스 API를 사용하여 Custom Resource 를 조작할 수 있습니다. Custom Resource 와 Custom Resource Definition 은 쿠버네티스의 확장성과 유연성을 높여줍니다. 사용자는 쿠버네티스 API를 통해 고유한 리소스 유형을 정의하고 제어할 수 있으며, 이를 통해 자신의 애플리케이션을 더욱 쉽게 관리할 수 있습니다.

0

쿠버네티스 - CA (Cluster Autoscaler)

목차 쿠버네티스 - HPA (Horizontal Pod Autoscaler) 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod Post not found: k8s/k8s CA

0

쿠버네티스 - VPA (Vertical Pod Autoscaler)

목차 쿠버네티스 - HPA (Horizontal Pod Autoscaler) 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod Post not found: k8s/k8s VPA

0

[쿠버네티스] HPA - 수평적 파드 오토스캐일링

목차 쿠버네티스 - VPA (Vertical Pod Autoscaler) [쿠버네티스] HPA - 수평적 파드 오토스캐일링 HPA (Horizontal Pod Autoscaler) 이란?HPA 는 CPU 사용량, 메모리 사용량, 또는 커스텀 메트릭을 기준으로 오토스캐일링 해주는 쿠버네티스 리소스 입니다. 수평이라 붙은 이유는 오토스캐일링시 자원의 사양을 늘리는게 아닌 동일한 사양을 가진 파드의 개수를 늘리기 때문에 그렇습니다. HPA는 애플리케이션의 부하가 증가하면 파드 수를 자동으로 늘리고, 부하가 감소하면 파드 수를 줄이는 식으로 관리합니다. 이를 통해 애플리케이션의 가용성과 성능을 최적화할 수 있습니다. HPA 기본적으로 Deployment 또는 ReplicaSet 와 같은 스케일링이 가능한 컨트롤러 리소스 에만 적용이 가능합니다. (Daemonset 은 적용 불가) ✅ Metrics Server 설치HPA는 메트릭 데이터를 기반으로 동작하므로, metrics-server 가 클러스터에 설치되어 있어야 합니다. kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

0

Spring Batch - ItemStream

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 [Spring Batch] - ItemWriter [Spring Batch] - ItemProcessor [Spring Batch] - ItemReader [Spring Batch] - ChunkProvider 와 ChunkProcessor [Spring Batch] - ChunkOrientedTasklet [Spring Batch] - Chunk 기반 Step ItemStreamItemStream 은 ItemReader 와 ItemWriter 처리 과정 중 상태를 저장하고 오류가 발생하면 해당 상태를 참조하여 실패한 곳에서 재시작 하도록 지원합니다. 리소스를 열고 닫아야 하며 입출력 장치 초기화 등의 작업을 해야 하는 경우 사용합니다. public interface ItemStream { void open(ExecutionContext executionContext) throws ItemStreamException; void update(ExecutionContext executionContext) throws ItemStreamException; void close() throws ItemStreamException;}

0

쿠버네티스 - Secret

목차 쿠버네티스 - Secret 쿠버네티스 - ConfigMap 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane Post not found: k8s/k8s Secret 쿠버네티스(Secret)는 애플리케이션에서 민감한 데이터를 안전하게 저장하고 관리하기 위한 리소스 Secret은 기본적으로 ConfigMap과 유사한 방식으로 동작하지만, 암호화된 형태로 데이터를 저장하여 더 높은 보안 수준을 제공합니다. Secret은 애플리케이션에서 사용되는 비밀번호, API 토큰, 데이터베이스 자격증명 등과 같은 중요한 정보를 저장할 수 있습니다. 이러한 데이터는 애플리케이션의 컨테이너 이미지와 분리되어, 보안성을 유지하면서 애플리케이션을 배포하고 관리할 수 있습니다. Secret은 Base64 인코딩을 사용하여 데이터를 인코딩하고, 쿠버네티스 클러스터 내부에서 저장됩니다. 이를 통해 데이터는 안전하게 저장되며, 컨테이너 내부에서 필요할 때만 디코딩하여 사용됩니다. Secret은 YAML 또는 JSON 형식으로 정의되며, 쿠버네티스 클러스터에 생성 및 적용됩니다. Secret을 생성한 후에는 해당 Secret을 사용하려는 Pod의 컨테이너에 마운트하거나 환경 변수로 설정할 수 있습니다. 이렇게 하면 애플리케이션은 Secret에서 정의된 중요한 정보를 사용할 수 있습니다. 예를 들어, Secret에서 “db_password”라는 키에 대한 값으로 “mysecretpassword”를 설정하면, 애플리케이션은 이 값을 디코딩하여 데이터베이스 비밀번호로 사용할 수 있습니다. Secret은 ConfigMap과 마찬가지로 클러스터나 네임스페이스 수준에서 변경 및 관리할 수 있으므로, 변경된 비밀번호는 애플리케이션을 다시 시작하지 않고도 즉시 적용될 수 있습니다.

0

MySQL - 사용자 추가

사용자 추가create user '[userid]';-- localhost 에서만 접속할 수 있는 계정 생성create user '[userid]'@'localhost' identified by '[비밀번호]';-- 외부에서 접근 가능한 계정 생성create user '[userid]'@'%' identified by '[비밀번호]'; 권한 부여하기-- select 권한 부여grant select privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- update 권한 부여grant update privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- insert 권한 부여grant insert privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- delete 권한 부여grant delete privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- select, update, insert 권한 부여grant select, update, insert privileges on *.* to '[userid]'@localhost identified by '[비밀번호]'; 특정 데이터 베이스에 대한 접근 부여-- [Database 명] 데이터베이스에 select 권한 부여grant select privileges on [Database 명].* to '[userid]'@localhost identified by '[비밀번호]'; User 에 따른 데이터 베이스 접근 부여-- localhost User 에게 전체 권한 부여grant all privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- 외부접근 User 에게 전체 권한 부여grant all privileges on *.* to '[userid]'@'%' identified by '[비밀번호]';