https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/43438.pdf

https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/44843.pdf

https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/45406.pdf

http://www.oreilly.com/webops-perf/free/kubernetes.csp

'Cloud > Kubernetes' 카테고리의 다른 글

[Kubernetes] AWS에 Kubernetes 설치하기  (0) 2017.07.13

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 하는 법을 정리하겠습니다.

'Cloud > Kubernetes' 카테고리의 다른 글

Kubernetes 논문  (0) 2017.11.17

AWS(Amazon Web Service)는 가상의 서버를 생성해 주는 서비스로 클라우드라 볼 수 있다.
AWS의 가장 큰 장점은 1년간 공짜란 점이 아닐까...
이 중 가장 기본이 되는 EC2를 생성해보도록 하자.


1. EC2 Dashboard에서 Instances를 선택

생성된 가상 서버를 Instance라고 부른다.

 ※ 오른쪽 위에 Ohio 라고 되어있는 부분을 누르면 가상 서버가 존재하는 실제 위치를 바꿔줄 수 있다(서울도 있다)


2. EC2 Instances에서 Launch Instance를 선택해 가상의 서버를 생성한다.


3. Step1. 설치 가능한 AMI가 나온다. 왼쪽에 Free tier only를 선택하면 가상서버의 공짜 OS를 선택할 수 있다.
   나는 Ubuntu 16.04 LTS를 설치하도록 하겠다.(2017.07.05 기준)


4. Step2 가상서버의 type을 선택한다. type은 가상서버의 성능에 따라 나눠져 있는데 공짜 버전이 default로 선택되어 있다. Next를 눌러준다.


5. Step3. 가상 서버의 자세한 설정들을 하는 부분입니다.

  1) Number of Instances : 사용량이 증가할 때 가상 서버의 수를 늘려줄 수 있는데 이 가상 서버의 수를 나타냅니다.
  2) Purchasing option : 잠시 서버 허용량을 넘어서는 request가 있을 때, spot instance를 사용해 적은 비용으로 서버가 죽지 않고 동작하도록 합니다
  3) Network, Subnet, Auto-assign Public IP : 자신만의 subnet을 만들어서 해당 subnet에서 ip를 할당할 수 있게 해줍니다.
                                                           여러 서버를 만들 때 도움이 되겠지만 서버 하나 만들 때는 default로 만들어 줍니다
  4) IAM role : aws 내의 다른 인스턴스 간의 접근 권한을 설정해 줄 수 있다.
  5) Shutdown behavior : OS에서 shutdown시 instance를 stop할 것인지 terminate할 것인지 정한다
  6) Enable termination protection : 체크할 경우 API나 console을 통해 terminate되지 않는다.
  7) Monitoring : 해당 instance의 metrics들을 CloudWatch를 이용해 자세히 모니터링하는 설정이다. 물론 추가요금이 발생한다
  8) Tenancy : 실제 물리적 서버를 통째로 자신이 쓰도록 설정한다. 물론 추가요금이 발생한다.


6. Step4. EC2 instance의 저장 공간을 설정하는 부분이다.


  1) Size : free tier의 경우 30GB까지 가능합니다
  2) Volume Type : General Purpose SSD (GP2)를 선택했는데 Magnetic도 무료입니다.
  3) Delete on Termination : Terminate 시에 해당 Storage를 삭제한다면 체크합니다.
                                     (삭제 안 하고 다른 Storage 생성 후 30GB 넘을 시 추가 요금이 발생할 수 있습니다)

7. Step 5. Tag 추가

 - 다양한 Tag를 설정할 수 있습니다. 나중에도 필요하면 고칠 수 있으므로 나중에 설정하도록 합시다


8. Step 6. Security Group을 설정합니다.

 1) 새로 생성 시 존재하는 Security Group이 없으므로 Create a new security group을 체크해 줍니다.
  2) security group name과 Description을 설정해 줍니다.
  3) 밑에 Warning의 경우 모든 범위의 IP에서 EC2 instance에 접속할 수 있다는 경고인데 Source에서 My-IP를 선택해주면 없어지지만
      대부분의 경우 유동IP를 사용하므로 모든 IP에 대해 개방해 주는 것이 좋습니다.

9. Step 7 지금까지 선택 내용 정리

 - 정리된 내용이므로 지금까지 선택된 내용이 맞는지 확인하고 launch를 눌러줍니다.
  - 해당 Instance에 대한 key를 생성할 수 있는데 생성 이후 해당 Instance에 접속할 때 해당 key를 사용합니다.
  - Create a new key pair를 선택하시고 Key pair name을 설정해주신 뒤, Download Key Pair를 누르시면 key pair를 다운받을 수 있습니다.


10. Instance 확인

 - 다시 EC2 Dashboard에서 Instances에 들어가시면 새로운 Instance가 생성된 모습을 보실 수 있습니다.


11. putty key generator를 이용한 key file 생성 -1

 

  - putty key generator를 이용해 .pem 파일을 .ppk로 변환시켜 줍니다. (Load를 클릭)


12. putty key generator를 이용한 key file 생성 -2

  - Rsa와 2048로 설정되어 있는지 확인하시고 Save private key를 눌러 .ppk인 key를 저장해 줍니다.


13. putty를 이용한 접속

 - Host Name에 IP 주소나, DNS 주소를 넣어줍니다.
  - Connection-SSH-Auth에서 key file을 Browse 버튼을 눌러서 등록해 줍니다.
  - Saved Sessions에서 Saved Sessions 밑의 Text 입력창에 이름을 입력해 해당 Session의 저장도 가능합니다.
  - 이제 Open 버튼을 누르면 AWS EC2로 접속을 시도합니다.

14.  Ubuntu에 접속


  - login as: 가 뜨면 ubuntu라고 입력하고 엔터를 누릅니다.
  - 설정해둔 key file로 비밀번호 없이 자동으로 로그인 되고, 명령어를 칠 수 있도록 shell이 뜹니다.


이상으로 AWS EC2 생성과 접속이 끝났습니다!!





+ Recent posts