https://kubernetes.io/
Kubernetes 관련 자료는 위 링크에 있습니다.(공식사이트)
Kubernetes를 설치하고 테스트 하는 것이 이번 포스팅의 목표입니다.
AWS EC2 Ubuntu 16.04 LTS를 이용해 설치 했습니다.
1. 우선 Docker의 설치가 필요합니다.
sudo apt-get update
sudo apt-get install docker.io
sudo docker run hello-world
위 처럼 실행하면 Docker가 설치된 뒤,
docker에서 "hello-world" docker image를 다운로드해 실행시켜 줍니다.
2. kubectl 설치
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
다음처럼 치면 Kuberctl 최신 stable 버전을 설치하게 됩니다.
제대로 설치 되었는지 확인하려면
kubectl version
다음처럼 client 버전이 뜹니다.(제 경우에는 1.7.6버전이 설치되었습니다.)
3. Kubelet, Kubeadm 설치
sudo -i
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat </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
이런 식으로 kubelet과 kubeadm을 설치해 줍니다.
4. Kubeadm으로 Cluster 생성
kubeadm init
위 처럼 뜬다면 성공입니다.
※다음 명령어는 root권한이 아닌 일반 사용자가 사용할 수 있도록 설정 파일을 옮기는 명령어입니다.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
4. Pod 간의 네트워크를 위한 addon 설치
kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.6/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.6/canal.yaml
Pod 간의 네트워크를 위한 addon이 여러가지가 있는데 전 canal을 사용했습니다.
5. Master Isolation
원래 Master에는 Pod이 스케줄링되지 않습니다.
하지만 하나의 노드에서 Test를 위해 Master에서도 Pod이 스케줄링 될 수 있도록 설정해 줍니다.
kubectl taint nodes --all node-role.kubernetes.io/master-
위 명령어를 실행시키면 아래처럼 나옵니다.
Kubectl version 명령어를 통해 제대로 연결된 것을 보실 수 있습니다.
이처럼 Kubernetes를 설치했고, 다음은 App을 Deploy하고, Autoscale 하는 법을 정리하겠습니다.