Infra/Kubernetes

Kubernetes - 도커를 이용한 쿠버네티스 예제

wave35 2023. 3. 25. 21:16

 

[ 도커설치 ]

 

sudo yum -y update

sudo yum -y install docker

docker version

sudo yum -y install git 

# demo 다운로드

git clone https://github.com/cloudnativedevops/demo

 

# 도커실행

sudo systemctl status docker

sudo systemctl start docker

 

# demo 실행

sudo docker container run -p 9999:8888 --name hello cloudnatived/demo:hello

*웹 브라우저 http://localhost:9999 로 들어가

Hello, 世界 글귀를 확인

 

 

 

[ 도커이미지 빌드 ]

 

sudo docker image build -t myhello .

sudo docker container run -p 9999:8888 myhello

 

# 도커 컨테이너 레지스트리

https://hub.docker.com/ 에서 도커계정생성

 

# 도커로그인

sudo docker login

...

Username : user_id

Password : ****

...

Login Succeeded

 

# 도커 이미지 푸쉬

sudo docker image tag myhello yourID/myhello

sudo docker image push yourID/myhello

 

 

# 인터넷이 연결된 곳이라면 어디서든 내 컨테이너 이미지 사용가능

sudo docker container run -p 9999:8888 yourID/myhello

 

 

 

[ 쿠버네티스 설치 ]

 

단일클러스터에서 실행이기 때문에 minikube 설치

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube

sudo mkdir -p /usr/local/bin/

sudo install minikube /usr/local/bin/

 

* 아래와 같은 에러가 난다면

  - docker: Not healthy: "docker version --format {{.Server.Os}}-{{.Server.Version}}" exit status 1: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied


sudo groupadd docker

sudo usermod -aG docker $USER

newgrp docker 

 

참조 : https://docs.docker.com/engine/install/linux-postinstall/

 

 

minikube status

만약 클러스터가 실행 중이면, minikube status 의 출력은 다음과 유사해야 한다.

host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

 

정지

minikube stop

 

 

 

[ 쿠버네티스로 데모 애플리케이션 실행 ]

 

kubectl run demo --image=yourID/myhello --port=9999 --labels app=demo

 

kubectl port-forward pod/demo 9999:8888

 

-> 웹 브라우저 http://localhost:9999 확인

kubectl get pods --selector app=demo
NAME   READY   STATUS    RESTARTS   AGE
demo   1/1     Running   0          6m9s

 

# Pod삭제시

kubectl delete pod 1234-56-7890-234234-456456

 

# Delete all pods

kubectl delete pods --all

 

# 포트포워딩 후 http://yourip:9999 브라우저에서 output확인

kubectl port-forward yourDir/demo 9999:8888