Kubernetes/kubectl 시작
쿠버네티스 - namespace의 정의
amelia-suyeon
2023. 6. 8. 21:38
[namespace] 의 개념 및 의미
kubectl create namespace
만약에, namespace를 생성할 때, 여러가지로 만들 수 있음.
ex) pink, black, purple 의 namespace를 생성한다면, 이 중 하나를 지정하여 prd, dev, beta test에서 사용가능함!
즉 물리클러스터는 하나지만, 여러 개 인것 처럼 만들어서 작동 가능!!!
위와 같이 각각의 namespace를 여러개 만들어서 실제 namespace는 한 번 호출하고 뒤에 여러개 중 하나의 스페이스를 지정해준다!
-> 만약 어떤 계열사에서 면세점, 백화점, 비행기 예약 등등의 웹페이지를 운영하는 직무를 맡았을 때, 하루 동안 면세점 페이지를 수정, 테스트 배포의 순으로 진행 -> namespace 고정함!
결론적으로 통합 솔루션에서 꼭 필요함!
[namespace 생성 및 사용하기]
- namespace 생성
- kubectl create namespace pink
- kubectl get namespace -> 어떤 namespace가 있는지 확인 가능(방금 생성 한것도 있는지 가능)
- yaml
- kubectl create namespace black --dry-run -o yaml > black-ns.yaml -> yaml 파일 미리 생성 가능한지 확인 후, yaml 형식의 파일 생성
- vim black-ns.yaml -> vi 편집기를 통해서 내용 수정 할 것 (필요한 container, name, image 등등)
- kubectl create -f black-ns.yaml -> yaml 파일 실행 하여 띄우기!
- namespace 관리
- kubectl get namespace
- kubectl delete namespace
[실습] master 노드에서 진행 - 먼저 어떤 namespace가 있는 지 확인하고, 친해지기
master = control-plane 에서 확인 하는 법
1. kubectl get namespaces
→ 위 4개는 이미 설치할 때, 설치되어 있음
default namespace : 베이스가 되고 있는 namespace를 말하는 것
nginx로 만들어진 것이 있기 때문에 webserver가 등장함
(yaml 파일의 경우, 들여쓰기가 중요함)
default를 찾고 싶을 때 옵션으로 넣어주면 됨 (-n = namespaces 약자)
2. kubectl get pods -n kube-system
kube-system(kubernetes 운영 환경에서 필요로 하는 pods)에서 동작중인 pods를 알고 싶을 때
3. 위 2개를 모두 보는 것
kubectl get pods --all-namespaces
-> 모든 네임스페이스가 보이기 때문에, 관리가 힘듬
(어떤 파드가 어플리케이션인지? 운영? 개발? 구별 힘듬)
[실습] - master 에서 실제로 namespace 생성
1. cli : kubectl create namespace purple
2. yaml : 기존에 yaml 파일이 존재해야 함, 실제 생성하기 전에 여부를 알 수 있는 명령어
(yaml형태로 볼 수 있음, 만약 -o 뒤에 json으로 칭하면, json 파일로 볼 수 있음 )
--dry-run : 실행은 아니며, yaml 명세서 얻기 위해 사용
<2-1 순서 부터 시작 >