Kubernetes 자원 대상:namespace 설명

2610 단어

namespace 


namespace는 하나의 자원과 대상에 대한 추상적인 집합입니다. 예를 들어 시스템 내부의 대상을 서로 다른 프로젝트 그룹이나 사용자 그룹으로 구분할 수 있습니다.흔한pod, 서비스, Replication controller, deployment 등은 모두namespace (기본값은default) 에 속하고, node,persistent volume,namespace 등 자원은namespace에 속하지 않습니다.

resourcequota


namespace는 추상적인 집합으로서 Resourcequota는 추상적인 집합에 대한 제한이고 Resourcequota는 사용자의 자원 사용량을 제한하는 메커니즘으로서 다음과 같은 자원 할당 설정을 가지고 있다.
  • 계산 자원, cpu와memory 포함
  • cpu, limits.cpu, requests.cpu
  • memory, limits.memory, requests.memory

  • 저장 자원, 저장 자원의 총량과 지정storage class의 총량을 포함한다.
  • requests.storage: 총 스토리지 자원(예: 500Gi
  • persistentvolumeclaims:pvc의 개수
  • .storageclass.storage.k8s.io/requests.storage
  • .storageclass.storage.k8s.io/persistentvolumeclaims
  • requests.ephemeral-storage와limits.ephemeral-storage(v1.8+ 필요)
  • 개체 수, 만들 수 있는 개체 수
  • pods, replicationcontrollers, configmaps, secrets
  • resourcequotas, persistentvolumeclaims
  • services, services.loadbalancers, services.nodeports


  • resourcequota를 설정하여 관련 자원을 만듭니다. 할당량을 초과하면 만들 수 없습니다

    [확장] 서비스 계정


    서비스 계정은pod의 프로세스가kubernetes API 또는 다른 외부 서비스를 호출하는 데 편리하도록 설계되었습니다
    서비스 계정 기능
  • 모든namespace는default 서비스 account
  • 를 자동으로 생성합니다
  • Token controller 검측 서비스account의 창설은 그들에게 secret
  • 을 창설한다.

    Serviceaccount demo

    apiVersion: v1
    
    kind: ServiceAccount
    
    metadata:
    
      name: default
    
      namespace: default
    
    secrets:
    
    - name: default-token-qffvz

    namespace에서 기본적으로 생성된 서비스account로 인해name 기본값은default이고 token controller에서 기본적으로 생성된secret으로 인해name 기본 형식은default-token-xxx
    Kube-apiserver 설정--admission-control, 설정admission controller, admission controller는 필터로 볼 수 있습니다. 그는 일부 정책에 따라 요청 데이터를 필터하거나 수정할 수 있습니다. 그 중 하나는 서비스 Account admission controller입니다.

    ServiceAccount admission controller


    ServiceAccount admission controller 가 설정된 경우:
    모든pod는 생성된 후에 spec.serviceaccountName을default로 자동으로 생성합니다. (다른 서비스account이 지정되지 않은 경우)
    Pod에서 참조하는 서비스 계정이 이미 있는지 확인합니다. 그렇지 않으면 Pod 생성을 거부합니다.
    Pod에서 이미지 Pull Secret을 지정하지 않으면 서비스 account의 이미지 Pull secrets를pod에 추가합니다
    모든pod 창설은 서비스 계정의token과ca.crt를 마운트합니다
    /var/run/secrets/kubernetes.io/serviceaccount/
    실제 작업:
    //test라는 namespace 만들기
    kubectl create ns test
    //namespace 생성 여부 보기
    kubectl get ns
    //default라는 서비스 계정이 존재하는지 보기
    kubectl get sa default –n test  -o yaml

    좋은 웹페이지 즐겨찾기