application 응용과제 1번
333
작성한 질문수 5
startupProbe의 실패기간을 성공기간보다 짧게 가져가기위해서
이렇게 변경해주었을때 위와같은 오류가 발생했습니다.
오류결과
successThreshold와 failureThreshold를 변경할 수 없다는 거 같습니다.
답변 3
1
Internal server error
Pod "api-tester-1231-6f49f78859-qvmn8" is invalid: spec: Forbidden: pod updates may not change fields other than spec.containers[*].image,`spec.initContainers[*].image`,`spec.activeDeadlineSeconds`,`spec.tolerations` (only additions to existing tolerations),`spec.terminationGracePeriodSeconds` (allow it to be set to 1 if it was previously negative) core.PodSpec{ Volumes: {{Name: "files", VolumeSource: {PersistentVolumeClaim: &{ClaimName: "api-tester-1231-files"}}}, {Name: "secret-datasource", VolumeSource: {Secret: &{SecretName: "api-tester-1231-postgresql", DefaultMode: &420}}}, {Name: "kube-api-access-zcbck", VolumeSource: {Projected: &{Sources: {{ServiceAccountToken: &{ExpirationSeconds: 3607, Path: "token"}}, {ConfigMap: &{LocalObjectReference: {Name: "kube-root-ca.crt"}, Items: {{Key: "ca.crt", Path: "ca.crt"}}}}, {DownwardAPI: &{Items: {{Path: "namespace", FieldRef: &{APIVersion: "v1", FieldPath: "metadata.namespace"}}}}}}, DefaultMode: &420}}}}, InitContainers: nil, Containers: []core.Container{ { ... // 12 identical fields LivenessProbe: &{ProbeHandler: {HTTPGet: &{Path: "/liveness", Port: {IntVal: 8080}, Scheme: "HTTP"}}, TimeoutSeconds: 1, PeriodSeconds: 10, SuccessThreshold: 1, ...}, ReadinessProbe: &{ProbeHandler: {HTTPGet: &{Path: "/readiness", Port: {IntVal: 8080}, Scheme: "HTTP"}}, TimeoutSeconds: 1, PeriodSeconds: 10, SuccessThreshold: 1, ...}, StartupProbe: &core.Probe{ ... // 3 identical fields PeriodSeconds: 5, SuccessThreshold: 1, - FailureThreshold: 5, + FailureThreshold: 2, TerminationGracePeriodSeconds: nil, }, Lifecycle: nil, TerminationMessagePath: "/dev/termination-log", ... // 6 identical fields }, }, EphemeralContainers: nil, RestartPolicy: "Always", ... // 28 identical fields }
failureThreshold를 수정할때마다 이러한 오류가 발생합니다.
0
아..[쿠버네티스 대시보드 -> 파드 -> 편집 -> startupProbe] 이 내용을 보니 원인을 알겠네요.
제가 다른 일을 하면서 답변을 드리다 보니, 질문을 급하게 보고 좀 즉흥적으로 답변을 드린 것 같습니다. 그런 부분은 사과드리고요. 일단 Pod를 수정하시면 안됩니다. ^^ Deployment를 수정하셔야 되요.
그리고 답변 드린 내용을 정정하자면 startupProbe의 successThreshold 수치도 2로 변경 할 수 있습니다. 두 번 성공해야 잘 기동된 걸로 간주한다는 셈인거죠.
1
startupProbe가 한번이라도 응답이 오면 성공으로 간주.
즉, startupProbe의 failureThreshold를 successThreshold보다 짧은 기간(successThreshold가 1이니까 더 짧게)을 설정하는게 맞을까요?
그런데 저는 쿠버네티스 대시보드 -> 파드 -> 편집 -> startupProbe를 수정하면 저런 에러가 뜨더라구요.
1
Threshold는 기간이 아닌 횟수입니다.
그리고 startupProbe는 successThreshold이 1로 고정이기 때문에 한번이라도 성공 응답이 오면 App이 정상적으로 기동 됐다고 판단하는 거고요. 이 수치는 변경할 수가 없어요.
반면에 Application이 무거워서 기동 시간이 오래 걸린다면, failureThreshold의 수치가 작을 때 App이 무한 재기동 될 수 있기 때문에, failureThreshold를 늘려야 됩니다.
그래서 결국 startupProbe의 successThreshold이 1은 변경하면 안되는 수치가 되요.
만약 강의를 들으셨는데 아직 개념이 헷갈리시면, 한번 더 강의를 들어보시길 권해드릴께요.
아, 그리고 응용과제 1번은 startupProbe에서 failureThreshold의 수치만 낮추면 됩니다 :)
0
startupProbe은 한번만 성공하면 끝나는 속성입니다. 그렇기 때문에 success는 1 말고는 다른 값이 올 수가 없어요. 반면에 failure는 1로 변경할 수 있고요.
해당 속성을 변경하는 목적에 대해서 좀 더 상세하게 설명 가능할까요? "startupProbe의 실패기간을 성공기간보다 짧게 가져가기위해서"라는 게 어떤 의미인지 잘 이해가 안되서요.
젠킨스버전과 플러그인설치
1
35
2
강의자료 원본 애니메이션처리가 되어 있을까요?
1
87
1
get pods 했을 때 connection refused가 뜹니다.
1
92
3
베이그란트 플러그인 설치 실패
1
86
1
실습겸 미니pc사보려는데 이정도면 괜찮을까요?
0
95
2
Image updater 1.0 이후 CRD 기반 변경 시 적용 방법 공유합니다.
1
85
1
기본 values 파일과 service name에 대한 질문이 있습니다.
0
73
2
Sprint 2 강의에서 yaml 파일들 경로에 대해 궁금한게 있어요.
1
64
2
Selector의 속성에 대해 질문 드립니다.
1
60
1
인스턴스 스펙
1
70
2
Container 기술 관련해서 질문드립니다.
1
84
3
Jenkins 빌드 UI 설정 관련 질문드립니다.
1
86
3
Jenkins 빌드 진행 UI 설정
0
70
1
cicd 서버 올린 후 기존 마스터 노드 기동 시 네트워크 에러
1
80
2
HPA - Auto Scaling 실습 관련 에러 해결 공유.
1
66
1
Loki-Stack 실습 관련 질문
1
74
2
Self-Healing 테스트 중 문의사항
1
73
2
영상 내용과 강의 자료가 상이해서 강의 듣기가 짜증납니다.
0
108
2
젠킨스 구축 9단계 오류
1
89
3
실습환경 네트워크 끊김 및 느린 속도 관련 질문
1
86
2
온프레미스 환경에 쿠버네티스도입
1
102
1
SealedSecret 관련 궁금증.
1
53
1
vagrant up 사용 시 The SSH connection was unexpectedly closed by the remote end
1
90
2
젠킨스 배포 질문
1
60
2





