kubernetes를 이용한 cluster 구성 - 3 

Master init

config 파일을 통해 상세한 설정이 가능하다.


kubeadmin.config.yml  생성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# cat <<EOF >kubeadm.config.yaml
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
  advertiseAddress: 192.168.128.88            // master ip
etcd:
  image: google_containers/etcd-amd64:3.1.11  // etcd image repository path
kubeProxy:
  bindAddress: 192.168.128.88                 // master ip
networking:
  serviceSubnet: 192.96.0.0/12                // service subnet cdir
  podSubnet: 192.244.0.0/16                   // pod subnet cdir
kubernetesVersion: v1.9.2
imageRepository: google_containers            // image repository path
EOF
cs

kubeadm init

master node init

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ kubeadm init --config kubeadm.config
  
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 -/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 --token 3bbb24.47cc21d7d6e88360 192.168.128.88:6443 --discovery-token-ca-cert-hash sha256:322efe09538cb8a1656069da216b46aa7de03eec9b00f990599d1d4e19113dba
  
cs


root 가 아닌 유저가 kubectl을 사용하기 위해선 아래와 같은 커맨드를 실행해야 한다.

1
2
3
$ mkdir -p $HOME/.kube
$ sudo cp -/etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
cs


또한 kubeadm init 을 통해 생성된 join 명령어를 통해 각 node에서 마스터로 join할 수 있다.


1
2
 
  kubeadm join --token 3bbb24.47cc21d7d6e88360 192.168.128.88:6443 --discovery-token-ca-cert-hash sha256:322efe09538cb8a1656069da216b46aa7de03eec9b00f990599d1d4e19113dba
cs


Posted by 사용자 guru_k

댓글을 달아 주세요

kubernetes를 이용한 cluster 구성 - 2

kubernetes cluster 구성을 위해 필요한 Docker 와 Kubernetes 설치 및 설정에 대하여 진행 하겠습니다.


모든 구성은 ubuntu 16.04.4 LTS 환경에서 진행하였습니다.

docker 설치

1
2
3
4
5
6
7
8
9
10
11
12
 # Docker Installation
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
  
curl --insecure -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
 
 # Docker authority
sudo usermod -aG docker $USER
cs

 Kubernetes 는 docker container를 실행하기 때문에 docker를 설치해야합니다.


Kubernetes 설치


1
2
3
4
5
# Kubernetes Installation
sudo curl --insecure -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add
sudo echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl kubernetes-cni
cs



초기 설정

swap off (all node)

kubernetes의 문서를 살펴보면 모든 node의 swap을 off 해야 합니다. 그렇지 않으면 kubelet 실행이 실패할 수 있습니다.
 
1
2
3
# Swap Off
# vi /etc/fstab   # /etc/fstab에서 swap 을 완전히 off 합니다.
sudo swapoff -a   # swapoff
cs



set ipv4.ip_forward (master node)


ipv4.ip_forward를 사용하기 위해 master에 한해서 ipv4.ip_forward를 활성화 합니다.

1
2
3
4
#ipv4.ip_forward 설정 확인
cat /etc/sysctl.conf | grep "net.ipv4.ip_forward"
#net.ipv4.ip_forward=1 이 주석처리 되어있다면 주석을 풀어준 후
sysctl -p  # reload
cs



Posted by 사용자 guru_k

댓글을 달아 주세요

Kubernetes, 또는 쿠버네티스, 또는 간단히 "큐브(kube)"는 Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼입니다.


Kubernetes를 이용하여 클러스터 구성을 진행하는 내용을 포스트 하려고 합니다.


Kubernetes에 대한 자세한 내용은 

https://kubernetes.io/docs/reference/ Kubernetes 홈페이지에서 확인할 수 있습니다.


이 cluster 구성 예제는 실제 물리머신 3대에 노드를 제어하는 마스터 1대, 노드 2대로 구성한다고 가정하고 진행 할 예정입니다.


머신이 한대인 local 환경에서 테스트는 Kubernetes에서 제공하는 Minikube를 이용해서 테스트 해볼 수 있습니다.


Minikube에 대한 내용은 아래 홈페이지에서 확인하고 진행해볼 수 있습니다.

https://kubernetes.io/docs/getting-started-guides/minikube/




Posted by 사용자 guru_k

댓글을 달아 주세요