เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

เด•เตเดฑเดฟเดชเตเดชเต. เดตเดฟเดตเตผเดคเตเดคเดจเด‚.: เดˆ เดฒเต‡เด–เดจเด‚ เดชเตŠเดคเตเดธเดžเตเดšเดฏเดคเตเดคเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดš เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเตเด•เดณเตเดŸเต† เดญเดพเด—เดฎเดพเดฃเต เดชเด เดฟเด•เตเด•เตเด•8s, เดชเดฐเดฟเดถเต€เดฒเดจ เด•เดฎเตเดชเดจเดฟเด•เดณเตเด‚ เดตเตเดฏเด•เตเดคเดฟเด—เดค เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเด‚ เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป. เด…เดคเดฟเตฝ, K8s เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเตฝ เดชเตŠเดคเตเดตเดพเดฏ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดคเต เดจเดŸเดชเดŸเดฟเด•เดณเดพเดฃเต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฎเดพเดจเต‡เดœเตผ เดกเดพเดจเดฟเดฏเต‡เตฝ เดชเต‹เดณเตปเดธเดฟเด•เต เดตเดฟเดทเตเดตเตฝ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดชเด™เตเด•เดฟเดŸเตเดจเตเดจเต.

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

TL;DR: Kubernetes-เดฒเต† เดตเดฟเดจเตเดฏเดพเดธเด‚ เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดกเดฏเด—เตเดฐเด‚ เด‡เดคเดพ:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เดชเดฟเดถเด•เตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดซเตเดฒเต‹เดšเดพเตผเดŸเตเดŸเต. เด’เดฑเดฟเดœเดฟเดจเตฝ (เด‡เด‚เด—เตเดฒเต€เดทเดฟเตฝ) เด‡เดตเดฟเดŸเต† เดฒเดญเตเดฏเดฎเดพเดฃเต เดชเต€เดกเดฟเดฏเต†เดซเต ะธ เดšเดฟเดคเตเดฐเดฎเดพเดฏเดฟ.

Kubernetes-เดฒเต‡เด•เตเด•เต เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฎเต‚เดจเตเดจเต เด˜เดŸเด•เด™เตเด™เตพ เดจเดฟเด™เตเด™เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

  • เดตเดฟเดจเตเดฏเดพเดธ - เด‡เดคเต เดชเต‹เดกเตโ€Œเดธเต เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดชเด•เตผเดชเตเดชเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเตเดคเดฐเด‚ เดชเดพเดšเด•เด•เตเด•เตเดฑเดฟเดชเตเดชเดพเดฃเต;
  • เดธเต‡เดตเดจเด‚ - เดชเต‹เดกเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดŸเตเดฐเดพเดซเดฟเด•เต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด†เดจเตเดคเดฐเดฟเด• เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเตผ;
  • เดคเตเดŸเดฐเตเด• โ€” เดชเตเดฑเด‚ เดฒเต‹เด•เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเต‡เดตเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เต เดŽเด™เตเด™เดจเต† เดŽเดคเตเดคเตเด‚ เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดตเดฟเดตเดฐเดฃเด‚.

เด’เดฐเต เดฆเตเดฐเตเดค เด—เตเดฐเดพเดซเดฟเด•เตเด•เตฝ เดธเด‚เด—เตเดฐเดนเด‚ เด‡เดคเดพ:

1) เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ, เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฑเตเด•เดณเตเดŸเต† เดฐเดฃเตเดŸเต เดชเดพเดณเดฟเด•เดณเดฟเดฒเต‚เดŸเต† เดฌเดพเดนเตเดฏเดฒเต‹เด•เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดŸเตเดฐเดพเดซเดฟเด•เต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต: เด†เดจเตเดคเดฐเดฟเด•เดตเตเด‚ เดฌเดพเดนเตเดฏเดตเตเด‚.

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

2) เด†เดจเตเดคเดฐเดฟเด• เดฌเดพเดฒเตปเดธเดฑเดฟเดจเต† เดธเตผเดตเต€เดธเต เดŽเดจเตเดจเตเด‚ เดฌเดพเดนเตเดฏเดฎเดพเดฏเดคเดฟเดจเต† เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เดŽเดจเตเดจเตเด‚ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต.

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

3) เดตเดฟเดจเตเดฏเดพเดธเด‚ เดชเต‹เดกเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดตเดฏเต† เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด…เดต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเดฒเตเดฒ).

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚ เดนเดฒเต‹ เดตเต‡เตพเดกเต. เด‡เดคเดฟเดจเดพเดฏเตเดณเตเดณ YAML เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเด‚:

apiVersion: apps/v1
kind: Deployment # <<<
metadata:
  name: my-deployment
  labels:
    track: canary
spec:
  selector:
    matchLabels:
      any-name: my-app
  template:
    metadata:
      labels:
        any-name: my-app
    spec:
      containers:
      - name: cont1
        image: learnk8s/app:1.0.0
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service # <<<
metadata:
  name: my-service
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    name: app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress # <<<
metadata:
  name: my-ingress
spec:
  rules:
  - http:
    paths:
    - backend:
        serviceName: app
        servicePort: 80
      path: /

เดจเดฟเตผเดตเดšเดจเด‚ เดตเดณเดฐเต† เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏเดคเดพเดฃเต, เด˜เดŸเด•เด™เตเด™เตพ เดชเดฐเดธเตเดชเดฐเด‚ เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

  • เดŽเดชเตเดชเต‹เดดเดพเดฃเต เดจเดฟเด™เตเด™เตพ เดชเต‹เตผเดŸเตเดŸเต 80 เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต, เดŽเดชเตเดชเต‹เตพ 8080 เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚?
  • เด“เดฐเต‹ เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเด‚ เดตเตˆเดฐเตเดฆเตเดงเตเดฏเดฎเตเดฃเตเดŸเดพเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป เดžเดพเตป เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเต‹เตผเดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดฃเดฎเต‹?
  • เดฒเต‡เดฌเตฝ เดชเต‡เดฐเตเด•เตพ เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต‹? เด…เดตเตผ เดŽเดฒเตเดฒเดพเดฏเดฟเดŸเดคเตเดคเตเด‚ เด’เดฐเตเดชเต‹เดฒเต† เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเดฎเต‹?

เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเตฝ เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดฎเต‚เดจเตเดจเต เด˜เดŸเด•เด™เตเด™เดณเตเด‚ เดชเดฐเดธเตเดชเดฐเด‚ เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด“เตผเด•เตเด•เดพเด‚. เดตเดฟเดจเตเดฏเดพเดธเดตเตเด‚ เดธเต‡เดตเดจเดตเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚.

เดตเดฟเดจเตเดฏเดพเดธเดตเตเด‚ เดธเต‡เดตเดจเดตเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฌเดจเตเดงเด‚

เดจเดฟเด™เตเด™เตพ เด†เดถเตเดšเดฐเตเดฏเดชเตเดชเต†เดŸเตเด‚, เดŽเดจเตเดจเดพเตฝ เดตเดฟเดจเตเดฏเดพเดธเดตเตเด‚ เดธเต‡เดตเดจเดตเตเด‚ เด’เดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเด‚ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดชเด•เดฐเด‚, เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเต† เดฎเดฑเดฟเด•เดŸเดจเตเดจเต เดธเต‡เดตเดจเด‚ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดชเต‹เดกเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เดชเต‹เดกเตเด•เดณเตเด‚ เดธเต‡เดตเดจเด™เตเด™เดณเตเด‚ เดŽเด™เตเด™เดจเต† เดชเดฐเดธเตเดชเดฐเด‚ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต. เด“เตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸ เดฎเต‚เดจเตเดจเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ:

  1. เดธเต†เดฒเด•เตเดŸเตผ (selector) เดธเต‡เดตเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต เดชเต‹เดกเต เดฒเต‡เดฌเดฒเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚.
  2. targetPort เดšเต‡เตผเดจเตเดจเต‡ เดชเดฑเตเดฑเตเดณเตเดณเต‚ containerPort เดชเต‹เดกเดฟเดจเตเดณเตเดณเดฟเดฒเต† เด•เดฃเตเดŸเต†เดฏเตเดจเตผ.
  3. port เดธเต‡เดตเดจเด‚ เดŽเดจเตเดคเตเด‚ เด†เด•เดพเด‚. เดตเตเดฏเดคเตเดฏเดธเตเดค IP เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต‡ เดชเต‹เตผเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดกเดฏเด—เตเดฐเด‚ เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดžเดตเดฏเต†เดฒเตเดฒเดพเด‚ เด—เตเดฐเดพเดซเดฟเด•เตเด•เตฝ เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต:

1) เดธเต‡เดตเดจเด‚ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเดจเต† เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด•:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

2) เด’เดฐเต เดชเต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฃเด‚ containerPort เด•เดพเดฏเตเด•เดณเดฟเดฒเต† เด“เดฐเต‹ เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเดฟเดจเตเด‚:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

3) เด’เดฐเต เดธเต‡เดตเดจเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฃเด‚ port ะธ targetPort. เดŽเดจเตเดจเดพเตฝ เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดเดคเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต?

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

4) เดตเดดเดฟ targetPort. เด‡เดคเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ containerPort.

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

5) เดชเต‹เตผเดŸเตเดŸเต 3000 เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเตฝ เด“เดชเตเดชเตบ เด†เดฃเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚.เด…เดชเตเดชเต‹เตพ เดฎเต‚เดฒเตเดฏเด‚ targetPort เด…เดคเตเดชเต‹เดฒเต† เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

YAML เดซเดฏเดฒเดฟเตฝ, เดฒเต‡เดฌเดฒเตเด•เตพ เด•เต‚เดŸเดพเดคเต† ports / targetPort เดšเต‡เตผเดจเตเดจเต‡ เดชเดฑเตเดฑเตเดณเตเดณเต‚:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
  labels:
    track: canary
spec:
  selector:
    matchLabels:
      any-name: my-app
  template:
    metadata:
     labels:  # <<<
        any-name: my-app  # <<<
   spec:
      containers:
      - name: cont1
        image: learnk8s/app:1.0.0
        ports:
       - containerPort: 8080  # <<<
---
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  ports:
  - port: 80
   targetPort: 8080  # <<<
 selector:  # <<<
    any-name: my-app  # <<<

เดฒเต‡เดฌเดฒเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดฎเต‹ track: canary เดตเดฟเดจเตเดฏเดพเดธ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดจเตเดฑเต† เดฎเตเด•เดณเดฟเตฝ? เด‡เดคเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต‹?

เดˆ เดฒเต‡เดฌเตฝ เดตเดฟเดจเตเดฏเดพเดธเด‚ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸเดฎเดพเดฃเต, เดŸเตเดฐเดพเดซเดฟเด•เต เดฑเต‚เดŸเตเดŸเดฟเดจเดพเดฏเดฟ เดธเต‡เดตเดจเด‚ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เด…เดคเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดพเดจเต‹ เดฎเดฑเตเดฑเตŠเดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เดพเดจเต‹ เด•เดดเดฟเดฏเตเด‚.

เดธเต†เดฒเด•เตเดŸเดฑเตเดŸเต† เด•เดพเดฐเตเดฏเดฎเต‹ matchLabels?

เด‡เดคเต เดŽเดชเตเดชเต‹เดดเตเด‚ เดชเต‹เดกเดฟเดจเตเดฑเต† เดฒเต‡เดฌเดฒเตเด•เดณเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚, เด•เดพเดฐเดฃเด‚ เด‡เดคเต เดชเต‹เดกเตเด•เตพ เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเดพเตป เดตเดฟเดจเตเดฏเดพเดธเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเด™เตเด™เตพ เดถเดฐเดฟเดฏเดพเดฏ เดคเดฟเดฐเตเดคเตเดคเดฒเตเด•เตพ เดจเดŸเดคเตเดคเดฟเดฏเต†เดจเตเดจเต เด•เดฐเตเดคเตเด•. เด…เดต เดŽเด™เตเด™เดจเต† เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚?

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเต‹เดกเต เดฒเต‡เดฌเตฝ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

