Namespace
네임스페이스는 클러스터 자원을 (ResourceQuota를 통해) 여러 사용자 사이에서 분배하는 방법이다.
쿠버네티스에서, 네임스페이스 는 단일 클러스터 내에서의 리소스 그룹 격리 메커니즘을 제공한다.
네임스페이스는 여러 개의 팀이나, 프로젝트에 걸쳐서 많은 사용자가 있는 환경에서 사용하도록 만들어졌다.
사용자가 거의 없거나, 수 십명 정도가 되는 경우에는 네임스페이스를 전혀 고려할 필요가 없다.
네임스페이스는 이름의 범위를 제공한다.
리소스의 이름은 네임스페이스 내에서 유일해야하지만, 네임스페이스를 통틀어서 유일할 필요는 없다.
동일한 소프트웨어의 다른 버전과 같이 약간 다른 리소스를 분리하기 위해 여러 네임스페이스를 사용할 필욘 없다.
동일한 네임스페이스 내에서 리소스를 구별하기 위해 레이블을 사용한다.
쿠버네티스는 네임스페이스끼리 통신할 때 텍스트 주소로 통신하기 때문에 coreDNS가 필수다.
core dns가 이름으로 된 namespaces를 ip로 변환해주기 때문이다.
https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/namespaces/
설정/구성
master node = docker1
local node = docker2
alias k='kubectl'
namespace란 클러스터 하나를 여러개의 논리적인 단위로 분할하여 사용하는것이다.
다음과 같이 모든 포드를 조회하면 kube-system 네임스페이스의 구성요소들도 함께 볼수 있다.
이전 실습때 만든 디플로이먼트 컨테이너 3쌍둥이도 default 네임스페이스에 할당되어있는 것을 볼 수 있다.
k get pods -A
네임스페이스 생성
k create namespace n1
k create namespace n2
k create namespace n3
네임스페이스 조회
k get namespace
처음에 확인했다싶이 그냥 네임스페이스를 지정하지 않고 컨테이너를 실행하면 default로 간다.
k run web1 --image=nginx
default 네임스페이스에 해당하는 컨테이너만 조회
k get pods -n default
k run web1 --image=nginx --namespace=n1
n1네임스페이스에 해당하는 컨테이너만 조회
k get pods -n n1
다음과 같이 이름이 똑같더라도 다른 네임스페이스니까 동시 실행 OK다.
이를 yaml파일로 만들어서 확인해보자.
k run web1 --image=nginx --namespace=n1 --dry-run -o yaml > n1.yaml
파일 안에 네임스페이스에 대한 정보가 들어있다.
vi n1.yaml
'Kubernetes' 카테고리의 다른 글
kubernetes Probe (0) | 2022.12.27 |
---|---|
kubectl config 명령어 (클러스터 context 변경) (0) | 2022.12.27 |
Kubernetes Resource 관리 (0) | 2022.12.22 |
Kubernetes 기본 명령어 (0) | 2022.12.21 |
Kubernetes image pull error (0) | 2022.12.20 |