# master 노드와 work 노드 생성
# 버추어 박스에서 복제 실행
- 새 MAC 주소로 생성
- 호스트 이름이 고유해야함
- 스왑 오프 해줘야 함
# 복제 수행
1. 가상머신 우측클릭 복제 선택
2. 이름을 work1이라고 입력 > 모든 네트워크 어댑터 MAC 주소 포함 > 복제
3. 이전에 kubeamd을 생성한 가상 머신의 이름을 master로 지정
4. 2번째 가상머신도 위와같이 생성하고 이름을 work2 라고 설정
# 마스터 노드의 스냅샷 생성
스냅샷 찍기 > kubeadm 설치 입력 후 저장 > 복원하면 최초 상태로 돌아감
# NAT 네트워크 구성으로 3개의 머신이 서로 통신하게끔 하나의 네트워크로 구성하기
환경설정 > 네트워크 > Natnetwork 추가 > 각각 가상머신의 설정에서 네트워크 구성 > 방금 생성한 Natnetwork로 설정
# 호스트 이름 변경하기
3대를 순차적 부팅
sudo gedit /etc/hostname
master로 변경
reboot
- 나머지도 동일하게 수정함
# 클러스터 구성 및 쿠버네티스 테스트
# 스왑 비활성화
sudo echo test
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 도커 cgourp 변경하기
# cgourp 이란?
# 현재 도커의 group를 확인하는 명령어
sudo docker info | grep -i cgroup
# 도커 데몬의 설정파일 구성
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
service docker restart
# 변경된 cgroup 확인하기
sudo docker info | grep -i cgroup
> systemd 라고 구성된것을 확인가능
# 각 노드들의 ip 확인하기
ifconfig
ip addr
# ip가 모든 같은경우 다르게 변경 해줘야 한다.
버추어 박스의 노드들을 모두 종료 후 재 설정을 진행한다.
설정 > 네트워크 > 수동으로 설정하기 아이콘 클릭 후 mac 주소를 수동으로 설정한다.
mac 주소 설정아 완료되면 바로 부팅한다.
- 노드간에 서로 ping이 안되면 클러스터 구성이 안되기 때문에 구성 자체를 할 수가 없다.
# 마스터 노드와 통신이 되는지 확인한다.
ping [마스터노드 ip]
ping 10.0.2.4
# 마스터 노드를 초기화 후 연결 (마스터 노드에서 실행)
sudo kubeadm init
- 구성중 문제가 생길경우 (초기화 수행: join 및 init 등 문제 생길 경우)
sudo kubeadm reset
디렉토리나 파일을 삭제하는 명령어 : sudo rm -rf <겹치는 경로>
# 명령어 실행 (정상적으로 init되면 안내문구가 나오며 아래의 명령어를 실행하라고 나옴)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 쿠버네티스에 구성된 노드들의 현황보기
- 마그터 노드만 생성 했으므로 1개의 노드 즉 자신의 마스터 노드만 확인이 가능
kubectl get nodes
# init 후 master 노드의 참여 안내 명령어를 확인 후 안내된 kubeadm join 명령어를 워커노드에서 실행하여 워커를 참여시킴
sudo kubeadm join 10.0.2.4:6443 --token wgztr2.cqt1vyji0j5tn7hj \
--discovery-token-ca-cert-hash sha256:bff667370c59e22fa62175a78d54bc4c8aac93b39bf6cb6ba8d37f1300f70b16
# work 노드들이 참여했는지 확인하는 방법
마스터노드에서 kubectl get nodes 명령어 실행시키면 이전에 1개만 보였던 노드들이 3개가 보이는것을 확인 할 수 있다.
kubectl get nodes
# 네트워크 애플리케이션 설치
init 후 안내문구를 보면 아래의 링크 주소가 있음
https://kubernetes.io/docs/concepts/cluster-administration/addons/
우리는 위브넷(Weave Net)을 설치하도록 하겠다.
- 위의 링크사이트로 이동하면 설치 명령어 등 확인 가능하다.
- kubectl로 시작하는 명령은 마스터 노드에서 실행한다.
- 아래의 명령어로 네트워크 드라이버? 를 설치해야 master node가 Ready로 변경됨.
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
# 네트워크 연결확인
kubectl get nodes
마스터노드와 워커노드 모두가 STATUS가 Ready로 변경되면 모두 통신이 가능하게 설정되어 있다고 봐야함.
kubectl get nodes -w : 워치 모드로 변경사항이 있을때마다 확인이 가능함.
# 최종확인
pod : 컨테이너의 그룹이라도 생각하면 편하다.
# 마스터 노드에서 실행
kubectl create deploy nginx --image=nginx
kubectl get pod
kubectl get pod -w
kubectl port-forward nginx-6799fc88d8-vvj5h 8080:80
해당 cmd 화면을 켜놓은 상태로 127.0.0.1:8080 으로 접근하면 nginx 기본화면이 출력되는것을 볼수 있다.
컨트롤 + c 로 서버를 종료 후 접속하면 접속이 안되는것을 확인 할 수 있다.
'⭐ Kubernetes & EKS > Kubernetes (쿠버네티스)' 카테고리의 다른 글
Docker 컨테이너를 쿠버네티스에서 실행하기 (0) | 2021.09.05 |
---|---|
쿠버네티스에서 실행할 go언어로 작성된 컨테이너 생성 (0) | 2021.09.05 |
GCP에 쿠버네티스 설치 및 실행 (0) | 2021.09.04 |
Docker와 kubeadm 설치 (0) | 2021.09.04 |
쿠버네티스 기초 (실행 개념) (0) | 2021.09.04 |