kubectl get pods --show-labels

เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดชเต‹เดกเตเด•เตพ เดจเดฟเดฐเดตเดงเดฟ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต‡เดคเดพเดฃเต†เด™เตเด•เดฟเตฝ:

kubectl get pods --selector any-name=my-app --show-labels

เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต any-name=my-app เด’เดฐเต เดฒเต‡เดฌเตฝ เด†เดฃเต any-name: my-app.

เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เตพ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹?

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเดพเด•เตเด‚! เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต port-forward kubectl เตฝ. เดธเต‡เดตเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดฃเด•เตเดทเตป เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

kubectl port-forward service/<service name> 3000:80

เด‡เดตเดฟเดŸเต†:

  • service/<service name> - เดธเต‡เดตเดจ เดจเดพเดฎเด‚; เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด…เด™เตเด™เดจเต†เดฏเดพเดฃเต my-service;
  • เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ เดคเตเดฑเด•เตเด•เต‡เดฃเตเดŸ เดชเต‹เตผเดŸเตเดŸเต 3000 เด†เดฃเต;
  • 80 - เดซเต€เตฝเดกเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เดชเต‹เตผเดŸเตเดŸเต port เดธเต‡เดตเดจเด‚.

เด•เดฃเด•เตเดทเตป เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดถเดฐเดฟเดฏเดพเดฃเต.

เด•เดฃเด•เตเดทเตป เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฒเต‡เดฌเดฒเตเด•เดณเดฟเตฝ เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดŸเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเต‹เตผเดŸเตเดŸเตเด•เตพ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ.

เดธเต‡เดตเดจเดตเตเด‚ เดชเตเดฐเดตเต‡เดถเดจเดตเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฌเดจเตเดงเด‚

เด…เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต เด†เด•เตโ€Œเดธเดธเต เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต. เด’เดฐเต เดธเต‡เดตเดจเด‚ เดŽเด™เตเด™เดจเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเดฎเต†เดจเตเดจเตเด‚ เดชเต‹เดกเตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ เด…เดตเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดŸเตเดฐเดพเดซเดฟเด•เตเด•เตเด‚ เดŽเด™เตเด™เดจเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเดฎเต†เดจเตเดจเตเด‚ เด‡เตปเด—เตเดฐเดธเดฟเดจเต เด…เดฑเดฟเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดชเต‡เดฐเตเด‚ เด“เดชเตเดชเตบ เดชเต‹เตผเดŸเตเดŸเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดธเต‡เดตเดจเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต.

เดชเตเดฐเดตเต‡เดถเดจเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเตฝ เดฐเดฃเตเดŸเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚:

  1. servicePort เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ port เดœเต‡เดพเดฒเดฟเดฏเดฟเตฝ;
  2. serviceName เด‡เตปเด—เตเดฐเต†เดธเดฟเตฝ เดซเต€เตฝเดกเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ name เดœเต‡เดพเดฒเดฟเดฏเดฟเตฝ.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดกเดฏเด—เตเดฐเด‚ เดชเต‹เตผเดŸเตเดŸเต เด•เดฃเด•เตเดทเดจเตเด•เดณเต† เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต:

1) เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เด…เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดธเต‡เดตเดจเด‚ เดšเดฟเดฒ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต port:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

2) Ingress เดŽเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดฃเตเดŸเต servicePort:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

3) เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ (servicePort) เดŽเดชเตเดชเต‹เดดเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ port เดธเต‡เดตเดจ เดจเดฟเตผเดตเดšเดจเดคเตเดคเดฟเตฝ:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

4) เดชเต‹เตผเดŸเตเดŸเต 80 เดธเต‡เดตเดจเดคเตเดคเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต servicePort 80 เดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฐเดฟเด•เดณเดฟเตฝ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

apiVersion: v1
kind: Service
metadata:
 name: my-service  # <<<
spec:
  ports:
 - port: 80  # <<<
   targetPort: 8080
  selector:
    any-name: my-app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  - http:
    paths:
    - backend:
       serviceName: my-service  # <<<
       servicePort: 80  # <<<
     path: /

Ingress เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดŽเด™เตเด™เดจเต† เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚?

เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ kubectl port-forward, เดŽเดจเตเดจเดพเตฝ เดธเต‡เดตเดจเดคเตเดคเดฟเดจเต เดชเด•เดฐเด‚ เดจเดฟเด™เตเด™เตพ เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด†เดฆเตเดฏเด‚ เดจเดฟเด™เตเด™เตพ เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเต‹เดกเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เด•เดฃเตเดŸเต†เดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

kubectl get pods --all-namespaces
NAMESPACE   NAME                              READY STATUS
kube-system coredns-5644d7b6d9-jn7cq          1/1   Running
kube-system etcd-minikube                     1/1   Running
kube-system kube-apiserver-minikube           1/1   Running
kube-system kube-controller-manager-minikube  1/1   Running
kube-system kube-proxy-zvf2h                  1/1   Running
kube-system kube-scheduler-minikube           1/1   Running
kube-system nginx-ingress-controller-6fc5bcc  1/1   Running

Ingress เดชเต‹เดกเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ (เด…เดคเต เดฎเดฑเตเดฑเตŠเดฐเต เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚) เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• describeเดชเต‹เตผเดŸเตเดŸเต เดจเดฎเตเดชเดฑเตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป:

kubectl describe pod nginx-ingress-controller-6fc5bcc 
--namespace kube-system 
 | grep Ports
Ports:         80/TCP, 443/TCP, 18080/TCP

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•:

kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ เดชเต‹เตผเดŸเตเดŸเต 3000-เดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดฎเตเดชเต‹เดดเต†เดฒเตเดฒเดพเด‚, เด…เดคเต เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเดณเตเดณ เดชเต‹เดกเดฟเดจเตเดฑเต† 80 เดชเต‹เตผเดŸเตเดŸเต-เดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด‚. เดชเต‹เด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† http://localhost:3000, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดชเต‡เดœเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚.

เดคเตเดฑเดฎเตเด–เด™เตเด™เดณเตเดŸเต† เดธเด‚เด—เตเดฐเดนเด‚

เดเดคเตŠเด•เตเด•เต† เดชเต‹เตผเดŸเตเดŸเตเด•เดณเตเด‚ เดฒเต‡เดฌเดฒเตเด•เดณเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ เดŽเดจเตเดจเต เด’เดฐเดฟเด•เตเด•เตฝ เด•เต‚เดŸเดฟ เด“เตผเด•เตเด•เดพเด‚:

  1. เดธเต‡เดตเดจ เดจเดฟเตผเดตเดšเดจเดคเตเดคเดฟเดฒเต† เดธเต†เดฒเด•เตเดŸเตผ เดชเต‹เดกเดฟเดจเตเดฑเต† เดฒเต‡เดฌเดฒเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚;
  2. targetPort เดจเดฟเตผเดตเดšเดจเดคเตเดคเดฟเตฝ เดธเต‡เดตเดจเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ containerPort เด’เดฐเต เดชเต‹เดกเต เด‰เดณเตเดณเดฟเตฝ เด•เดฃเตเดŸเต†เดฏเตเดจเตผ;
  3. port เดจเดฟเตผเดตเดšเดจเดคเตเดคเดฟเตฝ เดธเต‡เดตเดจเด‚ เดŽเดจเตเดคเตเด‚ เด†เด•เดพเด‚. เดตเตเดฏเดคเตเดฏเดธเตเดค IP เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต‡ เดชเต‹เตผเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚;
  4. servicePort เดชเตเดฐเดตเต‡เดถเดจเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ port เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดจเดฟเตผเดตเดšเดจเดคเตเดคเดฟเตฝ;
  5. เดธเต‡เดตเดจ เดจเดพเดฎเด‚ เดซเต€เตฝเดกเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดฃเด‚ serviceName เด‡เตปเด—เตเดฐเต†เดธเดฟเตฝ.

เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เด’เดฐเต YAML เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเด™เตเด™เดจเต† เดถเดฐเดฟเดฏเดพเดฏเดฟ เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดคเตเดคเดฃเดฎเต†เดจเตเดจเต เด…เดฑเดฟเดฏเดพเตป เด‡เดคเต เดชเดฐเตเดฏเดพเดชเตเดคเดฎเดฒเตเดฒ.

เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดคเต†เดฑเตเดฑเตเดฎเตเดชเต‹เตพ เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚?

เดชเต‹เดกเต เด†เดฐเด‚เดญเดฟเด•เตเด•เดฟเดฒเตเดฒ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดคเด•เดฐเดพเดฑเดฟเดฒเดพเดฏเต‡เด•เตเด•เดพเด‚.

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ 3 เด˜เดŸเตเดŸเด™เตเด™เตพ

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดจเตเดฏเดพเดธเด‚ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเดจเตเดจเดพเดฏเดฟ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

K8s-เตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด“เดฐเต‹ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดฎเต‚เดจเตเดจเต เด˜เดŸเด•เด™เตเด™เตพ เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ, เด…เดต เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดกเต€เดฌเด—เตเด—เต เดšเต†เดฏเตเดฏเดฃเด‚, เด…เดคเต เดคเดพเดดเต† เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต.

  1. เด†เดฆเตเดฏเด‚ เดจเดฟเด™เตเด™เตพ เดชเต‹เดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เดคเตเดŸเตผเดจเตเดจเต ...
  2. เดˆ เดธเต‡เดตเดจเด‚ เดชเต‹เดกเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เต เดจเตฝเด•เตเดจเตเดจเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•, เดคเตเดŸเตผเดจเตเดจเต...
  3. Ingress เดถเดฐเดฟเดฏเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•.

เดตเดฟเดทเตเดตเตฝ เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏเด‚:

1) เดจเดฟเด™เตเด™เตพ เดเดฑเตเดฑเดตเตเด‚ เดคเดพเดดเต† เดจเดฟเดจเตเดจเต เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดคเดฟเดฐเดฏเดพเตป เดคเตเดŸเด™เตเด™เดฃเด‚. เด•เดพเดฏเตเด•เตพเด•เตเด•เต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เด‰เดฃเตเดŸเต‹ เดŽเดจเตเดจเต เด†เดฆเตเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• Ready ะธ Running:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

2) เด•เดพเดฏเตเด•เตพ เดคเดฏเตเดฏเดพเดฑเดพเดฃเต†เด™เตเด•เดฟเตฝ (Ready), เดˆ เดธเต‡เดตเดจเด‚ เดชเต‹เดกเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดŸเตเดฐเดพเดซเดฟเด•เต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฃเด‚:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

3) เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดธเต‡เดตเดจเดตเตเด‚ เดชเตเดฐเดตเต‡เดถเดจเดตเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฌเดจเตเดงเด‚ เดจเดฟเด™เตเด™เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเตเดตเตฝ เด—เตˆเดกเต

1. เดชเต‹เดกเตเด•เดณเตเดŸเต† เดกเดฏเด—เตเดจเต‹เดธเตเดฑเตเดฑเดฟเด•เตเดธเต

เดฎเดฟเด•เตเด• เด•เต‡เดธเตเด•เดณเดฟเดฒเตเด‚ เดชเตเดฐเดถเตเดจเด‚ เดชเต‹เดกเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดคเดพเดฃเต. เด•เดพเดฏเตเด•เตพ เด‡เด™เตเด™เดจเต† เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด• Ready ะธ Running. เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

