728x90
반응형
# Minikube를 활용한 k8s 환 경 구축하기 (WSL을 기준으로 한다.)
1. Minikube 설치
- 도커 설치 (root 권한으로 실행)
# ubuntu upgrade
sudo apt-get update
# docker install
sudo apt install docker.io -y
- 도커 권한을 수정한다.
예를 들어 생성한 user명이 newuser일 경우 아래의 변수 $USER에 newuser를 넣어주면 된다.
sudo usermod -aG docker $USER && newgrp docker
# 실행 명령어
sudo usermod -aG docker seungkim && newgrp docker
- 도커 설치 확인
docker ps -a
2. minikube 다운로드 및 설치
- minikube 다운로드 및 설치 (root 권한으로 실행)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb
- minikube 실행하기, 새로운 사용자를 생성 후 진행한다. root 권한으로는 정상실행이 안된다. (일반 유저 권한으로 진행)
minikube start --driver=docker
- 정상 실행 확인
🔎 Verifying Kubernetes components...
🌟 Enabled addons: default-storageclass, storage-provisioner
💡 kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
3. kubectl 설치
- kubectl 설치 (root에서 실행)
sudo snap install kubectl --classic
- node 조회 및 pod 조회
seungkim@DESKTOP-BUANL37:~$ kubectl get nodes && kubectl get pod -A
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 25m v1.26.3
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-787d4945fb-6vfxr 1/1 Running 0 25m
kube-system etcd-minikube 1/1 Running 0 25m
kube-system kube-apiserver-minikube 1/1 Running 0 25m
kube-system kube-controller-manager-minikube 1/1 Running 0 25m
kube-system kube-proxy-n6rsg 1/1 Running 0 25m
kube-system kube-scheduler-minikube 1/1 Running 0 25m
kube-system storage-provisioner 1/1 Running 1 (24m ago) 25m
4. minikube에서 docker hub에 업로드한 이미지 실행하기
- docker hub 주소
https://hub.docker.com/repository/docker/may9noy/cicd-project-ansible/general
- deployment.yaml 파일 생성
apiVersion: apps/v1
kind: Deployment
metadata:
name: cicd-deployment
spec:
selector:
matchLabels:
app: cicd-devops-project
replicas: 2
template:
metadata:
labels:
app: cicd-devops-project
spec:
containers:
- name: cicd-devops-project
image: may9noy/cicd-project-ansible
imagePullPolicy: Always
ports:
- containerPort: 8080
- service.yaml 파일 생성
apiVersion: v1
kind: Service
metadata:
name: cicd-service
labels:
app: cicd-devops-project
spec:
selector:
app: cicd-devops-project
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 32000
- minikube에서 생성한 서비스로 확인하기
seungkim@DESKTOP-BUANL37:~$ kubectl get pod -n default && kubectl get svc -n default | grep cicd-
NAME READY STATUS RESTARTS AGE
cicd-deployment-8487fd8dc-p44f8 1/1 Running 0 2m31s
cicd-deployment-8487fd8dc-qdsrh 1/1 Running 0 2m31s
cicd-service NodePort 10.104.90.1 <none> 8080:32000/TCP 2m25s
- 위의 작업대로 진행 했는데 로컬에서는 접속이 안되서, hiper-v에 가상 머신 설치해서 진행을 하였다. (아마 네트워크에서 뭔가 꼬인거 같은데 트러블슈팅 하는거보다 가상머신에서 작업하는게 훨씬 빠를거라는 판단하에...)
가상머신만 설치 후 진행을 한거고 과정은 위와 동일하다.
- 접속 결과
- 가상머신에서 조회한 서비스 정보는 아래와 같다.
- 끝 -
728x90
반응형
'로컬 환경 구성 > 로컬 개발환경 구성' 카테고리의 다른 글
9. Ansible을 이용한 Docker 이미지 관리 with Jenkins (0) | 2023.05.11 |
---|---|
8. Jenkins과 Ansible 연동 및 Ansible Playbook 사용하기 (0) | 2023.05.10 |
7. Ansible Playbook 사용하기 (1) | 2023.05.10 |
6. Ansible Module (0) | 2023.05.09 |
5. Ansible 구성 (0) | 2023.05.09 |