kubernetes 설치

| 2018년 5월 30일 | 0 Comments

 

 

kubernetes 설치

 

설치 원문 링크

https://kubernetes.io/docs/setup/independent/install-kubeadm/#before-you-begin 

 

 

환경

VirtualBox VM – 1CORE / 1G RAM

Ubuntu 16.04 LTS 64BIT

 

 

hostname 설정

서버1 : kubernates-master

서버2 : kubernates-node1

 

설치

# 스왑오프

swapoff -a

 

# 도커 설치

apt-get update

apt-get install -y docker.io

 

# 쿠버네티스 설치

apt-get update && apt-get install -y apt-transport-https curl

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add –

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list

deb http://apt.kubernetes.io/ kubernetes-xenial main

EOF

 

apt-get update

apt-get install -y kubelet kubeadm kubectl

 

데몬 재시작

systemctl daemon-reload

systemctl restart kubelet

 

 kubelet에서 사용하는 cgroup 드라이버 구성

# 도커 cgroup drive 확인

docker info | grep -i cgroup

 

# /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 라인추가

Environment=”KUBELET_CGROUP_ARGS=–cgroup-driver=cgroupfs” or 

Environment=”KUBELET_CGROUP_ARGS=–cgroup-driver=systemd”

 

# cgroup driver 변경

sed -i “s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g” /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

 

도커와 쿠버네티스의 cgroup 의 드라이버 구성이 맞지 않으면 아래와 같은 에러 발생

failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: “cgroupfs” is different from docker cgroup driver: “systemd”

: 설치 및 데몬 재시작에서 별다른 에러 발생이나 로그가 없다면 cgroup 드라이버 설정은 SKIP 해도 될듯 하다.

 
 
마스터로 사용할 서버와 노드로 사용할 서버 위와 같이 동일하게 설치해준다.
 
 
 
[마스터]
 

마스터 초기화 하기

kubeadm init

 

output

# 쿠버네티스 설치 완료

Your Kubernetes master has initialized successfully!

 

# 클러스터를 사용하려면 일반 사용자에서 아래 명령어 실행이 필요하다

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube

  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

  sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

# 클러스터에 네트워크 배포가 필요하다

You should now deploy a pod network to the cluster.

Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:

  https://kubernetes.io/docs/concepts/cluster-administration/addons/

 

# 아래 명령어로 노드에서 조인이 가능하다

You can now join any number of machines by running the following on each node

as root:

  kubeadm join 마스터아이피:6443 –token pq00mz.q5fsi336qn5cpuyx –discovery-token-ca-cert-hash sha256:1045412e3139d5cb1b559909fa7d0d5e90eca06465ab8c9eb335eedc3e6417d9

 

네트워크 배포 예제

kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml

: 위는 calico 라는 네트워크를 배포하는 명령어

 

[노드]

 

클러스터 조인

kubeadm join 마스터아이피:6443 –token pq00mz.q5fsi336qn5cpuyx –discovery-token-ca-cert-hash sha256:1045412e3139d5cb1b559909fa7d0d5e90eca06465ab8c9eb335eedc3e6417d9

: 클러스터 조인 명령어는 마스터 초기화 (kubeadm init) 시 출력되는 화면에서 볼수 있다.

 

output

# 노드가 클러스터에 조인되었다.

This node has joined the cluster:

* Certificate signing request was sent to master and a response

  was received.

* The Kubelet was informed of the new secure connection details.

Run ‘kubectl get nodes’ on the master to see this node join the cluster.

 

[마스터]

 

노드들이 제대로 조인되었는지 확인

kubectl get nodes

 

output

NAME                STATUS     ROLES     AGE       VERSION

kubernates-master   NotReady   master    19m       v1.10.3

kubernetes-node1    NotReady   <none>    6m        v1.10.3

: 쿠버네티스 설치된 서버 사양에 따라 시간이 좀 걸리기도 한다

: NotReady 상태로 계속 머물러 있다면 마스터에서 네트워크 배포가 되지 않아서인 경우가 많다.

 

모든게 문제 없이 설치가 진행 되었다면 아래와 같은 메세지가 출력되어야 한다

NAME                STATUS    ROLES     AGE       VERSION

kubernates-master   Ready     master    29m       v1.10.3

kubernetes-node1    Ready     <none>    16m       v1.10.3

: STATUS 에 상태가 모두 Ready 라고 출력되어야 한다.

 

STATUS 가 모두 Ready 라고 출력되면 설치가 정상적으로 이뤄어 진것이다.

 

Category: 가상화/클라우드

김 진현

About the Author ()

보안이란?