자격증/CKA

[CKA] Udemy 41. Namespaces

14ben 2024. 7. 2. 23:38
728x90

Kubernetes 네임스페이스

 

네임스페이스의 개념

  • 네임스페이스를 이해하기 위해 다음과 같은 비유를 사용
    • 두 명의 마크라는 이름을 가진 소년이 있음.
    • 구분을 위해 각자의 성(스미스, 윌리엄스)으로 부름.
    • 각 소년은 다른 집에 속해 있음.
    • 각 집 안에서는 단순히 이름으로만 소통
    • 집 밖에서는 전체 이름을 사용해 소통
    • 각 집은 자신만의 규칙과 자원을 가짐

 

 

 

Kubernetes의 네임스페이스

  • 이러한 집들은 Kubernetes의 네임스페이스와 같음.
  • 지금까지 우리는 기본 네임스페이스에서 작업해 왔음.
    • 기본 네임스페이스는 클러스터가 처음 설정될 때 자동으로 생성됨.

  • Kubernetes는 내부 목적을 위한 네임스페이스를 따로 생성함
    • kube-system: 네트워킹 솔루션, DNS 서비스 등을 위한 네임스페이스
    • kube-public: 모든 사용자에게 공개되어야 하는 리소스를 위한 네임스페이스

 

 

네임스페이스 사용의 필요성

  • 작은 환경이나 학습 목적이라면 기본 네임스페이스에서 작업해도 무방함.
  • 하지만, 엔터프라이즈 또는 프로덕션 환경에서는 네임스페이스 사용을 고려해야 함.
  • 같은 클러스터에서 개발과 프로덕션 환경을 분리하고 싶다면,
  • 각 환경에 대해 다른 네임스페이스를 생성할 수 있음.
    • 개발 환경에서 작업할 때 실수로 프로덕션 리소스를 수정하지 않도록 보장함.
    • 각 네임스페이스는 자체적인 정책과 자원 할당량을 가질 수 있음.

 

 

네임스페이스 내 리소스 접근

  • 네임스페이스 내에서는 단순히 이름으로 리소스에 접근할 수 있음.
    • 예: 웹 앱 파드가 DB 서비스에 접근할 때, 단순히 DB 서비스라는 이름으로 접근 가능.
  • 다른 네임스페이스의 서비스에 접근하려면 전체 이름을 사용해야 함.
    • 예: servicename.namespace.svc.cluster.local 형식.
    • 예시: dbservice.dev.svc.cluster.local.

 

 

 

네임스페이스 운영

1. Pod 확인

 

 

 

2. Pod 생성

 

 

3. 새로운 네임스페이스 생성

 

 

4. 네임스페이스 전환

 
 

 

5. 자원 할당량 설정

  • 리소스 쿼터 정의 파일 사용

 

 

요약

  • 네임스페이스는 Kubernetes 클러스터 내에서 리소스를 격리하고 관리하기 위한 강력한 도구
  • 기본, kube-system, kube-public 네임스페이스는 자동으로 생성
  • 네임스페이스를 사용하면 리소스를 격리하고, 특정 정책과 자원 할당량을 설정할 수 있음
  • 명령어와 정의 파일을 사용해 네임스페이스를 생성하고 전환할 수 있음.

 

 

 

 

728x90