Skip to content

18.11.11

ByeongGil Jung edited this page Nov 11, 2018 · 1 revision

[18.11.11] 정리

Helm 을 앞서 배운 이유는 k8s 위에 어떻게 어플리케이션을 관리할 것인가를 알기 위함

  • 앞으로 각자 최소한 해야 할 것
    VM 을 centOS 버전으로 설치 (아마 7 버전)

  • k8s 설치
    (kubespray upstream 을 clone 받아서 설치 kubespray 는 Ansible 로 되어 있음


[ k8s 를 사용하고 나서의 방향성 ]

centOS 를 깔고 kubespray 를 통해 깐 환경을 기본으로 세팅 할 것.
그 위에 application 을 올려봐야 함.
-> 그것을 helm 으로 올릴 것임

(k8s 에 application 을 올릴 때(컨테이너 위에) manifest.yml 로 관리함.
-> k8s 의 객체들에 대한 명세서가 정의되어 있음)


[ k8s 위의 helm 설치 ]

helm 에선 template 에서 패키지를 관리하는 것이 들어있음 (??)
helm 을 이용하면 쉽게 k8s 에 올릴 수 있음

(설치)

  1. Helm 을 github 에서 clone
  2. Helm 바이너리를 받아서 로컬에 받아서 명령어를 내릴 것임
    (Helm 은 Go 로 이뤄져 있고, binary 를 가져와서 /usr/local.bin/ 밑에 내릴 것임 -> client 역할)

사용자 컴퓨터에 helm binary 설치 (-> client 역할)
init 명령어를 하면 로컬에 잇는 사용자의 계정에 .kube/config 파일에서 어느 클러스터를 바라보고 있는지를 확인함.
그리고 그 클러스터 안에 tiller 라는 pod 을 띄움
-> 이것은 helm 의 서버 역할을 함
-> k8s 의 api 를 찔러서 helm client 를 내려서 렌더링 하여 k8s 에 application 을 배포함

즉, 사용자는 다른 클러스터를 바라보게 하고 싶으면 config 파일을 또 만들면 됨


[ 추가 정보 ]

Helm 이 기본적으로 제공하는 repository ?
-> Nginx

+)
kubeadm 은 k8s 클러스터를 management 하는 툴임

클러스터는 업데이트 하기가 조금 어려움
join 등을 하면 새로운 노드가 붙고 등등 …
(최소한 가상머신 두 대가 필요할 것임)

+)
kubeadm 을 해야하는 이유 ?
지금은 kubeadm 을 사용하지 않고 배포를 함
즉, kubelet 바이너리를 다운받아 배포하고, 막 그런 설정들을 Ansible 이 함

kubeadm 의 최초 구축시도 위와 동일한 역할을 함. (막 조인하고 등등)
kubeadm 이 k8s 에서 최근 굉장히 안정화 되고 있음.
(현재 kubespray 의 kubelet 의 ansible 을 활용하지만, 내부적으론 kubeadm 이 많이 돌아감.
-> 아마 다음 버전부턴 kubeadm 으로 바뀔 수도 있음)

게다가 kubeadm 은 관리기능까지 있음.
(즉, Ansible 을 앞으로 걷어내겠다는 취지 ?? )


[ 기타 명령어 ]

모든 설정파일은 /etc/ 에 있음

만약 taco 로 올릴 떄 확인 명령어 ?
kubectl get cm -n 이름 ?
kubectl get cm -n 이름 cinder -o yaml
kubectl get cm -n 이름 cinder ??? (-> 에디터가 열림 ??)
(명령어 까먹음 … )

만약 cinder 등을 죽이면 edit 했던 config 로 다시 뜰 것임
helm 에선 values 에 돼 있을 것이고, 이를 바꾸던지 Override 해야 함
(Override 하려면 이 방법도 알고 있어야 함)

+) Helm tiller 가 렌더링을 해 줌

kubectl label nodes kubernetes-control-plane=enabled –all –overwrite
kubectl label nodes ceph-mds=enabled --all --overwrite
kubectl label nodes ceph-mon=enabled --all --overwrite


[ 과제 ]

영균, 병길 : kubespray 를 발표
(구성, 사용법, Ansible 사용법 // v 2.7 이 cubeadm ?? 을 지원 안함. 하지만 stable 중심으로 (v2.7로) 조사 할 것)
ansible 의 설정대로 k8s 를 배포함
extraBerse.yml 에 k8s 의 버전 등 다양한 설정을 할 수 있음
(기본 calico 버전으로 할 것)
-> 기본 동작이 어떻게 되는지

진수, 하영 : helm 의 차트에 대해 분석
chart 를 설치 해보고, 어떻게 구성되어 있는지, chart 의 템플릿 밑에
go-template 언어로 구현되어 있는데, 이 언어에 대한 설명

직접 하나의 어플리케이션을 고르고, 설치해보고, 그 안의 파일들을 최대한 디테일하게 설명

명수, 진성 :
kubeadm 을 사용하여 k8s 설치
-> kubeadm 이 뭔지, 명령어는 뭐가 있는지, 구조 등

kubeadm 은 k8s 의 버전을 따라감. (아마 1.12.2)
-> 가장 최신의 stable 한 버전을 할 것

Clone this wiki locally