kubectl get pods
NAME                    READY STATUS            RESTARTS  AGE
app1                    0/1   ImagePullBackOff  0         47h
app2                    0/1   Error             0         47h
app3-76f9fcd46b-xbv4k   1/1   Running           1         47h

เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเดฟเตฝ, เด…เดตเดธเดพเดจ เดชเต‹เดกเต เด‡เดคเดพเดฏเดฟ เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต Running ะธ Ready, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฎเดฑเตเดฑเต เดฐเดฃเตเดŸเต†เดฃเตเดฃเดคเตเดคเดฟเดจเต เด‡เดคเต เด…เด™เตเด™เดจเต†เดฏเดฒเตเดฒ.

เดŽเดจเตเดคเดพเดฃเต เดคเต†เดฑเตเดฑเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต†เดจเตเดจเต เดŽเด™เตเด™เดจเต† เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเด‚?

เดชเต‹เดกเตโ€Œเดธเต เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เดพเตป เดจเดพเดฒเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เด•เดฎเดพเตปเดกเตเด•เตพ เด‰เดฃเตเดŸเต:

  1. kubectl logs <ะธะผั pod'ะฐ> เด’เดฐเต เดชเต‹เดกเดฟเดฒเต† เดชเดพเดคเตเดฐเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เด—เตเด•เตพ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต;
  2. kubectl describe pod <ะธะผั pod'ะฐ> เดชเต‹เดกเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เด‡เดตเดจเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด•เดพเดฃเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต;
  3. kubectl get pod <ะธะผั pod'ะฐ> Kubernetes-เตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเต‹เดกเดฟเดจเตเดฑเต† YAML เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฒเดญเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต;
  4. kubectl exec -ti <ะธะผั pod'ะฐ> bash เดชเต‹เดกเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเตฝ เด’เดฐเต เด‡เดจเตเดฑเดฑเดพเด•เตเดŸเต€เดตเต เด•เดฎเดพเตปเดกเต เดทเต†เตฝ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต

เดเดคเดพเดฃเต เดจเดฟเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเต?

เดธเดพเตผเดตเดคเตเดฐเดฟเด• เด•เตฝเดชเตเดชเดจ เด‡เดฒเตเดฒ เดŽเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค. เด‡เดตเดฏเตเดŸเต† เดธเด‚เดฏเต‹เดœเดจเดฎเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต.

เดธเดพเดงเดพเดฐเดฃ เดชเต‹เดกเต เดชเตเดฐเดถเตเดจเด™เตเด™เตพ

เดฐเดฃเตเดŸเต เดชเตเดฐเดงเดพเดจ เดชเต‹เดกเต เดชเดฟเดถเด•เตเด•เตพ เด‰เดฃเตเดŸเต: เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดชเดฟเดถเด•เตเด•เดณเตเด‚ เดฑเตบเดŸเตˆเด‚ เดชเดฟเดถเด•เตเด•เดณเตเด‚.

เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดชเดฟเดถเด•เตเด•เตพ:

  • ImagePullBackoff
  • ImageInspectError
  • ErrImagePull
  • ErrImageNeverPull
  • RegistryUnavailable
  • InvalidImageName

เดฑเตบเดŸเตˆเด‚ เดชเดฟเดถเด•เตเด•เตพ:

  • CrashLoopBackOff
  • RunContainerError
  • KillContainerError
  • VerifyNonRootError
  • RunInitContainerError
  • CreatePodSandboxError
  • ConfigPodSandboxError
  • KillPodSandboxError
  • SetupNetworkError
  • TeardownNetworkError

เดšเดฟเดฒ เดชเดฟเดถเด•เตเด•เตพ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเต‡เด•เตเด•เดพเตพ เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฃเต. เดเดฑเตเดฑเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดšเดฟเดฒ เดชเดฟเดถเด•เตเด•เดณเตเด‚ เด…เดต เดŽเด™เตเด™เดจเต† เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต.

ImagePullBackOff

เดชเต‹เดกเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเดจเตเดฑเต† เดšเดฟเดคเตเดฐเด‚ เดฒเดญเดฟเด•เตเด•เดพเตป เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเต เด•เดดเดฟเดฏเดพเดคเต† เดตเดฐเตเดฎเตเดชเต‹เตพ เดˆ เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดฎเต‚เดจเตเดจเต เด•เดพเดฐเดฃเด™เตเด™เตพ เด‡เดคเดพ:

  1. เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดคเต†เดฑเตเดฑเดพเดฃเต - เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด…เดคเดฟเตฝ เด’เดฐเต เดคเต†เดฑเตเดฑเต เดšเต†เดฏเตเดคเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดšเดฟเดคเตเดฐเด‚ เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒ;
  2. เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดŸเดพเด—เต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต;
  3. เดšเดฟเดคเตเดฐเด‚ เด’เดฐเต เดธเตเดตเด•เดพเดฐเตเดฏ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเต เด…เดคเต เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด…เดจเตเดฎเดคเดฟเดฏเดฟเดฒเตเดฒ.

เด†เดฆเตเดฏเดคเตเดคเต† เดฐเดฃเตเดŸเต เด•เดพเดฐเดฃเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเตป เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต - เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเตเด‚ เดŸเดพเด—เตเด‚ เดถเดฐเดฟเดฏเดพเด•เตเด•เตเด•. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดธเต€เด•เตเดฐเดŸเตเดŸเดฟเตฝ เด…เดŸเดšเตเดš เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเตเดŸเต† เด•เตเดฐเต†เดกเตปเดทเตเดฏเดฒเตเด•เตพ เดจเตฝเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เตเด•เตพ เดชเต‹เดกเตเด•เดณเดฟเตฝ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚. เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเดฎเตเดฃเตเดŸเต เด‡เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดฏเดพเด‚.

เด•เตเดฐเดพเดทเต เดฒเต‚เดชเตเดชเต เดฌเดพเด•เตเด•เต เด“เดซเต

