TL; DR
- เปเบเบทเปเบญเบเบฑเบเบฅเบธเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบชเบนเบเบเบญเบเบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบฅเบฐ microservices, เบเบฑเบเบเบถเบเปเบฅเบฐเบเบฒเบเบงเบฑเบเปเบเบเบเบปเปเบเบเปเปเบกเปเบเบเปเปเบเบฝเบเบเป.
- เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบทเปเบเบเบปเบงเปเบงเบเบถเปเบเปเบฅเบฐเบเบงเบฒเบกเบขเบทเบเบขเบธเปเบเปเบเบตเปเบกเบเบถเปเบ, เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบงเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบชเบนเบ (HOP).
- เปเบเบฅเบฐเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ, NOP เบฎเบฝเบเบฎเปเบญเบเปเบซเป: เบเบฒเบเบเบฑเบเปเบกเปเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบฒเบเบเบดเบเบเบฒเบกเบขเปเบฒเบเปเบเปเบเบดเบ, เบเบฒเบเบเบงเบเบชเบญเบเบชเบธเบเบฒเบเบดเบเบฒเบ, เปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบ / เบเบฒเบเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบ.
- เปเบเปเบเบฒเบเบเบงเบเบชเบญเบเปเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบ NOR เบเบฝเบกเบเบงเบฒเบกเบเปเบญเบก ะธ เบเบฒเบโเบชเบทเบโเบชเบงเบโเบเบฒเบโเบเปเบฒโเบฅเบปเบโเบเบตโเบงเบดเบโ Kubernetes.
เปเบกเปเปเบเบเบเบงเบเบชเบธเบเบฐเบเบฒเบเปเบกเปเบเบซเบเบฑเบ?
เปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบญเบญเบเปเบเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบฅเบฐเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบชเบนเบ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบเบดเบเบเปเบฝเบงเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฑเปเบเบเปเบฒเบงเปเบเบฑเบเบเบงเบฒเบกเบเบปเบเบเบฒเบเบเปเปเบเบงเบฒเบกเบเบดเบเบเบฒเบ. เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเปเบเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเบงเปเบฒเบกเบตเบเบงเบฒเบกเบเบดเบเบเปเบฒเบกเบฑเบเบเบทเปเบเบเบปเบงเปเบงเบเบฒเบเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบฅเบง. เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฅเบฒเบงเบเบปเปเบงเปเบเปเบเปเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบธเบฅเบฐเบเบฒเบ - เปเบเบดเปเบเปเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเบเบทเบเบงเบฒเบเปเบงเปเปเบเบเบฑเบเปเบเบเบเปเบฒเบเบซเบฒเบ. เปเบฅเบฐเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบ k8s เปเบกเปเบเบกเบตเบขเบนเปเบชเบนเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบญเบญเบเปเบเบเบเบธเปเบก, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบฎเบนเบเปเบเบเบเบตเปเปเบเปเบเบญเบ. เปเบเบเบฑเบเบเบฒเบเบงเบเปเบเบปเบฒเปเบกเปเบเปเบกเปเปเบเบเบเบงเบเบชเบธเบเบฐเบเบฒเบ. เบกเบฑเบเบเปเบฒเบเบปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบชเบทเปเบชเบฒเบเบเบฑเบ k8s เบงเปเบฒเบกเบฑเบเบกเบตเบชเบธเบเบฐเบเบฒเบเบเบต. เบเบตเปเปเบกเปเบเบเปเปเบเบฝเบเปเบเปเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบงเปเบฒเบเบฑเบเบเปเบฒเบฅเบฑเบเปเบฅเปเบ, เปเบเปเบเบฑเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบกเบฑเบเปเบเปเบฎเบฑเบเปเบฅเบฐเบเบญเบเบชเบฐเบซเบเบญเบเบเปเปเบเบฒเบเบฎเปเบญเบเบเป. เบเบดเปเบ Kubernetes เบฎเบนเปเบเปเบฝเบงเบเบฑเบเบชเบธเบเบฐเบเบฒเบเบเบญเบเบเบฑเบเบซเบผเบฒเบเปเบเบปเปเบฒเปเบ, เบเบฒเบเบเบฑเบเบชเบดเบเปเบเบเบตเปเบชเบฐเบซเบฅเบฒเบเบเบงเปเบฒเบเบตเปเบกเบฑเบเปเบฎเบฑเบเบเปเบฝเบงเบเบฑเบเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเปเบฅเบฐเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบ. เบเบฑเปเบเบเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบชเบนเบเปเบฎเบฑเบเปเบซเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเปเบฒเบฎเปเบญเบเบเปเปเบเปเบเบฑเบเปเบงเบฅเบฒ.
เบซเบผเบฑเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบชเบนเบ (HOP)
เบซเบผเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบชเบนเบเปเบกเปเบเบซเบเบถเปเบเปเบ
เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฅเบฒเบงเบเบตเปเบญเบญเบเปเบเบเบกเบฒเปเบเปเบเบตเบเบฑเบเบเบถเบเปเบซเบเบเบฒเบเบซเบผเบฑเบเบเบญเบเบกเบฑเบเปเบเบเปเบเป I/O streams เบกเบฒเบเบเบฐเบเบฒเบ STDERR เปเบฅเบฐ STDOUT. เบเปเปเปเบเปเบกเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเปเบงเบ, เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ filebeat, logstash เบซเบผเบท fluentd, เบเบฒเบเบชเบปเปเบเบเบฑเบเบเบถเบเปเบเบเบฑเบเบฅเบฐเบเบปเบเบเบฒเบเบเบงเบเบชเบญเบเบชเบนเบเบเบฒเบ (เบเบปเบงเบขเปเบฒเบ Prometheus) เปเบฅเบฐเบฅเบฐเบเบปเบเบเบฒเบเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบฑเบเบเบถเบ (เบเบธเบเบเบญเบเปเบง ELK). เปเบเบเบงเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฅเบฒเบงเปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบเบเบฒเบกเปเบเบเบเบปเบเบชเบญเบเบชเบธเบเบฐเบเบฒเบ เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบชเบนเบ.
เบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเปเบฎเบนเบเปเบเบเบเบฒเบเบเบงเบเบชเบธเบเบฐเบเบฒเบเปเบ Kubernetes?
เบญเบญเบเบเบฒเบเบเปเบญเบ, k8s เบเบดเบเบเบฒเบกเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบฑเบเปเบเบเปเบเปเบซเบเบถเปเบเบเบญเบเบเบปเบงเบเบงเบเบเบธเบก (
เปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, k8s เปเบฎเบฑเบ เบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบเปเบฒเบเบฒเบ. เปเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเบขเบฑเปเบเบขเบทเบเบเบตเป, kubelet เบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบเบเบงเบเบชเบญเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบฐเบเบงเบเบเบฒเบเปเบเบเบฑเบเบเบธ. เปเบกเบทเปเบญเบฅเบฒเบงเปเบเบปเปเบฒเปเบเบงเปเบฒเบเบฐเบเบงเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเปเบเปเบขเบธเบเปเบเบปเบฒ, เบฅเบฒเบงเบเบฐเปเบฅเบตเปเบกเบกเบฑเบเปเบซเบกเป. เบเปเบฒเบเปเปเบเบดเบเบเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเบเบฒเบเปเบเบตเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบซเบกเป, เปเบฅเบฐเปเบเบฅเปเบเบฅเบกเบเบทเบเบญเบญเบเปเบเบเปเบเบทเปเบญเบเบดเบเบเปเปเบเบดเบเบเบฒเบเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบเบงเบเบชเบญเบเบชเบธเบเบฐเบเบฒเบเบเบญเบเบเบฐเบเบงเบเบเบฒเบเปเบกเปเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบก NOP เปเบฅเบฐเบฎเบนเบเปเบเบเบเบฒเบเบเบปเบเบชเบญเบเบชเบธเบเบฐเบเบฒเบ. เบเบงเบฒเบกเบชเบปเบเบชเบฒเบเบเบฝเบเปเบเปเปเบกเปเบเบงเปเบฒเบเปเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบทเบเบฅเบปเบเบฅเปเบฒเบเปเบเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบซเบกเป. เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเป, k8s เบชเบฐโเปเบซเบเบต 2 เบงเบดโเบเบตโเบเบตเปโเปเบฅเบดเบโเบเบงเปเบฒโเปเบเบทเปเบญโเบเปเบฒโเบเบปเบโเบเบฑเบโเบซเบฒโเบเบญเบโเบเบฑเบโ:
LivenessProbe
เปเบเบฅเบฐเบซเบงเปเบฒเบ เบเบฒเบโเบชเบทเบโเบชเบงเบโเบเบฒเบโเบเปเบฒโเบฅเบปเบโเบเบตโเบงเบดเบโ kubelet เบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบงเบเบชเบญเบ 3 เบเบฐเปเบเบ: เบเปเปเบเบฝเบเปเบเปเบเปเบฒเบเบปเบเบงเปเบฒ pod เบเปเบฒเบฅเบฑเบเปเบฅเปเบ, เปเบเปเบเบฑเบเบงเปเบฒเบกเบฑเบเบเปเบญเบกเบเบตเปเบเบฐเบฎเบฑเบเปเบฅเบฐเบเบญเบเบชเบฐเบซเบเบญเบเบขเปเบฒเบเบเบฝเบเบเปเบเปเปเบเบฒเบเบฎเปเบญเบเบเป:
- เบเบฑเปเบเบเปเบฒเบเบฒเบเบฎเปเบญเบเบเป HTTP เบเบฑเบ pod เปเบเป. เบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเปเบญเบเบกเบตเบฅเบฐเบซเบฑเบเบเบญเบเบชเบฐเบซเบเบญเบ HTTP เปเบเบฅเบฐเบเบฑเบเบเบฒเบ 200 เบซเบฒ 399. เบเบฑเปเบเบเบฑเปเบ, เบฅเบฐเบซเบฑเบ 5xx เปเบฅเบฐ 4xx เบชเบฑเบเบเบฒเบเบงเปเบฒเบเบฑเบเบเปเบฒเบฅเบฑเบเบกเบตเบเบฑเบเบซเบฒ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฐเบเบงเบเบเบฒเบเบเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบตเบเบเบฒเบ.
- เปเบเบทเปเบญเบเบปเบเบชเบญเบ pods เบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบเปเปเปเบกเปเบ HTTP (เบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบกเบฅ Postfix), เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป TCP.
- เบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบปเบเปเบญเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบ pod (เบเบฒเบเปเบ). เบเบฒเบเบเบงเบเบชเบญเบเปเบกเปเบเบเบทเบงเปเบฒเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบเปเบฒเบฅเบฐเบซเบฑเบเบชเปเบฒเปเบฅเบฑเบเบเปเบฒเบชเบฑเปเบเปเบกเปเบ 0.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเป. เบเปเบฒเบเบดเบเบฒเบกเบเบญเบ pod เบเปเปเปเบเบเบฐเบเบญเบเบเปเบงเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ NodeJS เบเบตเปเบเบดเปเบกเบเบงเบฒเบกเบเบดเบเบเบฒเบ 500 เปเบเบเปเบฒเบฎเปเบญเบเบเป HTTP. เปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒ container เปเบเปเบเบทเบ restart เปเบกเบทเปเบญเปเบเปเบฎเบฑเบเบเปเปเบเบดเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบง, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ livenessProbe:
apiVersion: v1
kind: Pod
metadata:
name: node500
spec:
containers:
- image: magalix/node500
name: node500
ports:
- containerPort: 3000
protocol: TCP
livenessProbe:
httpGet:
path: /
port: 3000
initialDelaySeconds: 5
เบเบตเปเบเปเปเปเบเบเบเปเบฒเบเบเบฒเบเบเปเบฒเบเบดเบเบฒเบก pod เบญเบทเปเบเป, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเบตเปเบกเบงเบฑเบเบเบธ .spec.containers.livenessProbe
. เบเบฒเบฅเบฒเบกเบดเปเบเบต httpGet
เบเบญเบกเบฎเบฑเบเปเบชเบฑเปเบเบเบฒเบเบเบตเปเบเปเบฒเบฎเปเบญเบเบเป HTTP GET เบเบทเบเบชเบปเปเบ (เปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบตเปเปเบกเปเบ /
, เปเบเปเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฒเบเบเปเปเบชเบนเปเบญเบฒเบเบเบฐเบกเบตเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ: /api/v1/status
). LivenessProbe เบญเบทเปเบเบเบญเบกเบฎเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบต initialDelaySeconds
, เปเบเบดเปเบเปเบเบฐเบเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบงเบเบชเบญเบเปเบซเปเบฅเปเบเปเบฒเบเปเบฒเบเบงเบเบงเบดเบเบฒเบเบตเบเบตเปเบเปเบฒเบเบปเบ. เบเบงเบฒเบกเบฅเปเบฒเบเปเบฒเปเบกเปเบเบเปเบฒเปเบเบฑเบเปเบเบฒเบฐเบงเปเบฒเบเบนเปเบเบญเบเปเบเบเปเบเบตเบเปเบญเบเบเบฒเบเปเบงเบฅเบฒเปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบ, เปเบฅเบฐเปเบกเบทเปเบญเบเบดเบเปเบเบตเบเปเบซเบกเป, เบกเบฑเบเบเบฐเบเปเปเบกเบตเปเบงเบฅเบฒเปเบเบซเบเบถเปเบ.
เปเบเบทเปเบญเบเบณเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเปเบชเปเบเบธเปเบก, เปเบซเปเปเบเป:
kubectl apply -f pod.yaml
เบซเบผเบฑเบเบเบฒเบเบชเบญเบเบชเบฒเบกเบงเบดเบเบฒเบเบต, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบงเบเปเบเบดเปเบเปเบเบทเปเบญเปเบเบเบญเบเบเบฑเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
kubectl describe pods node500
เปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบปเบเบเบฐเบฅเบดเบ, เบเบญเบเบซเบฒ
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, livenessProbe เปเบเปเบฅเบดเปเบฅเบตเปเบกเบเบฒเบเบฎเปเบญเบเบเป HTTP GET, เบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบเปเบชเปเบฒเบเบเปเปเบเบดเบเบเบฒเบ 500 (เปเบเบดเปเบเปเบเบฑเบเบชเบดเปเบเบเบตเปเบกเบฑเบเบเบทเบเบงเบฒเบเปเบเบเปเบซเปเปเบฎเบฑเบ), เปเบฅเบฐ kubelet เปเบฅเบตเปเบกเบเบปเปเบเปเบซเบกเป.
เบเปเบฒเบเปเบฒเบเบชเบปเบเปเบชเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ NideJS เบเบทเบเบเบฑเปเบเปเบเบเบเบฒเบเปเบเบงเปเบ, เบเบตเปเปเบกเปเบ app.js เปเบฅเบฐ Dockerfile เบเบตเปเบเบทเบเบเปเบฒเปเบเป:
app.js
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(500, { "Content-type": "text/plain" });
res.end("We have run into an errorn");
});
server.listen(3000, function() {
console.log('Server is running at 3000')
})
dockerfile
FROM node
COPY app.js /
EXPOSE 3000
ENTRYPOINT [ "node","/app.js" ]
เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบชเบฑเบเปเบเบเบงเปเบฒเบเบตเป: livenessProbe เบเบฐเบเบดเบเปเบเบตเบเบเปเบญเบเบเบฑเบเบเบธเปเบซเบกเปเปเบเบปเปเบฒเบเบฑเปเบเบเปเบฒเบกเบฑเบเบฅเบปเปเบกเปเบซเบฅเบง. เบเปเบฒเบเบฒเบเบเบดเบเปเบเบตเบเปเบซเบกเปเบเปเปเปเบเปเปเบเปเปเบเบเปเปเบเบดเบเบเบฒเบเบเบตเปเบเปเบญเบเบเบฑเบเบเปเปเปเบซเปเบเปเบญเบเบเบฑเบเบเบธเปเบฎเบฑเบเบงเบฝเบ, kubelet เบเบฐเบเปเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบเปเบเป.
เบเบฝเบกเบเบงเบฒเบกเบเปเบญเบก
readinessProbe เปเบฎเบฑเบเบงเบฝเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ livenessProbes (เบเบฒเบเบฎเปเบญเบเบเป GET, เบเบฒเบเบชเบทเปเบชเบฒเบ TCP เปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบ), เบเบปเบเปเบงเบฑเปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒ. เบเปเบญเบเบเบฑเบเบเบธเบเบตเปเบเบงเบเบเบปเบเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเปเบกเปเบเบเปเปเปเบเปเปเบเบตเบเบเบทเบเปเปเป, เปเบเปเบเบทเบเปเบเบเบญเบญเบเบเบฒเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเบเบฒเปเบเบปเปเบฒ. เบเบดเบเบเบฐเบเบฒเบเบฒเบเบงเปเบฒเบซเบเบถเปเบเปเบเบเบฑเบเบเบธเบเปเบฒเบฅเบฑเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบดเบเปเบฅเปเบซเบผเบฒเบเบซเบผเบทเบขเบนเปเบเบฒเบเปเบเปเบเบฒเบเปเบซเบผเบเบซเบเบฑเบ, เปเบฎเบฑเบเปเบซเปเปเบงเบฅเบฒเบเบญเบเบชเบฐเบซเบเบญเบเปเบเบตเปเบกเบเบถเปเบ. เปเบโเบเปโเบฅเบฐโเบเบตโเบเบญเบ livenessProbeโ, เบเบฒเบโเบเบงเบโเบชเบญเบโเบเบงเบฒเบกโเบเปเบญเบกโเบเบญเบโเบเบฒเบโเบเบญเบโเบชเบฐโเบซเบเบญเบโเปเบเปโเบเบทเบโเบเบฐโเบเบธเปเบโเปเบซเปโเปเบเบตเบ (เบเปเบฒเบโเบเบฒโเบฅเบฒโเบกเบดโเปเบเบตโเบเบฒเบโเบเบงเบโเบชเบญเบ timeoutSecondsโ)โ, เบซเบผเบฑเบโเบเบฒเบโเบเบฑเปเบ kubelet restart เบเบฑเบโ. เปเบกเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบ, เบเปเบญเบเบเบฑเบเบเบธเปเบฅเบตเปเบกเบเบฐเบเบดเบเบฑเบเบงเบฝเบเบเบฒเบเบเบตเปเปเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเบซเบผเบฒเบ เปเบฅเบฐเบเบทเบเปเบเบตเบเบเบทเบเปเปเปเบญเบตเบเบเบฑเปเบ. เบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเปเบงเบเบญเบเบชเบฐเบซเบเบญเบ. เบเบปเบงเบขเปเบฒเบ, เบฅเบปเบเปเบเบเบฐเบเบฐเบเบตเปเบขเบนเปเปเบเบเบฐเบซเบเบปเบเบเปเบฒเบฅเบฑเบเบฅเปเบเปเบฒเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเปเบกเปเบเบเบฑเบเบเปเบฒ - เปเบฅเบฐเบฅเบปเบเปเบเปเบฎเบฑเบเบญเบธเบเบฐเบเบดเปเบซเบ.
เปเบซเปเบเบฝเบเบเปเบฒเบเบดเบเบฒเบก redinessProbe เบเบตเปเบเบฐเบเปเบฒเบเบปเบเปเบงเบฅเบฒเบเบญเบเบเปเบฒเบฎเปเบญเบเบเป GET เบเปเปเปเบเบตเบเบชเบญเบเบงเบดเบเบฒเบเบต, เปเบฅเบฐเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฐเบเบญเบเบชเบฐเบซเบเบญเบเบเปเบฒเบฎเปเบญเบเบเป GET เบซเบผเบฑเบเบเบฒเบ 5 เบงเบดเบเบฒเบเบต. เปเบเบฅเป pod.yaml เบเบงเบเบเบฐเปเบเบฑเบเปเบเบเบเบตเป:
apiVersion: v1
kind: Pod
metadata:
name: nodedelayed
spec:
containers:
- image: afakharany/node_delayed
name: nodedelayed
ports:
- containerPort: 3000
protocol: TCP
readinessProbe:
httpGet:
path: /
port: 3000
timeoutSeconds: 2
เปเบซเปเปเบเป pod เบเบฑเบ kubectl:
kubectl apply -f pod.yaml
เปเบซเปเบฅเปเบเปเบฒเบชเบญเบเบชเบฒเบกเบงเบดเบเบฒเบเบตเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบดเปเบเบงเปเบฒเบเบงเบฒเบกเบเปเบญเบกเบเบญเบ Probe เปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบ:
kubectl describe pods nodedelayed
เปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบปเบเบเบฐเบฅเบดเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบงเปเบฒเบเบฒเบเปเบซเบเบเบฒเบเปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบ
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, kubectl เบเปเปเปเบเปเบเบดเบเปเบเบตเบเบเบฑเบเบเบทเบเปเปเปเปเบกเบทเปเบญเปเบงเบฅเบฒเบเบงเบเบชเบญเบเปเบเบตเบ 2 เบงเบดเบเบฒเบเบต. เปเบเบเบเบตเปเบเบฐ, เบฅเบฒเบงเปเบเปเบเบปเบเปเบฅเบตเบเบเบฒเบเบฎเปเบญเบเบเป. เบเบฒเบเบชเบทเปเบชเบฒเบเบเบฒเปเบเบปเปเบฒเบเบฐเบเบทเบเปเบญเบเปเบเบซเบฒเบเปเบญเบเบญเบทเปเบ, เบเบฑเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ.
เบเบฐเบฅเบธเบเบฒเบฎเบฑเบเบเบฒเบเบงเปเบฒเบเบญเบเบเบตเปเบเบญเบเบเบทเบเปเบซเบผเบเปเบฅเปเบง, เปเบชเบฑเปเบเบเบฒเบ kubectl เบฎเปเบญเบเบเปเปเบเบซเบฒเบกเบฑเบเบญเบตเบเบเบฑเปเบ: เบเบฒเบเบเบญเบเบชเบฐเปเบญเบเบเปเปเบเบฒเบเบฎเปเบญเบเบเป GET เปเบกเปเบเบเปเปเบเบฑเบเบเปเบฒเบญเบตเบเบเปเปเปเบ.
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบเบเบฝเบ, เบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเปเบเบฅเป app.js เบเบตเปเบเบทเบเปเบเปเปเบ:
var http = require('http');
var server = http.createServer(function(req, res) {
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
sleep(5000).then(() => {
res.writeHead(200, { "Content-type": "text/plain" });
res.end("Hellon");
})
});
server.listen(3000, function() {
console.log('Server is running at 3000')
})
TL; DR
เบเปเบญเบเบเบตเปเบเบฐเบกเบฒเปเบเบดเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฑเบ, เบเบฑเบเบเบถเบเปเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบปเปเบเบเปเปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบฅเบฐเบเบงเบเปเบเบดเปเบเบชเบธเบเบฐเบเบฒเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเปเปเบกเบตเบงเบดเบเบตเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบเปเบเป. เบเบฑเบเบเบถเบเบเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบกเบทเปเบเบตเป; เบเบงเบเปเบเบปเบฒเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบฅเบฐเบชเบปเปเบเปเบเบซเบฒเบฅเบฐเบเบปเบเบเบฒเบเปเบเบฑเบเบเบฑเบเบเบถเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐเบชเบฐเบเบฒเบเบฐเบเบฒเบเบชเบธเบเปเบชเบตเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบชเบดเบเปเบ. [เบเบฑเบเบซเบกเบปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบเบเปเปเบกเบตเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฑเบเปเบเบเปเบเป monit, เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเปเบเบฑเบ k8s เบกเบฑเบเบเปเบฒเบเบเบถเปเบเบซเบผเบฒเบ :) - เบเบฑเบเบเบถเบเบเบญเบเบเบฑเบเบเบฒเบเบดเบเบฒเบ. ]
เปเบเบกเบทเปเบเบตเป, เบเบฒเบเปเบเปเปเบเบเปเบญเบเปเบฎเบฑเบเปเบเบทเบญเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบเปเบเบดเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบฑเบเบเปเบญเบเบชเบตเบเปเบฒ. เบเปเป, เบเบงเบเปเบเบปเบฒเบเบงเบเบชเบฐเปเบเบเบเบธเบเบชเบดเปเบเบชเบธเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบกเบชเบฒเบกเบฒเบเบชเบญเบเบเบฒเบกเปเบฅเบฐเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบตเปเบกเบตเบเบธเบเบเปเบฒเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบฐเบเบงเบเบเบฒเบเปเบเบทเปเบญเปเบซเปเบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบฑเบเบเบตเบเปเบฒเบเปเบฒเปเบเบฑเบ. เบญเบฑเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒเบเบฒเบเบญเบญเบเปเบเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฐเบชเบดเบเบเบดเบเบฒเบ, เปเบเบดเปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบซเบผเบฑเบเบเบฒเบเบชเบฑเบเปเบเบเบเบฒเบเบชเบนเบ (HOP).
Kubernetes เปเบซเป 2 เบเบฐเปเบเบเบเบฒเบเบเบงเบเบชเบธเบเบฐเบเบฒเบเบเบฒเบกเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ: readinessProbe เปเบฅเบฐ livenessProbe. เบเบฑเบเบชเบญเบเปเบเปเบเบฒเบเบเบงเบเบชเบญเบเบเบฐเปเบเบเบเบฝเบงเบเบฑเบ (เบเบฒเบเบฎเปเบญเบเบเป HTTP GET, เบเบฒเบเบชเบทเปเบชเบฒเบ TCP เปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบ). เบเบงเบเปเบเบปเบฒเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเบฒเบเบเบฑเบเบชเบดเบเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเปเบฎเบฑเบเปเบเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเปเปเบเบฑเบเบซเบฒเปเบเบเบฑเบ. livenessProbe เบฃเบตเบชเบฐเบเบฒเบเบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบเบเบซเบงเบฑเบเบงเปเบฒเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฐเบเปเปเปเบเบตเบเบเบถเปเบเบญเบตเบ, เปเบฅเบฐเบเบงเบฒเบกเบเปเบญเบก Probe เปเบเบเบเบฑเบเบเบฒเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเบเบฒเปเบเบปเปเบฒเบเบปเบเบเปเบงเบฒเบชเบฒเปเบซเบเบเบญเบเบเบฑเบเบซเบฒเบเบฐเบเบทเบเปเบเปเปเบ.
เบเบฒเบเบญเบญเบเปเบเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบงเบเบเบฐเบเบญเบเบกเบตเบเบฑเบเบชเบญเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเบเบงเบเบชเบญเบเปเบฅเบฐเปเบซเปเปเบเปเปเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบฝเบเบเป, เปเบเบเบชเบฐเปเบเบฒเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบปเบเปเบงเบฑเปเบเบเบทเบเบเบดเปเบก. เบกเบฑเบเบเบฑเบเบเบงเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบธเบเบชเบดเปเบเบชเบธเบ API เบเบตเปเบเปเบฒเปเบเบฑเบเบเบตเปเบชเบฐเบซเบเบญเบเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก (Prometheus) เบเบตเปเบกเบตเบเบปเบงเบเบตเปเบงเบฑเบเบชเบธเบเบฐเบเบฒเบเบเบตเปเบชเปเบฒเบเบฑเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com