Master Node와 Worker Node 생성 및 기본 설정
1. k8s-m 설치(ubuntu-20.04.2-live-server-amd64.iso)
2. k8s-m IP 주소 설정(netplan apply & shutdown) 및 스냅샷
3. k8s-m 클론떠서 k8s-w1, k8s-w2, k8s-w3 생성
4. 워커 노드 하나씩 접속하여 IP 주소 설정(netplan apply & shutdown) 및 스냅샷
* Master는 메모리 4GB, CPU 2개로 잡고 Worker는 메모리 2GB, CPU 1개로 잡는다.
kubeadm 으로 k8s 클러스터 생성 & CNI 설치
# 마스터 노드에서 클러스터 초기화 (K8s version v1.21.1)
kubeadm init --apiserver-advertise-address 192.168.79.200 --pod-network-cidr=172.16.0.0/16 --service-cidr 10.10.0.0/16
# 출력 내용 중 아래 2줄을 워커 노드에서 입력
kubeadm join 192.168.79.200:6443 --token t9fzfv.dxvtsz75l418ojf1 \
--discovery-token-ca-cert-hash sha256:055a3aef6fb8e930bff50da508007748fe97d3683c312c91c877069129930642
# k8s 관리를 위한 사용자(현재 root 사용자) 설정
echo $HOME
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# CNI - calico install : Pod 대역 자동으로 인식 (명령어 한 줄씩)
curl -O https://docs.projectcalico.org/manifests/calico.yaml
sed -i 's/policy\/v1beta1/policy\/v1/g' calico.yaml
kubectl apply -f calico.yaml
# calicoctl install
curl -o kubectl-calico -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.19.1/calicoctl"
chmod +x kubectl-calico
mv kubectl-calico /usr/bin
# Source the completion script in your ~/.bashrc file
echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'source <(kubeadm completion bash)' >>~/.bashrc
# alias kubectl to k
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
* 본인 VMnet8(NAT)의 IP 대역대에 맞게 수정하여 적용
* 출력되는 해시값이 다 다르기 때문에 본인 커맨드 창에 뜬 명령어를 긁어야 함
노드 상태 확인 명령어들
watch -d -n 2 "kubectl get node"
kubectl get node
kubectl get node -w
kubectl-calico node status
kubectl describe node k8s-w1
kubectl get nodes -o wide
조금 시간이 지난 후 wide 명령어를 쳐서 STATUS가 전부 Ready 상태로 올라와 있으면 설정 성공.
이 4개의 서버는 calico라는 네트워크를 통해 하나의 클러스터로 묶여 있는 상태이다.
kubectl Commands Cheat Sheet
https://kubernetes.io/ko/docs/reference/kubectl/cheatsheet/
'IT > Kubernetes' 카테고리의 다른 글
[Lab] Kubernetes Pod & YAML file (0) | 2021.10.29 |
---|---|
Kubernetes Components & Operation (0) | 2021.10.29 |
[Lab] Kubernetes Pod YAML file / Namespace (0) | 2021.10.28 |
Kubernetes 기능과 용어 (0) | 2021.10.27 |