code

쿠버네츠에서 포드를 멈추는 방법

starcafe 2023. 8. 1. 20:40
반응형

쿠버네츠에서 포드를 멈추는 방법

클러스터에서 MySQL 포드가 실행 중입니다.
포드를 삭제하지 않고 일시적으로 작동을 일시 중지해야 합니다. 도커와 유사한 것으로,docker stop container-idcmd는 컨테이너를 삭제하지 않고 컨테이너를 중지합니다.
kubernetes에서 포드를 일시 중지/정지하는 명령이 있습니까?

따라서 다른 사람들이 지적한 것처럼 Kubernetes는 현재 포드 상태의 중지/일시 중지를 지원하지 않으며 필요할 때 다시 시작합니다.그러나 복제본 수를 0으로 설정하는 작업 배포가 없는 경우에도 이러한 작업을 수행할 수 있습니다.

kubectl scale --replicas=0 deployment/<your-deployment>

도움을 보다

# Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet.
kubectl scale --help

척도를 사용하면 척도 작업에 대한 하나 이상의 전제 조건을 지정할 수도 있습니다.

한다면--current-replicas또는--resource-version를 지정하고, 스케일을 시도하기 전에 유효성을 검사하며, 스케일이 서버로 전송될 때 전제 조건이 true로 유지되도록 보장합니다.

예:

  # Scale a replicaset named 'foo' to 3.
  kubectl scale --replicas=3 rs/foo

  # Scale a resource identified by type and name specified in "foo.yaml" to 3.
  kubectl scale --replicas=3 -f foo.yaml

  # If the deployment named mysql's current size is 2, scale mysql to 3.
  kubectl scale --current-replicas=2 --replicas=3 deployment/mysql

  # Scale multiple replication controllers.
  kubectl scale --replicas=5 rc/foo rc/bar rc/baz

  # Scale statefulset named 'web' to 3.
  kubectl scale --replicas=3 statefulset/web

아니요. 필요한 경우 포드를 중지하고 나중에 다시 시작할 수 없습니다.그러나 다음과 같은 방법을 고려할 수 있습니다.

k8s에서 포드는 서비스를 사용하여 추상화됩니다.포드를 분리하는 방법 중 하나는 서비스 정의에서 포드 선택기를 업데이트하는 것입니다.이렇게 하면 서비스 정의를 사용하여 포드에 대한 트래픽을 제어할 수 있습니다.트래픽을 복원할 때마다 포드 선택기 값을 서비스 정의에 있던 값으로 다시 업데이트합니다.

쿠버네츠를 사용하면 포드를 중지/일시 중지할 수 없습니다.그러나 포드를 다시 가져올 수 있는 매니페스트가 있다는 사실을 고려할 때 포드를 삭제할 수 있습니다.

그러나 클러스터에서 POD가 즉시 다시 시작됨을 알고 POD를 삭제하려면 다음을 실행합니다.kubectl지휘권

kubectl delete -n default pod <your-pod-name>

Openshift Console의 Helm's Deployment Config 세부 정보에서 포드를 0으로 축소했을 때 작동했습니다.

언급URL : https://stackoverflow.com/questions/54821044/how-to-stop-pause-a-pod-in-kubernetes

반응형