- Kubernetes Cluster
- Kubernetes 설치 (Minikube)
- Kubernetes Cluster 배포
- Ansibgle + Kubernetes 연동
- CI/CD 프로세스
Kubernetes 소개
https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes
- 원래의 전통적인 방식에서는 OS위에 APP을 구동하였음.
- 각각의 VM에 운영체제를 두어서 서버를 분할하였다.
- 컨테이너 가상화, 운영체제를 공유할 수 있도록.
Cloud Native Architecture
Micro Service Architecture
CI/CD
Devops
컨테이너 가상화 기술을 사용했다는 것이 큰 특징임.
CNCF라는 단체가 있음.
https://landscape.cncf.io
Cloud Native Computing Foundation
컨테이너 가상화를 사용하기 위한. 관리 플랫폼.
쿠버네티스에 관하여
장점
- 컨테이너화 된 애플리케이션 구동
- 서비스 디스커버리와 로드밸런싱
- 스토리지 오케스트레이션
- 자동화된 롤아웃 롤백
- 자동화된 빈 패킹
- 자동화된 복구
- 시크릿과 구성관리
쿠버네티스 클러스터
Master 각각의 PC를 관리한 용도 스케줄, API 관리
Work Node 서버 각각
kubelet 이라는 걸 갖고 있음.
kube proxy라고 하는 노드가 네트워크 관리 유지를 해준다.
클라이언트가 요청했던 어떤 정보가 node 에 전달이 되면
Master가 Node 를 관리함
Node 안에는 Pod 의 단위로 관리가 됨.
Pod 이라는건 애플링케이션을 위해 서로 상호 작용하기 위한 컨테이너들의 패키징되어있는 형태
Service : PODS 그룹간에 로드밸런싱을 제공.
쿠버네티스 설치
VM을 이용해서 리눅스를 설치
Master => Worker Node 들을 구성한다.
https://github.com/joneconsulting/k8s/blob/master/install/kubernetes_install.md
쿠버네티스 설치 가이드
Master 한대, WorkerNode 2대
virtual box라는 프로그램을 이용해서 설치했음.
kubectl get nodes
쿠버네티스의 노드의 역할을 볼 수 있음. (master 와 none 2개를 볼 수 있음)
Vagrant 설치 : VM을 간단하게 설치하고 관리하게 해주는 tool이다.
MiniKube
간단하게 Kubernetes 를 사용할 수 있게 해줌.\
docker desktop 설치된 상태에서 Kubernetes 항목에서 Enable Kubernetes 를 체크해줌.
kubectl get nodes # 어떤 노드들이 어떤 역할을 하고 있는가.
kubectl get pods # 현재 가동중인 pod들을 볼 수 있음.
쿠버네티스 명령어
docker desktop 우측 상단 설정메뉴 kubernetes > enable kubernetes (윈도우, 맥 동일)
정상적으로 설치가 되면 좌측 하단에 kubernetes 모양도 보이게 될 것이다.
kubectl get nodes # 잘 작동되는 아이들 확인
kubectl get pods # pod 가 잘 작동되는지 확임
kubectl get deployments # namespace : default
kubectl get service # 사용중인 service 목록이 나옴
K8s 기본 명령어
# 노드 확인
kubectl get nodes
# 파드 확인
kubectl get pos
# 디플로이먼트 확인
kubectl get deployments
# 서비스 확인
kubectl get services
# Nginx 서버 실행
kubectl run sample-nginx --image=nginx --port=80
# 컨테이너 정보 확인
kubectl describe pod/sample-nginx
# 파드 삭제
kubectl delete pod/sample-nginx-XXXXX-XXXXX
# Scale 변경 (2개로 변경)
kubectl scale deployment sample-nginx --replicas=2
#Script 실행
kubectl apply -f sample1.yml
소스 코드 vi sample1.yml https://github.com/joneconsulting/jenkins_cicd_script/blob/master/k8s_script/sample1.yml