
apt install -y git
git clone -b v2.16.0 https://github.com/kubernetes-sigs/kubespray.git

해당 디렉토리로 이동해 apt update -y
kubernetes는 파이썬으로 동작한다. 그래서 pip를 설치해주어야 한다.
apt install -y python3-pip
kubernetes 디렉토리 안에 requirements.txt에 k8s 실행을 위해 설치해야할 모듈 정보가 적혀있다.
cat requirements.txt

위 정보를 수정해준다.

해당 파일을 pip3 명령어의 -r 옵션 인자로 입력한다.

위 문구가 출력될 경우 --break-system-packages 옵션 추가해서 다시 입력
인벤토리 sample을 mycluster라는 이름으로 복사해준다.
cp -rpf inventory/sample/ inventory/mycluster

inventory/mycluster 디렉토리에 있는 inventory.ini 파일에 노드들을 등록해준다.
[all] : 전체 노드 등록

[kube_control_plane] : 마스터 노드 등록

[etcd] : 마스터 노드 등록

[kube_node] : 워커 노드 등록

inventory/mycluster/group_vars/k8s_cluster 밑에 k8s-cluster.yml 파일 구문 수정.
129라인 구문 수정

229라인 구문 확인

240라인 구문 수정

ansible-playbook -i inventory/mycluster/inventory.ini --become --become-user=root -v cluster.yml
snap install kubectl --classic
kubectl get node -o wide 이 명령어를 입력했을 때 각 노드들 정보가 출력되면 성공적으로 설치된 것이다.

~/.bashrc 파일에 아래 구문 작성

위 구문 아래에 추가로 alias 작성

작성 후 source ~/.bashrc 실행 한 다음 노드 정보 확인할 수 있는 kgn alias 실행

(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)

네트워크 안될 경우
/etc/resolv.conf 삭제 후 /run/systemd/resolve/resolv.conf 파일 ln -s 링크로 다시 심볼릭 링크 생성. 생성 후 파일 안에 원하는 DNS 서버 주소 입력.

~/.bashrc 파일 맨 아래 구문 추가

추가 후 source ~/.bashrc
k krew 실행 시 krew 설명이 출력되면 설치 성공.