เด•เตเดฌเต†เดจเต†เดฑเตเดฑเดธเต เด’เดฐเต เดชเดฟเดถเด•เต เดŽเดฑเดฟเดฏเตเดจเตเดจเต CrashLoopBackOff, เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ. เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ:

  1. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เด’เดฐเต เดฌเด—เต เด‰เดฃเตเดŸเต, เด…เดคเต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดŸเดฏเตเดจเตเดจเต;
  2. เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดคเต†เดฑเตเดฑเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเต;
  3. เดฒเตˆเดตเตโ€Œเดจเต†เดธเต เดŸเต†เดธเตเดฑเตเดฑเต เดชเดฒเดคเดตเดฃ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸเต.

เด…เดคเดฟเดจเตเดฑเต† เดชเดฐเดพเดœเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเดฃเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เด—เตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดฃเด‚. เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดตเดณเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เดฒเต‹เด—เตเด•เตพ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เดชเตเดฐเดฏเดพเดธเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

kubectl logs <pod-name> --previous

เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดจเตเดฑเต† เดฎเตเตป เด…เดตเดคเดพเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด‡เดคเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดฑเตบเด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดชเดฟเดถเด•เต

เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดฎเตเดชเต‹เตพ เดˆ เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเตเดณเตเดณ เดจเดฟเดฎเดฟเดทเดตเตเดฎเดพเดฏเดฟ เด‡เดคเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต. เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดคเต†เดฑเตเดฑเดพเดฏ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดฎเต‚เดฒเดฎเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

  • ConfigMap เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ Secrets เดชเต‹เดฒเตเดณเตเดณ เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดตเต‹เดณเตเดฏเด‚ เดฎเตŒเดฃเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต;
  • เดฑเต€เดกเต-เดฑเตˆเดฑเตเดฑเดพเดฏเดฟ เด’เดฐเต เดฑเต€เดกเต-เด’เตบเดฒเดฟ เดตเต‹เดณเดฟเดฏเด‚ เดฎเต—เดฃเตเดŸเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดถเตเดฐเดฎเด‚.

เด…เดคเตเดคเดฐเด‚ เดชเดฟเดถเด•เตเด•เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เดŸเต€เด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต kubectl describe pod <pod-name>.

เด•เดพเดฏเตเด•เตพ เดคเต€เตผเดชเตเดชเดพเด•เตเด•เดพเดคเตเดค เดจเดฟเดฒเดฏเดฟเดฒเดพเดฃเต

เดธเตƒเดทเตเดŸเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เดชเต‹เดกเต เดธเด‚เดธเตเดฅเดพเดจเดคเตเดคเต เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเด‚ Pending.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด‡เดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต?

เดธเดพเดงเตเดฏเดฎเดพเดฏ เด•เดพเดฐเดฃเด™เตเด™เตพ เด‡เดคเดพ (เดทเต†เดกเตเดฏเต‚เดณเตผ เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเดพเตป เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต):

  1. เดชเต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดชเดตเดฑเตเด‚ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเด‚ เดชเต‹เดฒเตเดณเตเดณ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเดฟเดฒเตเดฒ.
  2. เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เด‰เดšเดฟเดคเดฎเดพเดฏ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต ResourceQuota เด’เดฐเต เดชเต‹เดกเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เด•เตเดตเดพเดŸเตเดŸเดฏเตเด•เตเด•เต เด…เดชเตเดชเตเดฑเดคเตเดคเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚.
  3. เดชเต‹เดกเต เดคเต€เตผเดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ PersistentVolumeClaim.

เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต kubectl describe เดตเดฟเดญเดพเด—เด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• Events:

kubectl describe pod <pod name>

เด‡เดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเดฟเดถเด•เตเด•เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ ResourceQuotas, เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฒเต‹เด—เตเด•เตพ เด•เดพเดฃเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

kubectl get events --sort-by=.metadata.creationTimestamp

เด•เดพเดฏเตเด•เตพ เดคเดฏเตเดฏเดพเดฑเดพเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ

เดชเต‹เดกเต เดŽเดจเตเดจเต เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ Running, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เด…เดตเดธเตเดฅเดฏเดฟเดฒเดฒเตเดฒ Ready, เด…เดคเดฟเดจเตเดฑเต† เดธเดจเตเดจเดฆเตเดงเดค เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดพเดฃเต (เดคเดฏเตเดฏเดพเดฑเต†เดŸเตเดชเตเดชเต เด…เดจเตเดตเต‡เดทเดฃเด‚) เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต.

เด‡เดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดชเต‹เดกเต เดธเต‡เดตเดจเดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เด…เดคเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เต เด’เดดเตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต† เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเดพเดฃเต เดฑเต†เดกเดฟเดจเต†เดธเต เดŸเต†เดธเตเดฑเตเดฑเต เดชเดฐเดพเดœเดฏเดคเตเดคเดฟเดจเต เด•เดพเดฐเดฃเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดชเดฟเดถเด•เต เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป, เดจเดฟเด™เตเด™เตพ เดตเดฟเดญเดพเด—เด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต Events เด•เดฎเดพเตปเดกเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ kubectl describe.

2. เดธเต‡เดตเดจ เดกเดฏเด—เตเดจเต‹เดธเตเดฑเตเดฑเดฟเด•เตเดธเต

เด•เดพเดฏเตเด•เตพ เด‡เด™เตเด™เดจเต† เดฒเดฟเดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ Running ะธ Ready, เดชเด•เตเดทเต‡ เด‡เดชเตเดชเต‹เดดเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดคเดฟเด•เดฐเดฃเดฎเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒ, เดจเดฟเด™เตเด™เตพ เดธเต‡เดตเดจ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดฃเด‚.

เดฒเต‡เดฌเดฒเตเด•เตพ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดชเต‹เดกเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เต เดฑเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ เดธเต‡เดตเดจเด™เตเด™เดณเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เดธเต‡เดตเดจเดคเตเดคเดฟเตฝ เดŽเดคเตเดฐ เดชเต‹เดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเต‡เดตเดจเดคเตเดคเดฟเดฒเต† เด…เดตเดธเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

