Chapter5 쿠버네티스 입문 182p
쿠버네티스란?(https://kubernetes.io/)
쿠버네티스는 컨테이너 운영을 자동화하기 위한 컨테이너 오케스트레이션 도구로 구글의 주도로 개발됐다. 많은 수의 컨테이너를 협조적으로 연동시키기 위한 통합 시스템이며 이 컨테이너를 다루기 위한 API 및 명령행 도구 등이 함께 제공된다.
컨테이너를 이용한 배포 외에도 다양한 운영관리 업무를 자동화할 수 있다.
도커 호스트 관리, 서버 리소스의 여유를 고려한 컨테이너 배치, 스케일링, 여러 개의 컨테이너 그룹에 대한 로드 밸런싱, 헬스체크 등의 기능
쿠버네티스의 가장 큰 특징은 다양한 부품(리소스)을 조합해 유연한 애플리케이션을 구축할 수 있다는 점이다.
구글클라우드 플랫폼(GCP) 에는 GKE(Google Kubernetes Engine)라는 컨테이너 매니지드 서비스가 있다.
이외에도 애저에는 AKS, AWS에는 아마존 EKS가 있다.
도커와 쿠버네티스의 역할
도커는 컨테이너를 관리하는 데몬인 dockerd와 명령행 도구로 구성도니다.
스웜은 여러 대의 호스트를 묶어 기초적인 컨테이너 오케스트레이션 기능을 제공하는 도커 관련 기술이다.
쿠버네티스는 스웜보다 충실한 기능을 갖춘 컨테이너 오케스트레이션 시스템이자 도커를 비롯해 여러가지 컨테이너 런타임을 다룰 수 있다.
쿠버네티스는 컴포즈/스택/스웜의 기능을 통합해 더 높은 수준의 관리 기능을 제공하는 도구라고 보면 된다.
로컬 PC에서 쿠버네티스 실행
-> 이미 깔린 도커 환결설정에서 쿠버네티스 enable 체크박스 해주고, install
kubectl 설치
https://storage.googleapis.com/kubernetes-release/v1.10.4/bin/windows/amd64/kubectl.exe
쿠버네티스에 배포된 컨테이너 정보를 보여주는 대시보드 설치
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.3/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl apply -f kubernetes-dashboard.yaml
kubectl convert -f ./kubernetes-dashboard.yaml --output-version apps/v1beta2
잘 설치 됐는지 확인
kubectl get pod --namespace=kubesystem -l k8s-app=kubernetes-dashboard
(~190p) 쿠버네티스 대시보드 설치부터 잘 안 됨
책내용은 에러사항이 있는데 구버전인 거 같아서
구글링 해서 대시보드 설치함
설치
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
설치확인
kubectl get services -n kubernetes-dashboard
실행(새로운 터미널에서)
kubectl proxy
내 대시보드 확인가능
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
대시보드 수정
kubectl edit services kubernetes-dashboard -n kubernetes-dashboard
여기서 spec.type이 ClusterIP로 되어있는데 이것을 NodePort로 변경
접속을 해보자 {hostip}:30212
hostip 확인은 kubectl get nodes -o wide 로 node의 ip를 확인하면 된다.
대시보드 서비서 접속하기
모든것이 정상적으로 설정이 되었다면 login 화면으로 접속이 된다.
apiserver에 접근하여 클러스터 환경의 자원들을 가져와 대시보드를 꾸미려면 권한이 필요하다.
Role-based access control (RBAC)를 기반으로 apiserver에 인증, 권한을 관리하는데 쿠버네티스 대시보드에 로그인하고 올바른 인증을 거쳐야만 정상적으로 대시보드를 사용할 수 있다.
모든 ServiceAccount는 apiserver에 접근하기위하여 secret을 가지고 있고 이 안에는 Bearer Token값이 있다.
kubectl describe serviceaccount kubernetes-dashboard -n kubernetes-dashboard
http 프로토콜을 사용하여 인증하는 여러가지 방법 중 쿠버네티스 대시보드에 접속하기위해서 Bearer Token을 사용해 보자.
kubectl describe secret [토큰값 입력] -n kubernetes-dashboard
토큰 받기
https://kubernetes.io/docs/reference/access-authn-authz/authentication/ 참조
쿠버네티스 리소스 정리(192p)
쿠버네티스 아키텍처
쿠버네티스 큰 아키텍처
가상화를 거쳐 컨테이너 배포시대