포드 다시 시작을 예약하는 방법

19
Leonardo Carraro 2018-09-20 09:52.

시간에 따라 포드를 자동으로 다시 시작할 수 있습니까?

예를 들어 매일 오전 8시에 클러스터의 포드를 다시 시작하려고합니다.

6 answers

4
Nicola Ben 2018-09-20 17:15.

이에 대한 특정 리소스가 있습니다. https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/

다음은 예입니다.

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: your-cron
spec:
  schedule: "*/20 8-19 * * 1-5"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            app: your-periodic-batch-job
        spec:
          containers:
          - name: my-image
            image: your-image
            imagePullPolicy: IfNotPresent
          restartPolicy: OnFailure

새 포드를 시작할 때 이전 포드를 교체 하려면 spec.concurrencyPolicy로 변경 합니다 Replace. 를 사용 Forbid하면 이전 포드가 아직 실행중인 경우 새 포드 생성을 건너 뜁니다.

44
OhJeez 2019-10-14 21:25.

cronjob을 사용하되 pod를 실행하지 않고 매일 배포를 다시 시작하는 Kubernetes API 명령을 예약합니다 ( kubectl rollout restart). 이렇게하면 문제가 발생하더라도 이전 포드가 다운되거나 제거되지 않습니다.

롤아웃은 새 ReplicaSet를 생성하고, 이전 포드를 제거하고 트래픽을 다시 라우팅하기 전에 작동 될 때까지 기다립니다. 서비스는 중단없이 계속됩니다.

클러스터 내부에서 실행되는 Kubernetes 클라이언트가 Kubernetes API에 필요한 호출을 수행 할 수있는 권한을 갖도록 RBAC를 설정해야합니다.

---
# Service account the client will use to reset the deployment,
# by default the pods running inside the cluster can do no such things.
kind: ServiceAccount
apiVersion: v1
metadata:
  name: deployment-restart
  namespace: <YOUR NAMESPACE>
---
# allow getting status and patching only the one deployment you want
# to restart
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: deployment-restart
  namespace: <YOUR NAMESPACE>
rules:
  - apiGroups: ["apps", "extensions"]
    resources: ["deployments"]
    resourceNames: ["<YOUR DEPLOYMENT NAME>"]
    verbs: ["get", "patch", "list", "watch"] # "list" and "watch" are only needed
                                             # if you want to use `rollout status`
---
# bind the role to the service account
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: deployment-restart
  namespace: <YOUR NAMESPACE>
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: deployment-restart
subjects:
  - kind: ServiceAccount
    name: deployment-restart
    namespace: <YOUR NAMESPACE>

그리고 cronjob 사양 자체 :

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: deployment-restart
  namespace: <YOUR NAMESPACE>
spec:
  concurrencyPolicy: Forbid
  schedule: '0 8 * * *' # cron spec of time, here, 8 o'clock
  jobTemplate:
    spec:
      backoffLimit: 2 # this has very low chance of failing, as all this does
                      # is prompt kubernetes to schedule new replica set for
                      # the deployment
      activeDeadlineSeconds: 600 # timeout, makes most sense with 
                                 # "waiting for rollout" variant specified below
      template:
        spec:
          serviceAccountName: deployment-restart # name of the service
                                                 # account configured above
          restartPolicy: Never
          containers:
            - name: kubectl
              image: bitnami/kubectl # probably any kubectl image will do,
                                     # optionaly specify version, but this
                                     # should not be necessary, as long the
                                     # version of kubectl is new enough to
                                     # have `rollout restart`
              command:
                - 'kubectl'
                - 'rollout'
                - 'restart'
                - 'deployment/<YOUR DEPLOYMENT NAME>'

선택적으로 cronjob이 배포가 롤아웃 될 때까지 기다리도록하려면 cronjob 명령을 다음과 같이 변경합니다.

command:
 - bash
 - -c
 - >-
   kubectl rollout restart deployment/<YOUR DEPLOYMENT NAME> &&
   kubectl rollout status deployment/<YOUR DEPLOYMENT NAME>
12
Ryan Lowe 2019-04-12 14:27.

다시 시작 정책이 항상 인 포드에 대한 또 다른 빠르고 더러운 옵션 (크론 작업이 처리하지 않아야 함-참조)https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#writing-a-job-spec)는 단순히 시간을 테스트하고 지정된 일정에 따라 포드를 다시 시작하는 livenessProbe입니다

. 시작 후 1 시간을 기다린 후 1 분마다 확인, 시간이 3 (AM)이면 프로브 실패 및 재시작, 그렇지 않으면 통과

livenessProbe:
  exec:
    command:
    - exit $(test $(date +%H) -eq 3 && echo 1 || echo 0)
  failureThreshold: 1
  initialDelaySeconds: 3600
  periodSeconds: 60

시간 단위는 날짜와 테스트를 반환하는 방법에 달려 있습니다 .;)

