Cloud/Kubernetes

[따배쿠 youtube] 쿠버네티스 설치 (Docker PlayGround , 직접설치)

Tony Lim 2021. 4. 20. 20:59
728x90

Docker Playground (play-with-k8s.com)

 

Docker Playground

We are really sorry but we are out of capacity and cannot create your session at the moment. Please try again later.

labs.play-with-k8s.com

에 들어가서 메뉴얼에 나와있는데로 한다.

 

1번 명렁어를 통해 쿠버네티스 마스터 노드를 초기화해준다. 

 kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16

$() = command substitution 이경우에는 host의 ip address

pod = one or more container, smallest units of computing taht we can create and manage in kubernetes.

1번 명렁어가 끝나면 이 명령어를 통해 worker node 를 join해줄 수 있다.

kubeadm join 192.168.201.130:6443 --token gg78li.keoo5uh3kgon3imr --discovery-token-ca-cert-hash sha256:3c231ce485add9432fb872479ae5ada09ca965ee5b965aa3c15b46076f56d897

 

네트워크 초기화도 해준다.

kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml

현재는 이러한 환경으로 구성이 완료되었다.

CNI는 종류가 많은데 모두 컨테이너끼리 소통하기위해 존재하는 인터페이스이다.

 

 

직접 깔아보자 우선 도커부터~

Install Docker Engine on Ubuntu | Docker Documentation

 

Install Docker Engine on Ubuntu

 

docs.docker.com

ubuntu - docker-ce : Depends: libseccomp2 (>= 2.3.0) but 2.2.3-3ubuntu3 is to be installed - Stack Overflow

 

이제 쿠버네티스를 깔아보자 차례대로 하면된다. ufw disable 을 통해 방화벽을 꼭 끄도록하자

Installing kubeadm | Kubernetes

 

Installing kubeadm

This page shows how to install the kubeadm toolbox. For information how to create a cluster with kubeadm once you have performed this installation process, see the Using kubeadm to Create a Cluster page. Before you begin A compatible Linux host. The Kubern

kubernetes.io

Creating a cluster with kubeadm | Kubernetes

 

Creating a cluster with kubeadm

Using kubeadm, you can create a minimum viable Kubernetes cluster that conforms to best practices. In fact, you can use kubeadm to set up a cluster that will pass the Kubernetes Conformance tests. kubeadm also supports other cluster lifecycle functions, su

kubernetes.io

237summit/k8s_core_labs (github.com)

 

237summit/k8s_core_labs

Contribute to 237summit/k8s_core_labs development by creating an account on GitHub.

github.com

 

 

https://kubernetes.io/ko/docs/setup/production-environment/container-runtimes/#%EB%8F%84%EC%BB%A4

 

컨테이너 런타임

파드가 노드에서 실행될 수 있도록 클러스터의 각 노드에 컨테이너 런타임을 설치해야 한다. 이 페이지에서는 관련된 항목을 설명하고 노드 설정 관련 작업을 설명한다. 이 페이지에는 리눅스

kubernetes.io

컨테이너의 cgroup 관리에 systemd를 사용하도록 도커 데몬을 구성 : 1.22 버전부터는 설정해야 한다.

 

 

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

이명령어들을 실행해야 지금의 user가 kubectl 명령어 사용가능

CDI를 설치하니 Status 가 Ready로 바뀌었다.

이제 Worker node와 연결해보자

kubadm join이나 init 할때 뭔가 자꾸 이미 존재한다 뜬다? kubadm reset 으로 초기화 해주자

연결 성공

 

 

 

 

쿠버네티스 삭제하는법

kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /run/flannel
rm -rf /etc/cni/
rm -rf /etc/kubernetes
rm -rf /var/lib/etcd/

ip link delete cni0
ip link delete flannel.1

yum remove -y kubelet
yum remove -y kubectl
yum remove -y kubeadm

systemctl start docker

 

 

kubeadm join 192.168.201.130:6443 --token iio6kr.5r3dah0t3j764i2p --discovery-token-ca-cert-hash sha256:5d9c183312fe72fe60eb52062affbaef32ecca02c51e5b5f0f751d478f3c2506 

나의 worker node 를 join하기 위한 명령어이다. token.txt에 저장해두겠다.

kubectl 명렁을 쓰기위해서는

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

명령어로 허가해준후 사용이 가능하다. 

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

이 명령어를 통해 CDI종류중 하나인 weave 를 설치한다. 

 

이제 worker node join 하자

join한 후에 바로 되지는 않는다. 아래에 보면 ContainerCreating 이라고 하는 것을 확인할 수 있다. 라고 생각했는데 오류였다. kubeadm reset 을 하고 systemctl stop kubelet 하고 start , enable을 해주자 worker node도 마찬가지다

worker node의 경우 status 가 activating인 것을 확인한후 join 하자

연결이 잘되어 worker node 도 active로 바뀌고 Status 도 무사히 Ready로바뀌었다......

 

728x90