เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เชฎเชพเชŸเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

เชจเซ‰เซ…เชง. เช…เชจเซเชตเชพเชฆ: เช† เชฒเซ‡เช– เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชกเซ‹เชฎเซ‡เชจเชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‹ เชเช• เชญเชพเช— เช›เซ‡ learnk8s, เชคเชพเชฒเซ€เชฎ เช•เช‚เชชเชจเซ€เช“ เช…เชจเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชตเชนเซ€เชตเชŸเช•เชฐเซเชคเชพเช“เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เชคเซ‡เชฎเชพเช‚, เชกเซ‡เชจเชฟเชฏเชฒ เชชเซ‹เชฒเซ‡เชจเซเชธเชฟเช•, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเซ‡เชจเซ‡เชœเชฐ, K8s เช•เซเชฒเชธเซเชŸเชฐ เชชเชฐ เชšเชพเชฒเชคเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชธเชฎเชธเซเชฏเชพเช“เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชถเซเช‚ เชชเช—เชฒเชพเช‚ เชฒเซ‡เชตเชพ เชคเซ‡ เช…เช‚เช—เซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชธเซ‚เชšเชจเชพเช“ เชถเซ‡เชฐ เช•เชฐเซ‡ เช›เซ‡.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เชฎเชพเชŸเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

TL;DR: เช…เชนเซ€เช‚ เชเช• เช†เช•เซƒเชคเชฟ เช›เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชกเชฟเชฌเช— เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เชฎเชพเชŸเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชญเซ‚เชฒเซ‹ เชถเซ‹เชงเชตเชพ เช…เชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชซเซเชฒเซ‹เชšเชพเชฐเซเชŸ. เชฎเซ‚เชณ (เช…เช‚เช—เซเชฐเซ‡เชœเซ€เชฎเชพเช‚) เช…เชนเซ€เช‚ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชชเซ€เชกเซ€เชเชซ ะธ เชšเชฟเชคเซเชฐ เชคเชฐเซ€เช•เซ‡.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฎเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชคเซเชฏเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชคเซเชฐเชฃ เช˜เชŸเช•เซ‹ เช›เซ‡ เชœเซ‡เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

  • เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ - เช† เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เชจเช•เชฒเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชเช• เชชเซเชฐเช•เชพเชฐเชจเซ€ เชฐเซ‡เชธเซ€เชชเซ€ เช›เซ‡, เชœเซ‡เชจเซ‡ เชถเซ€เช‚เช—เซ‹ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡;
  • เชธเซ‡เชตเชพ - เช†เช‚เชคเชฐเชฟเช• เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชœเซ‡ เชถเซ€เช‚เช—เซ‹ เชตเชšเซเชšเซ‡ เชŸเซเชฐเชพเชซเชฟเช•เชจเซเช‚ เชตเชฟเชคเชฐเชฃ เช•เชฐเซ‡ เช›เซ‡;
  • เชชเซเชฐเชตเซ‡เชถ - เชฌเชนเชพเชฐเชจเซ€ เชฆเซเชจเชฟเชฏเชพเชฅเซ€ เชธเซ‡เชตเชพเชฎเชพเช‚ เชŸเซเชฐเชพเชซเชฟเช• เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช†เชตเชถเซ‡ เชคเซ‡เชจเซเช‚ เชตเชฐเซเชฃเชจ.

เช…เชนเซ€เช‚ เชเช• เชเชกเชชเซ€ เช—เซเชฐเชพเชซเชฟเช•เชฒ เชธเชพเชฐเชพเช‚เชถ เช›เซ‡:

1) เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเซเชธเชจเชพ เชฌเซ‡ เชธเซเชคเชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เชฌเชพเชนเซเชฏ เชตเชฟเชถเซเชตเชฎเชพเช‚เชฅเซ€ เชŸเซเชฐเชพเชซเชฟเช• เชฎเซ‡เชณเชตเซ‡ เช›เซ‡: เช†เช‚เชคเชฐเชฟเช• เช…เชจเซ‡ เชฌเชพเชนเซเชฏ.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เชฎเชพเชŸเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

