pod, deployment, service를 내부적인 목적에 따라서 세트로 묶어서 구분함
쿠버네티스는 시작할때 3가지 네임스페이를 만듦
default: 초기 기본 네임스페이스
kube-system: network나 dns를 위해 사용자들에서 분리해 낸 네임스페이스를 만듦, 실수로 삭제, 수정할 수 없도록 만듦
kube-public: 모든 유저가 사용하는 리소스들을 관리하는 네임스페이스
각 네임스페이스별로 사용할 수 있는 리소스의 양을 정해두고 사용할 수 있음
네임스페이스 안에서는 name으로 각 파드들을 호출할 수 있음
다른 네임스페이스에 존재하는 파드들은 '서비스네임.네임스페이이스.(서비스,파드등 구분).도메인'으로 구분함
ex)db-service.dev.svc.cluster.local
kubectl get pods --namespace=kube-system 등과같이 네임스페이별 조회가 가능함
ex) 네임스페이스를 정의한 파드 생성
- 네임 스페이스 생성
apiVersion: v1
kind: Namespace
metadata:
name: dev
- 파드 생성
apiVersion: v1
kind: Pod
metadata:
name: myapp
namespace: dev
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
* 네임스페이스 옵션을 주지 않고 kubectl의 기본 네임스페이스를 변경하는 방법
kubectl config set-context $(kubectl config current-context) --namespace='변경할 네임스페이스 이름'
* 네임스페이스별 리소스를 한정하는 방법
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: dev
spec:
hard:
pods: "10"
requests.cpu: "4"
requests.memory: 5Gi
limits.cpu: "10"
limits.memory: 10Gi
- kubectl create -f compute-quota.yaml
practice
1) How many Namespaces exist on the system?
- kubectl get namespaces
NAME STATUS AGE
kube-system Active 9m37s
default Active 9m37s
kube-public Active 9m37s
kube-node-lease Active 9m37s
finance Active 36s
marketing Active 36s
dev Active 36s
prod Active 36s
manufacturing Active 36s
research Active 36s
2) How many pods exist in the research namespace?
- kubectl get pods --namespace=research
NAME READY STATUS RESTARTS AGE
dna-1 0/1 CrashLoopBackOff 3 (47s ago) 100s
dna-2 0/1 Completed 4 (52s ago) 100s
3) Create a POD in the finance namespace.
- kubectl run redis --image=redis --namespace=finance
4) Which namespace has the 'blue' pod in it?
- kubectl get pod --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system local-path-provisioner-5d56847996-q9rxw 1/1 Running 0 15m
kube-system coredns-5c6b6c5476-t9zpp 1/1 Running 0 15m
kube-system helm-install-traefik-crd-bfqwt 0/1 Completed 0 15m
kube-system metrics-server-7b67f64457-9j5jt 1/1 Running 0 15m
kube-system helm-install-traefik-ksm2r 0/1 Completed 1 15m
kube-system svclb-traefik-1ea15943-ms9d7 2/2 Running 0 14m
kube-system traefik-56b8c5fb5c-xn7jg 1/1 Running 0 14m
dev redis-db 1/1 Running 0 6m28s
marketing redis-db 1/1 Running 0 6m28s
manufacturing red-app 1/1 Running 0 6m28s
marketing blue 1/1 Running 0 6m28s
finance payroll 1/1 Running 0 6m28s
finance redis 1/1 Running 0 115s
research dna-1 0/1 CrashLoopBackOff 6 (37s ago) 6m28s
research dna-2 0/1 CrashLoopBackOff 6 (33s ago) 6m28s
5) What DNS name should the Blue application use to access the database db-service in its own namespace marketing?
- kubectl get svc -n=marketing
blue-service NodePort 10.43.91.202 <none> 8080:30082/TCP 9m48s
db-service NodePort 10.43.78.223 <none> 6379:31890/TCP 9m47s
* Blue와 db-servcie는 같은 네임스페이스에 있으므로 단순하게 db-service:6379로 접근할 수 있음
6) What DNS name should the Blue application use to access the database db-service in the dev namespace?
- db-service.dev.svc.cluster.local
'Tools > K8S' 카테고리의 다른 글
Kubernetes ReplicaSet (0) | 2023.07.01 |
---|---|
Kubernetes Config (1) | 2023.06.17 |
Kubernetes Scheduling (0) | 2023.03.20 |
Kubernetes Services (0) | 2023.03.19 |
Kubernetes Core concept (0) | 2023.03.18 |