물론 이미 활성 프로브를 실제 활성 프로브 로 사용하고있는 경우에는 작동하지 않습니다. ¯ \ _ (ツ) _ / ¯

3
Dmitry 2020-04-21 00:50.

@ Ryan Lowe 에서 아이디어를 빌 렸지만 약간 수정했습니다. 24 시간이 지난 포드를 다시 시작합니다.

      livenessProbe:
        exec:
          command:
             - bin/sh
            - -c
            - "end=$(date -u +%s);start=$(stat -c %Z /proc/1 | awk '{print int($1)}'); test $(($end-$start)) -lt 86400"
1
Andre Albert 2018-09-20 17:04.

에 따르면 https://iquestion.pro/ko/q/so58760289 당신은을 만들 수 kind: CronJob로모그래퍼 jobTemplate필요 containers. 따라서 CronJob은 activeDeadlineSeconds(다시 시작할 때까지) 하루 동안 해당 컨테이너를 시작합니다. 예에 따르면 schedule: 0 8 * * ?오전 8 시가됩니다.

0
Mosd 2020-11-12 23:41.

@Ryan Lowe 답변에서 기존 앱이 있고 구성에 추가하려는 경우 :

oc set probe dc/myapp --liveness --initial-delay-seconds=1800 --period-seconds=600 --failure-threshold=1 -- bash -c 'exit $(test $(date +%H) -eq 8 && echo 1 || echo 0)'

https://www.mankier.com/1/oc-set-probe

Related questions

MORE COOL STUFF

케이트 블란쳇, 3일 만에 남편과 잤고 25년 만에 여전히 결혼

케이트 블란쳇, 3일 만에 남편과 잤고 25년 만에 여전히 결혼

케이트 블란쳇은 남편을 만났을 때 전형적인 데이트 조언을 무시했습니다.

마이클 쉰이 비영리 배우인 이유

마이클 쉰이 비영리 배우인 이유

Michael Sheen은 비영리 배우이지만 정확히 무엇을 의미합니까?

Hallmark Star Colin Egglesfield는 RomaDrama Live에서 스릴 넘치는 팬과의 만남을 제공합니다! [독점적인]

Hallmark Star Colin Egglesfield는 RomaDrama Live에서 스릴 넘치는 팬과의 만남을 제공합니다! [독점적인]

Hallmark 스타 Colin Egglesfield는 RomaDrama Live에서 스릴 넘치는 팬 만남에 대해 설명했습니다! 그리고 대회에서의 그의 INSPIRE 프로그램.

'북부 노출'을 온라인으로 스트리밍할 수 없는 이유

'북부 노출'을 온라인으로 스트리밍할 수 없는 이유

Northern Exposure가 90년대의 가장 인기 있는 쇼 중 하나가 된 이유를 알아보려면 Blu-ray 또는 DVD 플레이어의 먼지를 털어내야 합니다.

신장 결석은 고통스럽지만 통증의 원인은 놀랍습니다.

신장 결석은 고통스럽지만 통증의 원인은 놀랍습니다.

신장 결석이 있으면 등을 찔린 것처럼 느낄 수 있습니다. 그러나 그것이 타는 듯한 고통을 일으키는 돌인가 아니면 다른 무엇인가?

깨끗한 물을 유지하기 위해 머리카락을 기부하세요

깨끗한 물을 유지하기 위해 머리카락을 기부하세요

미용실에서 깎은 머리카락과 개인 기부금은 유출된 기름을 흡수하고 환경을 보호하는 매트로 용도를 변경할 수 있습니다.

백악관에서 가장 기억에 남는 결혼식 살펴보기

백악관에서 가장 기억에 남는 결혼식 살펴보기

지난 200여 년 동안 백악관에서 결혼한 사람은 극소수에 불과합니다. 그들은 누구이며 결혼식을 성사시키기 위해 필요한 것은 무엇입니까?

흰색, 빨간색 또는 분홍색 중 가장 달콤한 자몽은 무엇입니까?

흰색, 빨간색 또는 분홍색 중 가장 달콤한 자몽은 무엇입니까?

과즙이 많은 자몽을 먹을 생각만 하면 입이 떡벌어지나요? 자몽에는 몸에 필요한 비타민과 항산화제가 풍부하기 때문에 주무르세요.

헤이 NFL, Joe Burrow와 Kyler Murray는 여성의 권리를 지원하는 데 약간의 도움을 줄 수 있습니다

헤이 NFL, Joe Burrow와 Kyler Murray는 여성의 권리를 지원하는 데 약간의 도움을 줄 수 있습니다

Joe Burrow Roe v. Wade의 전복에 대해 아무 말도 하지 않음으로써 NFL이 응답한 것은 황당하지만 예측 가능한 PR 결과였습니다.

또 다른 날, 또 다른 unhinged LIV 기자 회견

또 다른 날, 또 다른 unhinged LIV 기자 회견