2) เช†เช‚เชคเชฐเชฟเช• เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชจเซ‡ เชธเชฐเซเชตเชฟเชธ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชฌเชพเชนเซเชฏเชจเซ‡ เช‡เชจเซเช—เซเชฐเซ‡เชธ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เชฎเชพเชŸเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

3) เชœเชฎเชพเชตเชŸ เชชเซ‹เชกเซเชธ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‡ เช›เซ‡ (เชคเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพเช‚ เชจเชฅเซ€).

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เชฎเชพเชŸเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เชคเชฎเซ‡ เชเช• เชธเชฐเชณ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ a la เชœเชฎเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹ เชนเซ‡เชฒเซ‹ เชตเชฐเซเชฒเซเชก. เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ 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) เช‡เชจเซเช—เซเชฐเซ‡เชธ เชจเชพเชฎเชจเซเช‚ เชชเชฐเชฟเชฎเชพเชฃ เชงเชฐเชพเชตเซ‡ เช›เซ‡ 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: /

เชชเซเชฐเชตเซ‡เชถ เชšเชพเชฒเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชคเชชเชพเชธเชตเซเช‚?

เชคเชฎเซ‡ เชธเชพเชฅเซ‡ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ 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

เช‡เชจเซเช—เซเชฐเซ‡เชธ เชชเซ‹เชก เชถเซ‹เชงเซ‹ (เชคเซ‡ เช…เชฒเช— เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡) เช…เชจเซ‡ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹ 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. เชคเชชเชพเชธเซ‹ เช•เซ‡ เชถเซเช‚ เชชเซเชฐเชตเซ‡เชถ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเชพเชฏเซ‡เชฒ เช›เซ‡.

เชตเชฟเชเซเชฏเซเช…เชฒ เชฐเชœเซ‚เช†เชค:

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'ะฐ> เชคเชฎเชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชชเซ‹เชกเชจเซเช‚ 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

เชคเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชจเชพ เช…เช—เชพเช‰เชจเชพ เช…เชตเชคเชพเชฐเชฎเชพเช‚เชฅเซ€ เชญเซ‚เชฒ เชธเช‚เชฆเซ‡เชถเชพเช“ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.

RunContainerError

เชœเซเชฏเชพเชฐเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชถเชฐเซ‚ เชฅเชตเชพเชฎเชพเช‚ เชจเชฟเชทเซเชซเชณ เชœเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เช† เชญเซ‚เชฒ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชถเชฐเซ‚ เชฅเชพเชฏ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚เชจเซ€ เช•เซเชทเชฃเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช›เซ‡. เชคเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช–เซ‹เชŸเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชฅเชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡:

  • เช•เซ‹เชจเซเชซเชฟเช—เชฎเซ‡เชช เช…เชฅเชตเชพ เชธเชฟเช•เซเชฐเซ‡เชŸเซเชธ เชœเซ‡เชตเชพ เช…เชตเชฟเชฆเซเชฏเชฎเชพเชจ เชตเซ‹เชฒเซเชฏเซเชฎเชจเซ‡ เชฎเชพเช‰เชจเซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ;
  • เชซเช•เซเชค เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชตเซ‹เชฒเซเชฏเซเชฎเชจเซ‡ เชตเชพเช‚เชšเชตเชพ-เชฒเซ‡เช–เชตเชพ เชคเชฐเซ€เช•เซ‡ เชฎเชพเช‰เชจเซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ.

เชŸเซ€เชฎ เช†เชตเซ€ เชญเซ‚เชฒเซ‹เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เช›เซ‡ 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;
  • เชธเซ‡เชตเชพ เชชเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡ เชŸเซเชฐเชพเชซเชฟเช•เชจเซเช‚ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชตเชฟเชคเชฐเชฃ เช•เชฐเซ‡ เช›เซ‡.