kubectl describe service <service-name> | grep Endpoints

เดซเต‹เดฎเดฟเดจเตเดฑเต† เด’เดฐเต เดœเต‹เดŸเดฟ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดพเดฃเต เดŽเตปเดกเตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต <IP-ะฐะดั€ะตั:ะฟะพั€ั‚>, เด•เต‚เดŸเดพเดคเต† เด…เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดœเต‹เดกเดฟเดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเดฟเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ (เด…เดคเดพเดฏเดคเต, เดธเต‡เดตเดจเดคเตเดคเดฟเตฝ เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต เดชเต‹เดกเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต).

เดตเดฟเดญเดพเด—เดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ Endpoins เดถเต‚เดจเตเดฏเดฎเดพเดฃเต, เดฐเดฃเตเดŸเต เด“เดชเตเดทเดจเตเด•เตพ เดธเดพเดงเตเดฏเดฎเดพเดฃเต:

  1. เดถเดฐเดฟเดฏเดพเดฏ เดฒเต‡เดฌเดฒเตเดณเตเดณ เดชเต‹เดกเตเด•เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒ (เดธเต‚เดšเดจ: เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•);
  2. เดธเต†เดฒเด•เตเดŸเดฑเดฟเดฒเต† เดธเต‡เดตเดจ เดฒเต‡เดฌเดฒเตเด•เดณเดฟเตฝ เด’เดฐเต เดชเดฟเดถเด•เต เด‰เดฃเตเดŸเต.

เดจเดฟเด™เตเด™เตพ เดŽเตปเดกเต เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด•เดฃเตเดŸเดฟเดŸเตเดŸเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด•เตเดฑเตเดฑเดตเดพเดณเดฟ เด’เดฐเต เดฌเด—เต เด†เดฃเต targetPort เดธเต‡เดตเดจ เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเตฝ.

เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดŽเด™เตเด™เดจเต† เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚?

เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเดฐเด‚ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ kubectl port-forward เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป:

kubectl port-forward service/<service-name> 3000:80

เด‡เดตเดฟเดŸเต†:

  • <service-name> - เดธเต‡เดตเดจ เดจเดพเดฎเด‚;
  • เดจเดฟเด™เตเด™เตพ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ เดคเตเดฑเด•เตเด•เตเดจเตเดจ เดชเต‹เตผเดŸเตเดŸเต เด†เดฃเต 3000;
  • 80 - เดธเต‡เดตเดจ เดญเดพเด—เดคเตเดคเต เดชเต‹เตผเดŸเตเดŸเต.

3. เด‡เตปเด—เตเดฐเดธเต เดกเดฏเด—เตเดจเต‹เดธเตเดฑเตเดฑเดฟเด•เตเดธเต

เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดตเดฐเต† เดตเดพเดฏเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ:

  • เด•เดพเดฏเตเด•เตพ เด‡เด™เตเด™เดจเต† เดชเดŸเตเดŸเดฟเด•เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต Running ะธ Ready;
  • เดˆ เดธเต‡เดตเดจเด‚ เดชเต‹เดกเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดŸเตเดฐเดพเดซเดฟเด•เต เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เดดเตเด‚ เด†เดชเตเดชเดฟเตฝ เดŽเดคเตเดคเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.

เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ Ingress เด•เตบเดŸเตเดฐเต‹เดณเตผ เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ เดŽเดจเตเดจเดพเดฃเต. เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเตผ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เด’เดฐเต เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เด˜เดŸเด•เดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เด…เดคเดฟเดจเตเดฑเต† เดคเดฐเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดฐเต€เดคเดฟเด•เดณเตเดฃเตเดŸเต.

เดŽเดจเตเดจเดพเตฝ เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฏ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เดชเตเดฐเดตเต‡เดถเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต serviceName ะธ servicePort เดธเต‡เดตเดจเดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต. เด…เดต เดถเดฐเดฟเดฏเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

kubectl describe ingress <ingress-name>

เด•เต‹เดณเด‚ เด†เดฃเต†เด™เตเด•เดฟเตฝ Backend เดถเต‚เดจเตเดฏเดฎเดพเดฃเต, เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเดฟเดถเด•เดฟเดจเตเดฑเต† เด‰เดฏเตผเดจเตเดจ เดธเด‚เดญเดพเดตเตเดฏเดคเดฏเตเดฃเตเดŸเต. เดฌเดพเด•เตเด•เต†เตปเดกเตเด•เตพ เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดชเตเดชเต‹เดดเตเด‚ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดชเตเดฐเดถเตเดจเด‚ เด‡เดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เดพเด‚:

  • เดชเตŠเดคเต เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเดตเต‡เดถเดจเด•เตเดทเดฎเดค เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ;
  • เดชเตŠเดคเต เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดชเตเดฐเดตเต‡เดถเดจเด•เตเดทเดฎเดค เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ.

เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด•เดฃเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเต เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเดฒเต† เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเดจเดพเด•เตเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เด†เดฆเตเดฏเด‚ เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเตผ เดชเต‹เดกเต เด•เดฃเตเดŸเต†เดคเตเดคเตเด• (เด…เดคเต เดฎเดฑเตเดฑเตŠเดฐเต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚):

kubectl get pods --all-namespaces
NAMESPACE   NAME                              READY STATUS
kube-system coredns-5644d7b6d9-jn7cq          1/1   Running
kube-system etcd-minikube                     1/1   Running
kube-system kube-apiserver-minikube           1/1   Running
kube-system kube-controller-manager-minikube  1/1   Running
kube-system kube-proxy-zvf2h                  1/1   Running
kube-system kube-scheduler-minikube           1/1   Running
kube-system nginx-ingress-controller-6fc5bcc  1/1   Running

เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• describeเดชเต‹เตผเดŸเตเดŸเต เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป:

