<쿠버네티스> 쿠버네티스 시작하기

노설·2022년 7월 6일
0

쿠버네티스

목록 보기
1/5

🔴 쿠버네티스란?

  1. 운영수준의 컨테이너 오케스트레이션의 일종 (docker에서는 swarm)
  2. 자동화된 컨테이너 배포, 스케일링 및 관리 (yaml 파일로 주면 어플리케이션 띄우고 이미지 기반으로 컨테이너 띄우고 scale up/down 한다.)
  3. 네트워크, 로드 밸런싱과같은 기능이 쿠버네티스가 도커 스웜에 비해 자동화된 기능을 제공해준다.
  4. 구글이 만들어서 사용하며 검증이 되어있음 ( 구글이 일주일에 수십억 개의 컨테이너들을 운영하게 해준 것에 따라 디자인되었음)
  5. Go Language (97%),Shell(3%),Python(1%)
  6. 컨테이너 테크놀러지에서 가장 많이 스이는 오케스트레이터
  7. Cloud Native Computing Foundation
  8. 간단한 설명 클릭1 클릭2

🔴 클라우드 네이티브 컴퓨팅 파운데이션(CNCF)

  1. 클라우드 네이티브 컴퓨팅 파운데이션(리눅스 파운데이션 산하)에서 수많은 소프트웨어를 관리하는데 그 안에 쿠버네티스가 있음
  2. 결국은 CNCF의 이 도구들은 소프트웨어를 개발해서 해결해야하는 문제 지향적인 반면에 클라우드 네이티브인 경우 문제 지향적인 소프트웨어들이 대거 빠르고 효율적으로 안정적인 운영이 필요하다는 점에서 이해가 필요함
  3. CNCF Cloud Native Interactive Landscape-CNCF에서 관리하는 소프트웨어들

🔴 쿠버네티스 매니징

  1. 쿠버네티스와 그를 유지관리하는 CNCF
  2. 쿠버네티스를 개발할때 사용한 Go
  3. 기본적으로 도커 스웜의 역할을 함
  4. 컨테이너들의 클러스터를 배포, 관리
  5. 어플리케이션을 배포할수 있는 운영할수있는 도구
  6. 인프라 스트럭쳐 코드로 yaml 파일
  7. 스케일업, 다운으로 용량 관리
  8. 로드밸런싱, 죽었을때 다시 살리는, 롤백, 네트워킹 등이 도커보다 더 강화되어있음
  9. 도커처럼 하드웨어 독립적으로 동작함

성공적인 운영의 예시 포켓몬Go

🔴 쿠버네티스 설치 가이드

클릭

🔴 시작 (by katakoda)

  • katakoda에서 손쉽게 쿠버네티스를 시작해 볼 수있는 가이드를 제공한다.
~$ minikube version
~$ minikube start --wait=false
* minikube v1.25.2 on Ubuntu 18.04
* Kubernetes 1.23.3 is now available. If you would like to upgrade, specify: --kubernetes-version=v1.23.3
* Using the virtualbox driver based on existing profile
* Starting control plane node minikube in cluster minikube
* minikube 1.26.0 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.26.0
* To disable this notice, run: 'minikube config set WantUpdateNotification false'

* Restarting existing virtualbox VM for "minikube" ...
* Preparing Kubernetes v1.23.1 on Docker 20.10.12 ...
  - kubelet.housekeeping-interval=5m
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Verifying Kubernetes components...
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

~$ kubectl create deployment first-deployment --image=katacoda/docker-http-server
deployment.apps/first-deployment created

~$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
first-deployment-54c6c6b5bc-vrqhk   1/1     Running   0          72s

~$ kubectl expose deployment first-deployment --port=80 --type=NodePort 
service/first-deployment exposed
// 이 컨테이너들이 port80을 통해서 외부와 통신을 위해 NodePort라는 서비스를 사용한다. 

//port를 열어주는 export 작업
~$ export PORT=$(kubectl get svc first-deployment -o go-template='{{range.spec.ports}}{{if.nodePort}}{{.nodePort}}{{"\n"}}{{end}}{{end}}') 
~$ echo "Accessing host01:$PORT" 
Accessing host01:32694

//접속
~$ curl host01:$PORT
<h1>This request was processed by host :  first-deployment-54c6c6b5bc-vrqhk</h1>

예제를 실행함으로써 도커와 쿠버네티스의 차이를 알아보았다.
도커의 경우, 손으로 입력해보고 무얼해야하는지 CLI를 확인했었다.
쿠버네티스는 복잡한 일을 많이 제공해준다. 대시보드라는 기능을 제공한다.

🔴 쿠버네티스 Dashboard

~$ minikube addons enable dashboard
  - Using image kubernetesui/dashboard:v2.3.1
  - Using image kubernetesui/metrics-scraper:v1.0.7
* Some dashboard features require the metrics-server addon. To enable all features please run:

	minikube addons enable metrics-server	


* The 'dashboard' addon is enabled

//대시보드라는 서비스를 deploy한다.
//dockre-compose를 실행한것과 비슷하다.
~$ kubectl apply -f /opt/kubernetes-dashboard.yaml

// 정상적으로 작동하는지 확인
~$ kubectl get pods -n kubernetes-dashboard -w
NAME                                        READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-58549894f-gd957   1/1     Running   0          4m12s
kubernetes-dashboard-ccd587f44-bsnnl        1/1     Running   0          4m12s

🔴 katakoda의 설치 가이드에 맞춰서 접속

profile
IT업계에서 노설 이라는 이름이 보이면 그건 무조건 나.

0개의 댓글