
1. 쿠버네티스 아키텍쳐
1) controlplane 구성 요소(pod)
* api-server - 명령 처리
* etcd - 저장소, 백업
* sched - 스케줄러
* control manager - 떠 있는 pod들 watch
* cloud control manager
2) worker 구성 요소
* kubelet
* container runtime
* kube-proxy
3) addon
* DNS(core DNS)
* CNI(calico)
* dashboard
* monitoring
* ...
2. 네임스페이스(Namespace)
네임스페이스? 자원을 격리하기 위한 클러스터 내에 추상적인 클러스터
1) 네임스페이스 관리
# 네임스페이스 생성
kubectl create ns myns
# 네임스페이스 확인
kubectl get ns
kubectl describe ns myns
# 네임스페이스 삭제
kubectl delete ns myns
# 기본 네임스페이스 변경(default)
[참고] 약어 확인 : kubectl api-resources
2) 컨텍스트 관리
컨텍스트? 클러스터 연결 프로필(cluster + user + namespace)
=> 모여져 있는 파일 = kubeconfig
# 컨텍스트 확인
kubectl config view
kubectl config get-context**s
-----------------------------------------------------------------------------------
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kubernetes-admin@kubernetes kubernetes kubernetes-admin default
testctx kubernetes kubernetes-admin
-----------------------------------------------------------------------------------**
# 컨텍스트 추가
kubectl config set-context mycontext \\
--cluster=**kubernetes** \\
--user=**kubernetes-admin** \\
--namespace=default # 기본 ns 지정함. 지정 안하면 default
# 컨텍스트 변경(스위칭)
kubectl config get-context
kubectl config use-context myctx
# 컨텍스트 삭제
kubectl config delete-context myctx
[참고] kubectx, kubens
kube*
kube* myctx
kube* -
[참고] (krew)kubectl ctx, kubectl ns
3. API 리소스 & API 버전
# kube API의 Kind와 Version 확인
kubectl api-resources
# kube API의 Version만 확인
kubectl api-version
# kubectl explain pod.spec.containers.image
# kubectl explain pod.spec --recursive
[참고] kubernetes.io > Documentation > 검색
수업 자료