쿠버네틱스

[K8S] 나만의 명령어 모음집 (진행중)

피리음 2023. 5. 3. 13:40

미니큐브 실행

$ minikube start

실행이 되면 미니큐브(마스터노드)가 kubectl 명령의 대상이 된다.
미니큐브는 내 호스트 내 가상 클러스터이다.

이미지를 설정하여 deployment 만들기

# kubectl create deployment {deployment-name} --image={image-name}
$ kubectl create deployment first-dep --image=sororiri/simple-node-app

deployment의 Pod를 3개로 만들기

$ kubectl scale deployment/{deployment-name} --replicas=3
$ kubectl scale deployment/{deployment-name} --replicas=3
결과값
deployment.apps/first-dep scaled

미니큐브의 service 에 IP 할당하기

# minikube service {deployment-name}
$ minikube service first-app
결과값

HOST에서 접근할 수 있는 IP를 할당 받음

|-----------|-----------|-------------|---------------------------|
| NAMESPACE |   NAME    | TARGET PORT |            URL            |
|-----------|-----------|-------------|---------------------------|
| default   | first-dep |        8080 | http://192.168.49.2:30486 |
|-----------|-----------|-------------|---------------------------|

서비스 확인

$ kubectl get services

결과값
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
first-dep    LoadBalancer   10.110.29.253   <pending>     8080:31616/TCP   13s
kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP          4h26m

배포 이미지 변경하기 (변경시에는 이미지의 태그가 달라야 변경된다)

# kubectl set image deployment/{deployment_ID} {containerID}={image_ID}:{tag}
$ kubectl set image deployment/first-dep simple-node-app=sororiri/simple-node-app:2
결과값
deployment.apps/first-dep image updated

배포 상태 확인하기 (정상적으로 진행됨을 확인함)

$ kubectl rollout status deployment/first-dep
> deployment "first-dep" successfully rolled out

최근의 deployment 작업을 롤백시키기

$ kubectl rollout undo deployment/first-dep

개정 3의 정보 보기

$ kbctl rollout history deployment/first-dep --revision 3
결과값
deployment.apps/first-dep with revision #3
    Pod Template:
          Labels:    app=first-dep
        pod-template-hash=65cb68cd9c
    Containers:
         kb-app:
          Image:    sororiri/kb-app
          Port:                <none>
          Host Port:        <none>
          Environment:        <none>
          Mounts:            <none>
          Volumes:            <none>