본문 바로가기

점진적과부하57

[k8s] 인증과 권한 관리 - 권한편 권한관리 특정 유저나 ServiceAccount가 접근하려는 API에 접근 권한을 설정 권한 있는 User만 접근하도록 허용 권한제어 Role 어떤 API를 이용할 수 있는지의 정의 K8s의 사용권한을 정의 지정된 namespace에서만 유효 verbs : create : 새로운 리소스 생성 get : 개별 리소스 조회 list : 여러 건의 리소스 조회 update : 기존 리소스 내용 전체 업데이트 patch : 기존 리소스 중 일부 내용 변경 delete : 개별 리소스 삭제 deletecollection : 여러 리소스 삭제 RoleBinding User/Group 또는 ServiceAccount와 Role을 연결 .. 2023. 3. 6.
[K8s] 인증과 권한 관리 - 인증편 API 접근제어 API 인증요청 User/Group Service Account(Application) Authentication user 또는 application이 API에 접근을 허가 받는 과정 인증방식 ; 클라이언트 인증서, 베어러 토큰(bearer token), HTTP 기본인증 지원 Authoriztion RBAC 모델 기반 요청 ID에 적절한 role이 있는지 확인 Admission Control 요청이 올바른 형식인지 판별 요청이 처리되기 전에 수정사항을 잠재적으로 적용 API 인증 API 서버에 접근하기 위해서는 인증 작업 필요 일반 사용자(Human User) 또는 그룹(Group) Cluster 외부에서 k8s를 조작하는 사용자로, 다양한 방법으로 인증 kubernetes-admin .. 2023. 2. 27.
[K8s] Cordon& Drain Cordon& Drain이란? Cordon node scheduling 중단(cordon)및 허용(uncordon) 특정 node에 pod 스케줄을 금지하거나 해제 kubectl [cordon|uncordon] NODE [options] [ Hands - on ] node2의 scheduling 중단 및 확인 kubectl cordon node2.example.com kubectl get nodes NAME STATUS ROLES AGE VERSION master.example.com Ready control-plane 22h v1.24.1 node1.example.com Ready 22h v1.24.1 node2.example.com Ready,SchedulingDisabled 22h v1.24.1 p.. 2023. 2. 20.
[K8s] Taint & Toleration,Cordon& Drain Taint & Toleration이란? node taint, pod toleration worker node에 taint가 설정된 경우 동일 값의 toleration이 있는 pod만 배치 toleration이 있는 pod는 동일한 taint가 있는 node를 포함하여 모든 node에 배치 effect 필드 종류 NoSchedule : toleration이 맞지 않으면 배치되지 않음. PreferNoSchedule : toleration이 맞지 않으면 배치되지 않으나, cluster 리소스가 부족하면 할당 NoExecute : toleration이 맞으면 동작중인 pod를 종료 [ Hands - on ] node1에 taint 설정 및 확인 kubectl taint nodes node1.example.co.. 2023. 2. 13.
[k8s] Pod Scheduling Node selector란? Worker node에 할당된 label을 이용해 node를 선택 node label 설정 kubectl label nodes = kubectl label node1.example.com gpu=true kubectl get nodes -L definition apiVersion: v1 kind: Pod metadata: name: tensorflow-gpu spec: containers: - name: tensorflow image: tensorflow/tensorflow:nightly-jupyter ports: - containerPort: 8888 protocol: TCP nodeSelector: gpu: "true" [ Hands - on ] node2에 gpu=tru.. 2023. 2. 6.
[K8s] Multi-master - HA Kuberenetes cluster 운영 K8s cluster를 직접 구성하는 도구 kubeadm K8s에서 공식 제공하는 cluster 생성/관리 도구 kubespray K8s cluster를 배포하는 오픈 소스 프로젝트 다양한 형식으로 k8s cluster 구성 가능 On-premise에서 상용 서비스 cluster 운영 시 유용 K8s cluster 구성 Control plane(master node) worker node 들의 상태를 관리하고 제어 High Available(HA) cluster 운영 API는 loadbalancer를 통해 worker node에 노출 최소 3개의 중첩된 control plane을 구성(5,7개의 master nodes) Worker node container를 동작하며 실제 서비스를 제공 Highly A.. 2023. 1. 30.
[k8s] Secret Secret이란? Container가 사용하는 password, auth token, ssh key와 같은 중요한 정보를 저장 민감한 구성 정보를 base64로 인코딩해서 한 곳에 모아서 관리 Secret 데이터 전달 방법 Command-line Argument Environment Variable Volume Mount Available command에 따라 들어가는 옵션이 달라짐 docker-registry : create a secret for use with a Docker registry generic : create a secret from a local file, directory or literal value tls : create a TLS secret type Opaque : 임의의 사.. 2023. 1. 25.
[K8s] ConfigMap ConfigMap이란? 구성 설정이나 환경 설정 정보들을 한 곳에 모아서 관리해주는 API 단, value는 1MiB를 초과할 수 없음 ConfigMap 생성 Configmap 생성 kubectl create configmap ttabae-config --from-literal=INTERVAL=2 --from-literal=OPTION=BOY --from-file=config.dir/ Configmap 확인 kubectl get configmaps ttabae-config NAME DATA AGE ttabae-config 3 77s kubectl describe configmaps ttabae-config Name: ttabae-config Namespace: default Labels: Annotati.. 2023. 1. 16.