쿠버네티스 싱글 노드 설치
환경
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를 확인할수 있다.