เชœเซ‹ เช•เซ‡, เชคเชฎเซ‡ เชนเชœเซ เชชเชฃ เชเชช เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเซ€ เชถเช•เชคเชพ เชจเชฅเซ€.

เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชชเซเชฐเชตเซ‡เชถ เชจเชฟเชฏเช‚เชคเซเชฐเช• เชฎเซ‹เชŸเชพ เชญเชพเช—เซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเชพเชฏเซ‡เชฒ เชจเชฅเซ€. เช‡เชจเซเช—เซเชฐเซ‡เชธ เช•เช‚เชŸเซเชฐเซ‹เชฒเชฐ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชคเซƒเชคเซ€เชฏ-เชชเช•เซเชท เช˜เชŸเช• เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡เชจเชพ เชชเซเชฐเช•เชพเชฐ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€เชจเซ‡ เชตเชฟเชตเชฟเชง เชกเชฟเชฌเช—เซ€เช‚เช— เชชเชฆเซเชงเชคเชฟเช“ เช›เซ‡.

เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เช‡เชจเซเช—เซเชฐเซ‡เชธเชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชฟเชถเซ‡เชท เชธเชพเชงเชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เชคเชฎเซ‡ เช•เช‚เชˆเช• เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชชเซเชฐเชตเซ‡เชถ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ 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>.

เชธเชพเชฐเชพเช‚เชถ

เชœเซ‹ เชคเชฎเชจเซ‡ เช•เซเชฏเชพเช‚เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชคเซ‡ เช–เชฌเชฐ เชจ เชนเซ‹เชฏ เชคเซ‹ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เช•เชฐเชตเซเช‚ เชชเชกเช•เชพเชฐเชฐเซ‚เชช เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเชฎเชพเชฐเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชจเซ€เชšเซ‡เชฅเซ€ เช‰เชชเชฐ เชธเซเชงเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช: เชถเซ€เช‚เช—เซ‹เชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹, เช…เชจเซ‡ เชชเช›เซ€ เชธเซ‡เชตเชพ เช…เชจเซ‡ เชชเซเชฐเชตเซ‡เชถ เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ‹. เช† เชฒเซ‡เช–เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เชกเซ€เชฌเช—เซ€เช‚เช— เชคเช•เชจเซ€เช•เซ‹ เช…เชจเซเชฏ เชตเชธเซเชคเซเช“ เชชเชฐ เชฒเชพเช—เซ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡:

  • เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เชจเซ‹เช•เชฐเซ€เช“ เช…เชจเซ‡ เช•เซเชฐเซ‹เชจเชœเซ‹เชฌเซเชธ;
  • เชธเซเชŸเซ‡เชŸเชซเซเชฒเชธเซ‡เชŸเซเชธ เช…เชจเซ‡ เชกเซ‡เชฎเชจเชธเซ‡เชŸเซเชธ.

เชนเซเช‚ เชฎเชพเชฐเซ€ เช•เซƒเชคเชœเซเชžเชคเชพ เชตเซเชฏเช•เซเชค เช•เชฐเซเช‚ เช›เซเช‚ Gergely เชฐเชฟเชธเซเช•เซ‹, เชกเซ‡เชจเชฟเชฏเชฒ เชตเซ‡เช‡เชฌเซ‡เชฒ ะธ เชšเชพเชฐเซเชฒเซเชธ เช•เซเชฐเชฟเชธเซเชŸเซ€เชฐเชพเชœ เชฎเซ‚เชฒเซเชฏเชตเชพเชจ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เช…เชจเซ‡ เช‰เชฎเซ‡เชฐเชพเช“ เชฎเชพเชŸเซ‡.

เช…เชจเซเชตเชพเชฆเช• เชคเชฐเชซเชฅเซ€ เชชเซ€เชเชธ

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เชชเชฃ เชตเชพเช‚เชšเซ‹:

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