본문 바로가기
반응형

K8S85

[kubernetes] API groups 를 활용하여 리소스 제어 apiGroups는 Kubernetes의 RBAC에서 어떤 API 그룹에 속한 리소스를 제어할 것인지를 결정하는 중요한 요소이다.API 그룹을 활용하면 특정 유형의 리소스(예: apps, batch, networking.k8s.io 등)에 대한 권한을 효과적으로 관리할 수 있다.1. apiGroups란?Kubernetes의 API 그룹은 특정 리소스 그룹을 관리하기 위한 네임스페이스와 같은 개념이다. API 그룹설명포함된 주요 리소스"" (빈 문자열)Core API 그룹 (기본 리소스)pods, services, configmaps, secrets, persistentvolumes, persistentvolumeclaims, namespacesapps애플리케이션 배포 관련 리소스deployments, s.. 2025. 3. 4.
[Kubernetes] Service Account 개념 및 활용 1. Service Account란?Kubernetes에서 Service Account(SA) 는 Pod가 Kubernetes API 서버와 상호작용할 때 사용하는 계정이다.즉, Pod 내부의 애플리케이션이 API 요청을 수행할 때 사용되는 인증 메커니즘이다.기본적으로 Kubernetes에서는 다음과 같은 두 가지 유형의 계정이 있다:User Account (사용자 계정)Kubernetes 외부에서 클러스터에 접근하는 실제 사용자를 위한 계정.예: 개발자가 kubectl apply 명령을 실행할 때 사용되는 계정.RBAC(Role-Based Access Control)과 결합하여 사용자가 수행할 수 있는 작업을 제한 가능.Service Account (서비스 계정)Pod 내부의 프로세스가 Kubernet.. 2025. 3. 4.
[kubernetes] rolebinding과 clusterrolebinding 할당하는 리소스 RoleBinding과 ClusterRoleBinding은 Kubernetes에서 Role 또는 ClusterRole을 특정 주체(사용자, 그룹, 서비스 계정 등)에게 할당할 때 사용된다.1. RoleBinding과 ClusterRoleBinding의 차이  RBAC 리소스 할당하는 Role적용 범위RoleBindingRole특정 네임스페이스 내에서만 적용ClusterRoleBindingClusterRole클러스터 전체에서 적용RoleBinding은 특정 네임스페이스 내에서만 Role을 사용자에게 할당할 수 있음.ClusterRoleBinding은 ClusterRole을 클러스터 전체에서 적용할 수 있으며, 특정 네임스페이스에도 적용 가능.2. RoleBinding과 ClusterRoleBinding이 .. 2025. 3. 4.
[kubernetes] role이 할당하는 resource 종류 1. Role과 ClusterRole의 공통적인 설정 방식RBAC에서 권한을 설정할 때 주요한 3가지 요소는 다음과 같다.apiGroups: 해당 리소스가 속한 API 그룹기본적으로 "" (빈 문자열) 은 core API 그룹을 의미하며, pods, services, configmaps 등 기본 리소스가 포함된다.다른 API 그룹(예: apps, batch, networking.k8s.io)도 명시적으로 지정 가능.resources: 접근 권한을 설정할 Kubernetes 리소스.예: pods, services, deployments, configmaps, nodes, namespaces 등verbs: 리소스에 대해 허용할 작업(권한).예: get, list, watch, create, update, p.. 2025. 3. 4.
[kubernetes] RBAC와 role 1. ClusterRole vs RoleRBAC에서 권한(permissions) 을 정의하는 두 가지 리소스가 있다. Role특정 네임스페이스(namespace) 내에서만 유효한 권한을 정의한다.특정 네임스페이스 내의 리소스(예: pods, services, configmaps)에 대한 접근을 제어할 때 사용된다.네임스페이스에 종속적이므로, metadata.namespace 필드를 지정해야 한다.apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata: namespace: my-namespace name: pod-readerrules:- apiGroups: [""] resources: ["pods"] verbs: ["get", "list", "wat.. 2025. 3. 4.
Docker 설치 for rhel(8.10에서 설치) 많은 분들이 대부분 알고 있겟지만 rhel 8.10에서 설치는 조금 달라서 문제가 있으신분은 보시면 될것같습니다. 1. yum 업데이트sudo yum update -y아래는 업데이트하면 자동으로 설치됨. sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2. docker repo 추가sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoRhel 8.10의 경우repo지원을 아직 안하는지 이 이후에 docker 설치를 진행하면 fail이 됩니다. status code 404 for https //repos.influxdata.com/s.. 2025. 2. 17.
[kubernetes] karpenters의 limit range - default vs defaultRequest default와 defaultRequest는 Kubernetes LimitRange 객체에서 Pod이나 컨테이너에 기본적으로 설정되는 리소스 제한과 요청 값을 정의하는 데 사용됩니다. 이 두 속성은 서로 다른 역할을 합니다.1. default설명:컨테이너에 리소스 제한(Limits) 값을 기본으로 설정합니다.limits는 컨테이너가 사용할 수 있는 최대 리소스(예: CPU, 메모리)를 정의합니다.컨테이너에서 명시적으로 resources.limits를 설정하지 않은 경우, 이 default 값이 적용됩니다.예시:컨테이너의 메모리 사용량이 명시적으로 설정되지 않았다면, 해당 컨테이너는 최대 2Gi의 메모리까지 사용할 수 있습니다.yaml복사편집default: memory: 2Gi2. defaultReques.. 2025. 1. 26.
[kubernetes] kubectl alias 설정하기 Windowspowershell이나 cmd에서 notepad $profile 에 저장하면된다. # kubectl 명령어를 위한 함수 정의function k { kubectl $args }function kg { kubectl get $args }function kd { kubectl describe $args }function kf { kubectl config set-context $args }function kgp { kubectl get pod $args }function kgs { kubectl get svc $args }function ka { kubectl apply $args }function kc { kubectl create $args }function kr { kubectl delete.. 2025. 1. 23.
[kubernetes] PDB(pod disruption Budget)에 대해 알아보자! Pod Disruption Budget(PDB)는 Kubernetes에서 Pod의 최소 가용성을 보장하거나 허용 가능한 비정상 Pod의 최대 수를 제한하기 위해 사용되는 설정입니다.이 설정은 클러스터에서 Pod의 강제적인 중단(disruption)이 발생할 경우, 애플리케이션이 일정 수준 이상의 서비스를 유지하도록 보장합니다.1. PDB의 필요성Pod 중단은 다양한 이유로 발생할 수 있습니다:클러스터 관리 작업:노드 업데이트, 스케일링, 유지보수.자동 스케일링:클러스터 오토스케일러에 의해 노드가 축소되는 경우.Pod 재배치:새로운 설정 적용을 위해 Pod를 재배치.이런 경우 PDB는 중단 가능한 Pod의 수를 제한하여 애플리케이션이 과도하게 중단되지 않도록 합니다.2. PDB의 동작 방식PDB는 **강제.. 2024. 12. 25.
[kubernetes] Ingress 사용하는 이유 Gateway API를 사용한다는 소리도 있으나 아직은 국내에서 그다지 많이 사용하지 않아 Ingress를 중점으로 보는게 좋지 않을까 생각이 듭니다. "Ingress object를 사용하면 사용하는 로드 밸런서의 수를 줄일 수 있다"는 말은 Kubernetes 클러스터에서 외부 트래픽을 서비스(Pod)로 전달하는 과정에서 Ingress를 활용하면 로드 밸런서의 효율성을 극대화할 수 있다는 의미입니다.이를 이해하기 위해 Kubernetes의 트래픽 흐름과 Ingress가 제공하는 이점을 살펴보겠습니다.1. Kubernetes에서 외부 트래픽 처리 방식a. Service와 LoadBalancer 타입Kubernetes에서 LoadBalancer 타입의 Service를 사용하면 클라우드 제공자(AWS, GC.. 2024. 12. 23.
[Kubernetes] externalTrafficPolicy와 internalTrafficPolicy externalTrafficPolicy와 internalTrafficPolicy는 Kubernetes에서 서비스(Service) 리소스를 정의할 때 사용되는 두 가지 중요한 설정입니다. 이들은 트래픽 라우팅 방식을 지정하여 클러스터 외부와 내부 간의 네트워크 흐름을 어떻게 처리할지를 결정합니다.1. externalTrafficPolicyexternalTrafficPolicy는 클러스터 외부에서 유입되는 트래픽을 처리하는 방법을 정의합니다. 이 설정은 LoadBalancer나 NodePort 서비스 유형에 대해 사용됩니다.Cluster (기본값):트래픽이 클러스터의 모든 노드에 라우팅됩니다.로드밸런서가 들어오는 트래픽을 여러 파드로 분배할 때 클러스터 내 모든 노드에서 파드로 전달되는 방식입니다. 이 경우.. 2024. 12. 21.
service와 clusterIP의 관계에 대해 알아보자 Kubernetes의 Service Port와 IP는 클러스터 내부에서 동작하는 네트워크 환경과 밀접하게 연관되어 있습니다. 이를 Cluster Port와 Cluster IP라고 볼 수 있지만, 약간의 세부적인 이해가 필요합니다.1. Service IP와 Cluster IPService IP는 Kubernetes의 ClusterIP라고도 불립니다.ClusterIP는 Kubernetes 클러스터 내에서 서비스에 접근하기 위한 고정된 IP 주소입니다.클러스터 내부에서만 접근 가능하며, 외부에서는 직접 접근할 수 없습니다(ClusterIP 타입의 Service인 경우).이 IP는 클러스터의 네트워크 CIDR(예: 10.x.x.x) 범위 내에서 자동으로 할당됩니다.클라이언트가 Service에 요청을 보낼 때 사.. 2024. 12. 21.
반응형