210630 TIL
쿠버네티스
컨테이너 -> 파드 -> 디플로이먼트
MSA(MicroService Architecture)
monolithic architecture
선언적인 시스템(명시된 상태에 맞추려고 시스템을 감시하고 상태를 변경하는 시스템)
1.2.코드로 쉽게 구성하는 쿠버네티스 랩 환경
특이사항은 wsl 안에서는 vagrant를 못씀.. 그렇구나 음..
버추얼박스도 설치하고 vagrant도 설치하고
git clone 해놓은 폴더 안에서
vagrant up 하면 쫙뜸
id:root/pw:vagrant
git clone http://github.com/sysnet4admin/_Lecture_k8s.starterkit
2.1.배포를 통해 확인하는 파드(Pod)
kubectl run nginx --image=nginx
kubectl get pod -o wide
2.2.파드를 외부에서도 접속하게 하는 서비스(Service)
kubectl get service
kubectl get nodes
kubectl expose pod nginx --type=NodePort --port=80
2.3.파드와 디플로이먼트(Deployment) 차이
예전 버전에서는 kubectl run으로 pod와 deployment를 모두 배포할 수 있지만 요새 버전(1.18 이상)은 pod만 가능하고 kubectl create 또는 kubectl apply를 통해 pod와 deployment를 모두 배포할 수 있다.
kubectl apply는 파일이 필요하다(manifest, YAML 파일 또는 json 파일)
kubectl create deployment deploy-nginx --image=nginx
kubectl scale deployment deploy-nginx --replicas=3
kubectl get pods를 하면
[내가정한이름]-[deployment이름]-[pod이름] 이렇게 자동으로 뒤에 구별되도록 이름이 뜬다.
2.4.외부로 노출하는 더 좋은 방법인 로드밸런서(LoadBalancer)
kubectl expose deployment deploy-nginx --type=NodePort --port=80
MetalLB 라는걸 이용해서 로드밸런서 형태로 배포 가능.
kubectl apply -f ~/_Lecture..../chr2/2.4/metallb.yaml
kubectl create deployment chk-hn --image=sysnet4admin/chk-hn
kubectl scale deployment chk-hn --replicas=3
kubectl expose deployment chk-hn --type=LoadBalancer --port=80
3.1.쿠버네티스 구성 요소 확인(+EKS,AKS,GKE 관리형 쿠버네티스)
default namespace와 kube-system namespace
metallb-system도 따로 나누어져있다
kubectl get pods -n kube-system
AWS - EKS(Elastic Kubernetes Service)
Azure - AKS(Azure Kubernetes Service)
GCP - GKE(Google Kubernetes Engine)
관리형 쿠버네티스
쿠버네티스가 돌아가게끔 만들어주는 주요한 시스템들은 네임스페이스가 따로 설정이 되어 있다.
4.3.쿠버네티스 마스터 노드의 구성 요소에 문제가 생겼다면
kubectl get pods -n kube-system -o wide
댓글을 작성해보세요.