“Minikube 로 Nginx 배포”
Minikube 는 단일 노드 Kubernetes Cluster를 가상머신에서 구동하는 도구입니다.
minikube를 이용하면 손쉽게 로컬에서 Kubernetes Cluster를 만들 수 있습니다.
[개 요]
|
1. docker 설치
docker 설치
curl -fsSL https://get.docker.com | sudo sh
[실행화면] # Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de Server: Docker Engine – Community ================================================================================ To run Docker as a non-privileged user, consider setting up the dockerd-rootless-setuptool.sh install Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
To run the Docker daemon as a fully privileged service, but granting non-root WARNING: Access to the remote API on a privileged Docker daemon is equivalent ================================================================================ |
docker ps
[실행화면] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
2. Minikube 설치
Minikube 설치
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
dpkg -i minikube_latest_amd64.deb
[실행화면] Selecting previously unselected package minikube. |
minikube start
[실행화면]
해당 error는 docker를 root권한으로 사용하려 했을 경우 나옵니다. 따라서 전용 사용자 계정을 추가로 생성해줘야 합니다. |
사용자 계정 생성
useradd -m -d /home/smileserv -s /bin/bash smileserv // /home/smilserv가 home 디렉터리인 smileserv 사용자 생성
passwd smileserv // smileserv 비밀번호 설정
usermod -aG sudo smileserv // smileserv 계정 sudo 권한
usermod -aG docker smileserv // smileserv 계정 docker 권한
su smileserv
MiniKube 설치
Minikube start
[실행화면] smileserv@minikube:~$ minikube start |
3. kubectl 설치
kubectl 설치
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
![]() |
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version
[실행화면] smileserv@minikube:~$ kubectl version |
4. nginx yaml 작성
vim nginx-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deploy spec: replicas: 3 selector: matchLabels: app: nginx-app template: metadata: labels: app: nginx-app spec: containers: – name: nginx-container image: nginx:latest ports: – containerPort: 80 |
vim nginx-service.yaml
apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: NodePort selector: app: nginx-app ports: – targetPort: 80 port: 80 nodePort: 30080 |
5. 배포
kubectl apply -f ./nginx-deployment.yaml
[실행화면] smileserv@minikube:~$ kubectl apply -f ./nginx-deployment.yaml |
kubectl get all
![]() |
kubectl apply -f ./nginx-service.yaml
[실행화면] smileserv@minikube:~$ kubectl apply -f ./nginx-service.yaml |
kubectl get all
![]() |
minikube service nginx-service --url