Minkube로 쿠버네티스 실습하기 - 기본 세팅
IAM 설정
- IAMFullAccess
- AmazonEC2FullAccess
- AmazonVPCFullAccess
→ MFA 추가 (보안자격증명)
- 루트와 IAM 둘 다
인스턴스 생성
태그
- 이미지 말고 소스코드 배포에 사용되는 태그
- 아무렇게나 쓰면 안됨. (내부정책에 맞게)
- 예시 1) 리소스명-사용서비스명-환경(dev/prod 등)-Zone [우리 교육 과정의 내부정책]
- EC2-kube-master-Azone
- 예시 2) 리소스명-사용서비스명-네이밍-Zone
- 계정을 같이 쓸 때는
- EC2-kube-jinho-Azone
- 예시 1) 리소스명-사용서비스명-환경(dev/prod 등)-Zone [우리 교육 과정의 내부정책]
애플리케이션 및 OS 이미지 [AMI]
우리는 현재 공인 IP로 접속할 것
더 많은 AMI 찾아보기 - Docker Hub 마냥 많은 실행환경이 있음
실제 기업 내에서는 SaaS 많이 사용
- CISCO, Fortnet, F5 등의 가상화 이미지
- → 구독형
- 기업의 라이센스를 붙여서 파는 것 (시간당 빌링 등)
- Bring Your On License (BYOL) : 자신의 라이센스 붙이기 등등의 기능도…
빠른 시작
AWS 나 MacOS 등도 판매함
(Mac도 요즘엔 클라우드에서 이런거 많이 판매..)
우리는 Ubuntu
- 22.04 LTS
- 64비트(x64) [AMD]
인스턴스 유형
- t2.micro : 프리티어 CPU 메모리 너무 작아서 실습하기도 어려움
- t2.medieum / t3.medieum 정도 사용
- 온디맨드 = 24시간
키 페어 (로그인)
- SSH 암호화 키
- 새 키페어 생성
- 하나의 키페어로 돌려쓰는 경우도 있고,
각각 만드는 방법도 있다. - 키페어 이름
- keypair-kube-master
- RSA
- putty 에뮬리에터 사용해서 접속 → SSH 키 설정
- putty의 경우에는 .ppk로 생성하는 것이 세팅에 좋다.
- Session 에는 IP 설정
- SSH - Auth - Cre - ~~
- 하나의 키페어로 돌려쓰는 경우도 있고,
- 저장된 키페어는 로컬에 저장하고 에뮬레이터에 설정하고 사용
네트워크 설정 / 보안그룹
VPC 설정
- 기존 VPC로 가능
서브넷
- 잘 연결되어있으면 아무거나 가능
- 가용 영역
- ap-northeast-2a
- ap-northeast-2b 등에 맞게 Zone 설정 → 다른 태그 Naming에 참조
퍼블릭 IP 자동 할당 (DHCP 설정)
- 비활성화
방화벽 (보안그룹)
생성
IN/Out Bound 에 대한 방화벽 (나중엔 정말 디테일하게 다뤄야 함)
일단 SSH 만 올려놓고,
- 나중에 추가할 예정
예시) SG-kube-master
인바운드 보안 그룹 규칙
내 IP - 32 비트로 설정
스토리지 구성
- 100GB
- 루트 볼륨
- 마그네틱 (표준) = [Hdd]
- gp3 = 최신 볼륨
- 아마존에서는 gp2를 기본으로 사용한다. → gp2 설정
우측
- 인스턴스 개수 : 1개
→ 생성 완료
인스턴스 중지와 삭제 차이 조심
탄력적 IP 설정
탄력적 IP 주소
→ 할당 → 체크 박스 클릭 - 작업 - 주소 연결 - 인스턴스 설정
- Netty나 Termius 사용
(맥북에서는 termius 사용)
→ KeyChain에서 등록
Host - New Host
공인 IP
Label : kube
username : ubuntu
- Amazon Linux:
ec2-user
- Ubuntu:
ubuntu
- CentOS:
centos
- Debian:
admin
또는debian
- RHEL:
ec2-user
또는root
- Amazon Linux:
Password : 위에서 KeyChanin에 등록한 key.ppk
Docker 설치
## Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
## Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker 권한 문제
sudo usermod -aG docker $USER
newgrp docker
Minikube 설치
- https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download
- Linux
- x86-64
- Stable
- Binary download
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
minikube start
- Cluster와 상호작용
kubectl get po -A
## 혹은
minikube kubectl -- get po -A
- 명령어 편리하게끔 → Alias 추가
alias kubectl="minikube kubectl --"
## 영구적으로 저장
echo 'alias kubectl="minikube kubectl --"' >> ~/.bashrc
source ~/.bashrc
Minkube로 쿠버네티스 실습하기 - 기본 세팅
IAM 설정
- IAMFullAccess
- AmazonEC2FullAccess
- AmazonVPCFullAccess
→ MFA 추가 (보안자격증명)
- 루트와 IAM 둘 다
인스턴스 생성
태그
- 이미지 말고 소스코드 배포에 사용되는 태그
- 아무렇게나 쓰면 안됨. (내부정책에 맞게)
- 예시 1) 리소스명-사용서비스명-환경(dev/prod 등)-Zone [우리 교육 과정의 내부정책]
- EC2-kube-master-Azone
- 예시 2) 리소스명-사용서비스명-네이밍-Zone
- 계정을 같이 쓸 때는
- EC2-kube-jinho-Azone
- 예시 1) 리소스명-사용서비스명-환경(dev/prod 등)-Zone [우리 교육 과정의 내부정책]
애플리케이션 및 OS 이미지 [AMI]
우리는 현재 공인 IP로 접속할 것
더 많은 AMI 찾아보기 - Docker Hub 마냥 많은 실행환경이 있음
실제 기업 내에서는 SaaS 많이 사용
- CISCO, Fortnet, F5 등의 가상화 이미지
- → 구독형
- 기업의 라이센스를 붙여서 파는 것 (시간당 빌링 등)
- Bring Your On License (BYOL) : 자신의 라이센스 붙이기 등등의 기능도…
빠른 시작
AWS 나 MacOS 등도 판매함
(Mac도 요즘엔 클라우드에서 이런거 많이 판매..)
우리는 Ubuntu
- 22.04 LTS
- 64비트(x64) [AMD]
인스턴스 유형
- t2.micro : 프리티어 CPU 메모리 너무 작아서 실습하기도 어려움
- t2.medieum / t3.medieum 정도 사용
- 온디맨드 = 24시간
키 페어 (로그인)
- SSH 암호화 키
- 새 키페어 생성
- 하나의 키페어로 돌려쓰는 경우도 있고,
각각 만드는 방법도 있다. - 키페어 이름
- keypair-kube-master
- RSA
- putty 에뮬리에터 사용해서 접속 → SSH 키 설정
- putty의 경우에는 .ppk로 생성하는 것이 세팅에 좋다.
- Session 에는 IP 설정
- SSH - Auth - Cre - ~~
- 하나의 키페어로 돌려쓰는 경우도 있고,
- 저장된 키페어는 로컬에 저장하고 에뮬레이터에 설정하고 사용
네트워크 설정 / 보안그룹
VPC 설정
- 기존 VPC로 가능
서브넷
- 잘 연결되어있으면 아무거나 가능
- 가용 영역
- ap-northeast-2a
- ap-northeast-2b 등에 맞게 Zone 설정 → 다른 태그 Naming에 참조
퍼블릭 IP 자동 할당 (DHCP 설정)
- 비활성화
방화벽 (보안그룹)
생성
IN/Out Bound 에 대한 방화벽 (나중엔 정말 디테일하게 다뤄야 함)
일단 SSH 만 올려놓고,
- 나중에 추가할 예정
예시) SG-kube-master
인바운드 보안 그룹 규칙
내 IP - 32 비트로 설정
스토리지 구성
- 100GB
- 루트 볼륨
- 마그네틱 (표준) = [Hdd]
- gp3 = 최신 볼륨
- 아마존에서는 gp2를 기본으로 사용한다. → gp2 설정
우측
- 인스턴스 개수 : 1개
→ 생성 완료
인스턴스 중지와 삭제 차이 조심
탄력적 IP 설정
탄력적 IP 주소
→ 할당 → 체크 박스 클릭 - 작업 - 주소 연결 - 인스턴스 설정
- Netty나 Termius 사용
(맥북에서는 termius 사용)
→ KeyChain에서 등록
Host - New Host
공인 IP
Label : kube
username : ubuntu
- Amazon Linux:
ec2-user
- Ubuntu:
ubuntu
- CentOS:
centos
- Debian:
admin
또는debian
- RHEL:
ec2-user
또는root
- Amazon Linux:
Password : 위에서 KeyChanin에 등록한 key.ppk
Docker 설치
## Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
## Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker 권한 문제
sudo usermod -aG docker $USER
newgrp docker
Minikube 설치
- https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download
- Linux
- x86-64
- Stable
- Binary download
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
minikube start
- Cluster와 상호작용
kubectl get po -A
## 혹은
minikube kubectl -- get po -A
- 명령어 편리하게끔 → Alias 추가
alias kubectl="minikube kubectl --"
## 영구적으로 저장
echo 'alias kubectl="minikube kubectl --"' >> ~/.bashrc
source ~/.bashrc