kubectl describe pod nginx-ingress-controller-6fc5bcc
--namespace kube-system 
 | grep Ports

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•:

kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system

เด‡เดชเตเดชเต‹เตพ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ 3000 เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเด‚ เดชเต‹เดกเดฟเดจเตเดฑเต† เดชเต‹เตผเดŸเตเดŸเต 80-เดฒเต‡เด•เตเด•เต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเตเดšเต†เดฏเตเดฏเตเด‚.

เด…เดคเต เด‡เดชเตเดชเต‹เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹?

  • เด…เดคเต† เดŽเด™เตเด•เดฟเตฝ, เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดถเตเดจเดฎเดพเดฃเต. เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด—เดคเดพเด—เดคเด‚ เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต†เดจเตเดจเต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต.
  • เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดชเตเดฐเดถเตเดจเด‚ เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเดฒเดพเดฃเต.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด…เดคเต เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚.

เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เด‡เดจเด™เตเด™เตพ เด‰เดฃเตเดŸเต. Nginx, HAProxy, Traefik เดฎเตเดคเดฒเดพเดฏเดตเดฏเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏเดคเต. (เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต, เด•เดพเดฃเตเด• เดžเด™เตเด™เดณเตเดŸเต† เด…เดตเดฒเต‹เด•เดจเด‚ - เดเด•เดฆเต‡เดถเด‚. เดชเดฐเดฟเดญเดพเดท.) เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เด•เตบเดŸเตเดฐเต‹เดณเตผ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเดฒเต† เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเดฟเด‚เด—เต เด—เตˆเดกเต เดจเดฟเด™เตเด™เตพ เดฑเดซเตผ เดšเต†เดฏเตเดฏเดฃเด‚. เดŽเดจเตเดคเตเด•เต†เดพเดฃเตเดŸเต†เดจเตเดจเดพเดฒเต เดชเตเดฐเดตเต‡เดถเดจเด‚ Nginx เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเดพเดฃเต, เด…เดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพ เดšเดฟเดฒ เดจเตเดฑเตเด™เตเด™เตเด•เตพ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

Ingress Nginx เด•เตบเดŸเตเดฐเต‹เดณเตผ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

Ingress-nginx เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเต เด’เดฐเต เด‰เดฆเตเดฏเต‹เด—เดธเตเดฅเดจเตเดฃเตเดŸเต kubectl-เดจเตเดณเตเดณ เดชเตเดฒเด—เดฟเตป. เดŸเต€เด‚ kubectl ingress-nginx เด‡เดคเดฟเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

  • เดฒเต‹เด—เตเด•เตพ, เดฌเดพเด•เตเด•เต†เตปเดกเตเด•เตพ, เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดตเดฏเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚;
  • เดชเตเดฐเดตเต‡เดถเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด•เดฃเด•เตเดทเดจเตเด•เตพ;
  • เดจเดฟเดฒเดตเดฟเดฒเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเด เดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฎเต‚เดจเตเดจเต เด•เดฎเดพเตปเดกเตเด•เตพ เด‡เดคเดฟเดจเต เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚:

  • kubectl ingress-nginx lint - เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต nginx.conf;
  • kubectl ingress-nginx backend - เดฌเดพเด•เตเด•เต†เตปเดกเต เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด‡เดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดคเต kubectl describe ingress <ingress-name>);
  • kubectl ingress-nginx logs - เดฒเต‹เด—เตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต.

เดšเดฟเดฒ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เดซเตเดฒเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเดจเตเดณเตเดณ เดถเดฐเดฟเดฏเดพเดฏ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดจเดฟเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต‡เด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. --namespace <name>.

เดธเด‚เด—เตเดฐเดนเด‚

เดŽเดตเดฟเดŸเต† เดคเตเดŸเด™เตเด™เดฃเดฎเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฑเต† เดŸเตเดฐเดฌเดฟเตพเดทเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดตเต†เดฒเตเดฒเตเดตเดฟเดณเดฟ เดจเดฟเดฑเดžเตเดžเดคเดพเดฃเต. เดจเดฟเด™เตเด™เตพ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดคเดพเดดเต† เดจเดฟเดจเตเดจเต เดชเตเดฐเดถเตเดจเดคเตเดคเต† เดธเดฎเต€เดชเดฟเด•เตเด•เดฃเด‚: เดชเต‹เดกเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•, เดคเตเดŸเตผเดจเตเดจเต เดธเต‡เดตเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเตเดฐเดตเต‡เดถเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเด‚ เดจเต€เด™เตเด™เตเด•. เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดŸเต†เด•เตเดจเดฟเด•เตเด•เตเด•เตพ เดฎเดฑเตเดฑเต เด’เดฌเตเดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต:

  • เดจเดฟเดทเตเด•เตเดฐเดฟเดฏ เดœเต‹เดฒเดฟเด•เดณเตเด‚ เด•เตเดฐเต‹เตบเดœเต‹เดฌเตเดธเตเด‚;
  • เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเดซเตเตพเดธเต†เดฑเตเดฑเตเด•เดณเตเด‚ เดกเต†เดฎเตบเดธเต†เดฑเตเดฑเตเด•เดณเตเด‚.

เดžเดพเตป เดŽเดจเตเดฑเต† เดจเดจเตเดฆเดฟ เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเดจเตเดจเต เด—เต†เตผเด—เต†เดฒเดฟ เดฑเดฟเดธเตเด•เต‹, เดกเดพเดจเดฟเดฏเตฝ เดตเต†เดฏเตเดฌเต†เตฝ ะธ เดšเดพเตพเดธเต เด•เตเดฐเดฟเดธเตเดฑเตเดฑเดฟเดฐเดพเดœเต เดตเดฟเดฒเดฏเต‡เดฑเดฟเดฏ เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เตพเด•เตเด•เตเด‚ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดฒเตเด•เตพเด•เตเด•เตเด‚.

เดตเดฟเดตเตผเดคเตเดคเด•เดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•