
클러스터에 pod, service, deployment 같은 개체를 생성할 수 있었다.
K8S에 논리적인 클러스터 구성하는것이 Namespace
쿠버네티스가 자동으로 생성하는 Namespace :
kube-system : 네트워킹 솔루션, DNS 서비스에 관한 네임스페이스Default : 기본 네임스페이스kube-public : 모든 사용자가 사용할 수 있어야 할 리소스사 생성되는 곳사용자가 실수로 서비스에 필요한 개체들을 삭제하는것을 방지하기 위해 클러스터 시작 때 kube-system이란 이름의 다른 네임스페이스로 생성함
$ mysql.connect(“db-service”)
$ mysql.connect(“db-service.dev.svc.cluster.local”) // 다른 네임스페이스의 db 서비스에 접근할때
mysql.connect(“db-service.dev.svc.cluster.local”) DNS의 마지막 부분을 보면 cluster.local 즉, 기본 도메인 이름이다.svc는 서비스를 위한 하위 도메인 dev는 네임스페이스 이름db-service는 service 이름1). $ kubectl get pods --namespace=kube-system
2). $ kubectl create -f pod-definition.yaml --namespace=dev
3). $ kubectl get pod --all-namespaces
1).
dev 네임스페이스에서 생성되도록 하는 명령어이다.# pod-definition.yaml
apiVersion: v1
kind: pod
metadata:
name: myapp-pod
namespace: dev
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
metadata 아래 namespace 를 선언하여 생성될 namespace를 지정한다# namespace-dev.yml
apiVersion: v1
kind: Namespace
metadata:
name: dev
$ kubectl create -f namespace-dev.yaml
$ kubectl create namespaces dev
defaultkubectl get pods --namespace=dev : dev 네임스페이스에 존재하는 pod 조회$ kubectl config set-context $(kubectl config current-context) --namespace=dev
$ kubectl get pod
# compute-quota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: dev
spec:
hard:
pods: “10”
request.cpu: “4”
request.memory: 5Gi
limits.cpu: “10”
limits.memory: 10Gi
$ kubectl create -f compute-quota.yaml