(L부터) Pat Perez, Brooks Koepka 및 Patrick Reed 사우디 아라비아의 LIV 골프 리그에 대한 또 다른 믿을 수 없는 기자 회견에서 스포츠 팬들은 Brooks Koepka로부터 헛소리를 내뱉고 질문을 회피하는 놀라운 마스터 클래스를 받았습니다. 패트릭 리드(Patrick Reed), 브라이슨 디섐보(Bryson DeChambeau), 팻 페레즈(Pat Perez)는 가장 최근에 PGA 투어에서 이탈한 사람들입니다.

Ms. Marvel의 가족 동창회는 악당보다 더 강타합니다.

Ms. Marvel의 가족 동창회는 악당보다 더 강타합니다.

Red Dagger와 Ms. Marvel은 협력합니다.

Three Arrows Capital, 6억 7500만 달러 비트코인 ​​대출 불이행 후 모든 자산 청산 명령

Three Arrows Capital, 6억 7500만 달러 비트코인 ​​대출 불이행 후 모든 자산 청산 명령

크립토 업계에서 가장 큰 침몰선 중 하나인 쓰리 애로우 캐피털(Three Arrows Capital)이 마침내 그 불행에서 벗어났습니다. 화요일, 부실한 크립토 헤지 펀드가 버진 아일랜드 법원에 의해 청산 명령을 받았습니다. 3AC에 대출을 했습니다.

Azealia Banks, 마이크 던지고 마이애미 프라이드 공연에서 폭풍 : '여기에 서게 되어 정말 기쁘지 않습니다'

Azealia Banks, 마이크 던지고 마이애미 프라이드 공연에서 폭풍 : '여기에 서게 되어 정말 기쁘지 않습니다'

"Wynwood Pride는 너무 빈민가였습니다. 나는 튕겨야 했습니다." Azealia Banks는 그녀가 공연 도중 무대 밖으로 돌진한 후 트위터에 썼습니다.

그리스 2의 캐스트: 그들은 지금 어디에 있습니까?

그리스 2의 캐스트: 그들은 지금 어디에 있습니까?

개봉 40년이 지난 지금, 그리스 2의 출연진을 만나보세요.

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

Sunset's Maya Vander를 매각하여 마이애미에서 자신의 부동산 회사를 시작합니다: '우리가 인수합니다'

Sunset's Maya Vander를 매각하여 마이애미에서 자신의 부동산 회사를 시작합니다: '우리가 인수합니다'

Maya Vander는 Netflix의 Selling Sunset의 첫 5개 시즌에 Oppenheim Group의 부동산 중개인으로 출연했습니다.

Suffragettes Indicam #3: Junho

Suffragettes Indicam #3: Junho

Mais um mês se findando — e metade do ano de 2022 já passou. Sabe o que isso significa? Não, não é hora de verificar se você está cumprindo com suas resoluções de Ano Novo.

Calin (Estudo de Caso UX/UI Design)

Calin (Estudo de Caso UX/UI Design)

Este projeto foi desenvolvido a partir de briefing fictício disponibilizado pelo site Tifólio, uma plataforma para designers. Briefing Matriz CSD Como ponto inicial utilizei como base algumas notícias atuais sobre meios de pagamento digital e com essas informações desenvolvi a Matriz CSD.

Times para plataformizar a produtividade das pessoas desenvolvedoras

Times para plataformizar a produtividade das pessoas desenvolvedoras

Plataformas Internas de Desenvolvimento (abreviado para IDP em inglês) provavelmente é a palavra-chave que você mais ouviu recentemente, mas por que isso se tornou uma forte tendência para empresas em momento de hiper-crescimento? Estive no The Developer’s Conference em Florianópolis no começo deste mês (03 de junho), falando um pouco mais sobre as motivações por trás de um IDP e como estamos endereçando esse assunto aqui no PicPay. Rotatividade e Onboarding Quando foi a última vez que alguém entrou no time em que você está atuando?Imagino que o período não passe por mais de 3 meses, sim, estamos em um momento de alta rotação de profissionais de TI, uma pesquisa do Gartner aponta que até o final de 2022, aproximademente 37 milhões de pessoas irão sair voluntariamente da empresa que atuam.

Este texto foi escrito por uma IA

Este texto foi escrito por uma IA

Eu adorei (não) escrever este texto! Você acreditaria se eu te dissesse que isso aqui foi escrito, em sua maioria, por uma Inteligência Artificial? Pois é, acredite ou não, mas é verdade! Não se assuste caso algo aleatório apareça ao decorrer deste texto ou que as informações sejam favoráveis para essa tecnologia… Inclusive, te desafio a encontrar o que foi eu e o que foi a máquina rs A inteligência artificial já é usada para criar textos, músicas e até filmes. Mas como ela consegue fazer isso? A inteligência artificial cria esses textos, músicas e filmes usando algoritmos.

Language