도커와 쿠버네티스 8: 쿠버네티스 실습 환경 구축
가상머신 복제
- 쿠버네티스는 서버가 여러 대일 때 좀 더 효율적으로 운영할 수 있음 → 서버 세 대로 쿠버네티스 클러스터를 구축한 후 실습을 진행한다
- 서버 대신에 노드라고 함
- 노드 3대가 있게 ubuntu-server01를 두번 복제한다
- Include all network adapter MAC addresses를 선택하고 Full clone을 선택한다
호스트 이름 변경
IP 주소 변경
ifconfig
을 통해서 server02의 IP 주소 확인- server1과 똑같아서 바꿔야 된다
- 아래와 같이 server02의 IP 주소를 바꿔준다
sudo netplan apply
명령어를 실행해봤을 때 오류가 나와서 몇번까지 수정해봤는데 결국에는 포기해서 챗지피티한테 물어봐서 아래와 같이 받았다sudo netplan apply
실행하고 IP 주소 확인DNS 설정
- /etc/hosts 파일을 수정한다
ping
명령어를 이용하여 server01로 ping을 보내면 원활하게 작동하는 것 확인ssh server01
명령어를 이용하여 server01로 접속해봤을 때 잘 되긴 한다- 이름 안 바꿔지만…
UFW 방화벽 설정
네트워크 설정
- IPv4를 포워딩하여 iptables가 연결된 트래픽을 볼 수 있게 한다
tee
: 출력을 두 곳으로 보낼 수 있는데, 한 곳은tee
다음에 명시되어 있는 파일로 출력되고 다른 한 곳은 표준 출력(stdout)이다tee
명령어를 활용하면 화면에 출력됨과 동시에 파일에 저장된다
overlay
: 리눅스 커널의 네트워크 드라이버를 가리킨다- 서로 다른 호스트에 존재하는 파드 간의 네트워크 연결을 가능하게 하는 기술이다 → 여러 개의 독립적인 네트워크 레이어를 겹쳐서 하나로 연결된 네트워크를 생성한다
br_netfilter
: 네트워크 패킥 처리 관련 모듈러로써 iptables/netfilter 규칙이 적용되게 한다- 컨테이너와 호스트 간의 인터페이스 등에서 발생하는 트래픽에 대해 규칙을 적용해 트래픽을 관리한다는 의미
EOF
: 문서의 마지막이라는 뜻
- 다음은 아래와 같은 명령어를 입력한다
modprobe
: 리눅스 커널 모듈 관리 도구 → 특정 모듈을 로드하거나 제거할 수 있는 도구
- 그리고
sysctl
매개변수를 설정한다sysctl
매개변수를 설정하면 재부팅 후에도 값이 유지된다- 브릿지 네트워크 인터페이스에 대한 ipv4 트래픽이 iptables 규칙에 의해 처리되도록 만들어준다
- 커널 처리하는 패킷에 대해 외부로 ipv4 포워딩이 가능하게 만들어 준다
- 아래와 같이 입력하고 재부팅하지 않고
sysctl
매개변수를 적용할 수 있다
containerd 설정
- 아래 명령어를 입력한다
1 2
sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml
- 두번째 명령어를 입력해봤을 때 잘 안 되더라…
- config.toml을 수정한다
- containerd 재시작하고 상태 확인
swap 메모리 비활성화
- 쿠버네티스 컨테이너를 원활하게 관리하려면 swap 메모리 영역을 비활성화해야 한다
- swap 메모리가 할장되어 있는지 확인
free -h
명령어를 통해 메모리 공간 확인
- swap이 활성화 중인지 확인
- 존재해서 활성화되어 있대
- swap 메모리를 비활성화한다
- 비활성화 중인지 다시 확인
- fstab 파일을 수정하여 /swap.img를 주석으로 처리한다
쿠버네티스 설치
- 쿠버네티스를 설치하기 전에 apt 패키지 목록을 업데이트하고 쿠버네티스에 한다
- signing 키 다운로드를 위해서는 필요한 디렉터리를 생성한 후 쿠버네티스 apt 리포지토리를 추가한다
- 구글 클라우드의 공개 signing 키를 다운로드한다
- 패키지를 업데이트해야 되는데 아래와 같은 오류가 나와서 이를 해결해야 겠다
- kubelet, kubeadm과 kubectl을 설치한다
- 아래와 명령어를 입력한다
- 버전 확인
마스터 노드 설정
- server01은 마스터 노드가 되고 server02은 워커노드가 되게 만든다
- 쿠버네티스 인증서 상태 확인
- kubeadm이 사용할 수 있는 이미지 리스트 확인
- 이미지를 pull하겠다
kubeadm
을 사용해 초기화한다--apiserver-advertise-address
: 쿠버네티스 마스터 노드의 IP 주소를 입력한다--pod-network-cidr
: 네트워크 대역을 설정할 수 있다- calico를 사용해서 192.168.0.0/16을 입력한다
- 워커 노드와 마스터 노드를 연결하는 구문을 받는데 Notepad에 저장했다
- 인증서 상태 다시 확인
- 사용자가 쿠버네티스를 활용할 수 있도록 쿠버네티스 설정을 저장할 새로운 디렉터리를 만든 후 기존 설정 파일을 새로운 디렉터리로 복사하고 설정 디렉터리의 소유자와 그룹을 변경해 현재 사용자가 사용할 수 있도록 변경한다
- calico로 네트워크를 설정해본다. 먼저 calico를 설치하기 위해 해당 URL에 존재하는 yaml 파일을 실행한다
- 필요한 커스텀 리소스를 설치한다
- 다운로드한 파일을 확인하고 이 파일을 활용하여 calico를 설치한다
- calico에 대한 파드가 실행 중인지 확인
- 구성되어 있는 노드 확인
워커 노드 설정
쿠버네티스로 실행하는 Hello World!
쿠버네티스 삭제 방법
This post is licensed under CC BY 4.0 by the author.