4 min read

쿠버네티스 싱글 노드 설치

환경

VM : hyper-v
OS: ubuntu-20.04 Server
CPU : 2 CPU ( 최소 1CPU 이상)
RAM : 4GB

쿠버네티스 마스터 만들기

1.패키지 업데이트

sudo -s
apt-get update -y && apt-get upgrade -y

2. 도커 설치 및 활성화

도커가 설치 되어있다면 이 과정 생략가능

apt-get install -y docker.io
systemctl enable docker.service

3. Kubeadm 설치

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/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 kubectl 

3. 스압공간 제거

쿠버네티스는 스압공간을 사용하지못하도록 막아두어 이를 제거해줘야한다.

vim /etc/fstab  # (remove a line referencing 'swap.img' , if it exists)
swapoff -a 

위 사진처럼 SWAP앞에 #을 적어 재부팅뒤에두 스압공간이 발생안하게 제거할수 있다.

4.Master 초기화

kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

서브넷을 네트워크를 10.96.0.0/12 초기화

클러스터 서브넷을 10.244.0.0/16 초기화

위 커맨트 출력시 아래와 같은 화면이 출력된다.

kubeadm join 192.168.66.131:6443 --token xlie62.6p2hdoeobl3ea23z \
    --discovery-token-ca-cert-hash sha256:cc9d16986fea44eb416d71618917db56111dc262231513b78e9239ca3ceca00f

위는 쿠버네티스 클러스터링을 구축시 위와 같은 명령어를 입력시 클러스터링 구축된다.

6. Root가 아닌 사용자도 kubectl가능하게 선택

Root가 아닌 사용자 세션에서 다음과 같은 명령어를 입력

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

7. 오버레이 네트워크 초기화

쿠버네티스는 네트워크 구성자체를 구성 하지않아 플러그인형태를 사용한다.

그중에 Flannel을 사용한다.

sudo sysctl net.bridge.bridge-nf-call-iptables=1
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

8. Master 노드에도 Pod가 실행가능하게 실행

쿠버네티스는 마스터 단일 노드로 POD를 생성을 못한다. 이를 taint값을 수정하여 pod를 뛰울수 있도록 수정한다.

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

9.(선택사양) 리플리케이션 셋 생성하기

kubectl apply -f https://kubernetes.io/examples/controllers/frontend.yaml

을 입력하면 리플리케이션 셋이 생성된다.

kubectl get rs을 확인하면 다음과 같이 확인할수 있다.

10.(선택사양) Visual Code랑 연결

Visual Code 에는 쿠버네티스 플러그인이 있으며 플러그인을 통해 쿠버네티스랑 연동을 할수있다. (https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools)

cat $HOME/.kube/config

위 출력을 바탕화면에 파일로 저장해둔다.

을 클릭후 아까 파일에 저장해둔 파일에 설정해주자.


아까 생성해둔 POD를 확인할수 있다.