본문 바로가기
[AWS]

쿠버네티스 설치

by SAMSUNG CLOUD-OKY 2020. 9. 22.
반응형

 

 

## 3.2 쿠버네티스 설치

https://kubernetes.io/ko/

 

 

 

 

sudo apt-get update

 

sudo apt-get -y install \

apt-transport-https \

ca-certificates \

curl \

gnupg2 \

software-properties-common

 

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

 

sudo add-apt-repository \

"deb [arch=amd64] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) \

stable"

 

sudo apt-get update

 

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

 

sudo usermod -aG docker $USER

 

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

 

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list

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

EOF

 

 

 

 

 

sudo apt-get update

 

sudo apt-get install -y kubelet kubeadm kubectl

 

sudo apt-mark hold kubelet kubeadm kubectl

 

sudo kubeadm init   (EC2 CPU 2 이상 필요)

 

 

 

 

 

 

 

 

 

<토큰 - worker 노드 추가시 필요>

kubeadm join 10.0.1.52:6443 --token 5obn70.fatoytcpf7id821j \

    --discovery-token-ca-cert-hash sha256:8f327e2f3dcc394306e9bf0aa14dee2695e4708413311cfedfe436bddaeee023

 

 

 

 

 

 

토큰은 24시간의 제한시간이 있고, kubeadm create token 명령어를 통해 재발급.

ubuntu@ip-10-0-1-52:~$ sudo kubeadm token create --print-join-command

 

 

 

 

 

mkdir -p $HOME/.kube

 

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

 

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

 

 

 

 

 

 

 

 

 

  • 파트 네트워크 Add-On설치

: 본격적으로 통신을 하기 위해서는 Pod Network Add-On 설치해야 한다.

: 파드들의 배포와 통신을 위해 네트워크를 설정해야 하기 때문이다.

: 다양한 애드온이 있지만 Weave Net 애드온을 설치할 것이다.

: 클러스터마다 Network Add-On 하나씩만 설치할 있다.

 

 

 

 

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

 

 

 

 

ubuntu@ip-10-0-1-52:~/.kube$ watch kubectl get pods --all-namespaces

 

 

 

 

 

 

 

 

kubectl taint nodes --all node-role.kubernetes.io/master-

 

 

ubuntu@ip-10-0-1-52:~/.kube$ kubectl get nodes -o wide

설치된 쿠버네티스의 상태를 볼수 있다. Ready 상태가 되면 정상적으로 설치 .

 

 

 

 

kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-service-type=NodePort"

(무슨 용도인지 향후 확인 필요)

 

 

 

 

  • 쿠버네티스 사용포트 추가

 

 

 

 

 

 

 

  • 모두 설치되었으니 도커를 사용할 때처럼 컨테이너를 하나 실행해보자.

 

ubuntu@ip-10-0-1-52:~/.kube$ kubectl run nginx-app --image nginx --port=80

 

ubuntu@ip-10-0-1-52:~/.kube$ kubectl get pods

 

ubuntu@ip-10-0-1-52:~/.kube$ kubectl expose pod nginx-app --type=NodePort

 

ubuntu@ip-10-0-1-52:~/.kube$ kubectl get service

 

 

 

  • 쿠버네티스에서 컨테이너를 담고 있는 객체인 파드를 생성하였고, 생성된 파드를 외부에 노출시킬수 있도록 서비스를 생성하였다.

 

http://52.78.131.230:30960/  (80포트가 아닌 내부포트 접속으로 성공)

 

  • Pod 서비스 삭제

ubuntu@ip-10-0-1-52:~/.kube$ kubectl delete pod nginx-app

 

ubuntu@ip-10-0-1-52:~/.kube$ kubectl delete svc nginx-app

 

  • 여기까지 단일 인스턴스에 쿠버네티스를 설치, nginx 컨테이너 실행했다.
반응형

'[AWS]' 카테고리의 다른 글

쿠버네티스 파드  (0) 2020.09.22
쿠버네티스 네임스페이스  (0) 2020.09.22
도커 오케스트레이션  (0) 2020.09.22
Docker-Compose (도커컴포즈)  (0) 2020.09.22
도커파일 (Dockerfile)  (0) 2020.09.22

댓글