เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจจเจฟเจชเจŸเจพเจฐเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจ—เจพเจˆเจก

เจจเฉ‹เจŸ เจ•เจฐเฉ‹เฅค เจ…เจจเฉเจตเจพเจฆ: เจ‡เจน เจฒเฉ‡เจ– เจœเจจเจคเจ• เจกเฉ‹เจฎเฉ‡เจจ เจตเจฟเฉฑเจš เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเฉˆ learnk8s, เจธเจฟเจ–เจฒเจพเจˆ เจ•เฉฐเจชเจจเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจชเฉเจฐเจธเจผเจพเจธเจ•เจพเจ‚ เจจเฉ‚เฉฐ Kubernetes เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆเฅค เจ‡เจธ เจตเจฟเฉฑเจš, เจกเฉˆเจจเฉ€เจเจฒ เจชเฉ‹เจฒเฉˆเจ‚เจธเจฟเจ•, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฎเฉˆเจจเฉ‡เจœเจฐ, K8s เจ•เจฒเฉฑเจธเจŸเจฐ 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเจพเจฒ เจ†เจฎ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ•เจฟเจนเฉœเฉ‡ เจ•เจฆเจฎ เจšเฉเฉฑเจ•เจฃเฉ‡ เจนเจจ, เจ‡เจธ เจฌเจพเจฐเฉ‡ เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจธเจพเจ‚เจเฉ‡ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจจเจฟเจชเจŸเจพเจฐเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจ—เจพเจˆเจก

TL;DR: เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจนเฉˆ เจœเฉ‹ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐเจจ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ:

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจจเจฟเจชเจŸเจพเจฐเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจ—เจพเจˆเจก

เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจ…เจคเฉ‡ เจ เฉ€เจ• เจ•เจฐเจจ เจฒเจˆ เจซเจฒเฉ‹เจšเจพเจฐเจŸเฅค เจ…เจธเจฒเฉ€ (เจ…เฉฐเจ—เจฐเฉ‡เจœเจผเฉ€ เจตเจฟเฉฑเจš) 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉˆ PDF ะธ เจคเจธเจตเฉ€เจฐ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš.

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เจธเฉ‡เจตเจพ เจฒเจˆ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• Pod เจฒเฉ‡เจฌเจฒ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
  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?

เจ‡เจน เจนเจฎเฉ‡เจธเจผเจพ Pod เจฆเฉ‡ เจฒเฉ‡เจฌเจฒเจพเจ‚ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจกเจฟเจชเจฒเจพเจ‡เจฎเฉˆเจ‚เจŸ เจฆเฉเจ†เจฐเจพ เจชเฉŒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจŸเจฐเฉˆเจ• เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจธเจนเฉ€ เจธเฉฐเจชเจพเจฆเจจ เจ•เฉ€เจคเฉ‡ เจนเจจเฅค เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ?

เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจชเฉŒเจก เจฒเฉ‡เจฌเจฒ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

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 เจธเฉ‡เจตเจพ.

เจœเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจคเจพเจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจธเจนเฉ€ เจนเจจ.

เจœเฉ‡เจ•เจฐ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจ…เจธเจซเจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฒเฉ‡เจฌเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ เจœเจพเจ‚ เจชเฉ‹เจฐเจŸเจพเจ‚ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเฉ€เจ†เจ‚เฅค

เจธเฉ‡เจตเจพ เจ…เจคเฉ‡ เจชเฉเจฐเจตเฉ‡เจธเจผ เจตเจฟเจšเจ•เจพเจฐ เจธเจฌเฉฐเจง

เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฆเจพ เจ…เจ—เจฒเจพ เจ•เจฆเจฎ Ingress เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉˆเฅค เจชเฉเจฐเจตเฉ‡เจธเจผ เจจเฉ‚เฉฐ เจ‡เจน เจœเจพเจฃเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจ•เจฟเจตเฉ‡เจ‚ เจฒเฉฑเจญเจฃเฉ€ เจนเฉˆ, เจซเจฟเจฐ เจชเฉŒเจก เจฒเฉฑเจญเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ 'เจคเฉ‡ เจธเจฟเฉฑเจงเจพ เจŸเฉเจฐเฉˆเจซเจฟเจ•. Ingress เจจเจพเจฎ เจ…เจคเฉ‡ เจ“เจชเจจ เจชเฉ‹เจฐเจŸ เจฆเฉเจ†เจฐเจพ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจธเฉ‡เจตเจพ เจฒเฉฑเจญเจฆเฉ€ เจนเฉˆเฅค

เจชเฉเจฐเจตเฉ‡เจธเจผ เจ…เจคเฉ‡ เจธเฉ‡เจตเจพ เจฆเฉ‡ เจตเจฐเจฃเจจ เจตเจฟเฉฑเจš เจฆเฉ‹ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจฆเจพ เจฎเฉ‡เจฒ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

  1. servicePort Ingress เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ 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: /

เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจชเจคเจพ เจฒเจ—เจพเจ‡เจ† เจœเจพเจตเฉ‡ เจ•เจฟ เจ•เฉ€ เจชเฉเจฐเจตเฉ‡เจธเจผ เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ?

เจจเจพเจฒ เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ kubectl port-forward, เจชเจฐ เจธเฉ‡เจตเจพ เจฆเฉ€ เจฌเจœเจพเจ เจคเฉเจนเจพเจจเฉ‚เฉฐ Ingress เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฐเจ—เจฐเฉˆเจธ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจจเจพเจฒ เจชเฉŒเจก เจฆเจพ เจจเจพเจฎ เจชเจคเจพ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

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

เจ•เฉเจ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ‚เจœเจฟเจ†เจ‚ เจจเจพเจฒเฉ‹เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจ†เจฎ เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจ เจธเจญ เจคเฉ‹เจ‚ เจ†เจฎ เจ—เจฒเจคเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ เฉ€เจ• เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจšเจฟเฉฑเจคเจฐเจชเฉเฉฑเจฒเจฌเฉˆเจ•เจ†เจซ

เจ‡เจน เจ—เจฒเจคเฉ€ เจ‰เจฆเฉ‹เจ‚ เจชเฉเจฐเจ—เจŸ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจชเฉŒเจก เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจฒเจˆ เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ…เจธเจฎเจฐเฉฑเจฅ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เจธเจฆเฉ‡ เจคเจฟเฉฐเจจ เจธเจญ เจคเฉ‹เจ‚ เจ†เจฎ เจ•เจพเจฐเจจ เจนเจจ:

  1. เจšเจฟเฉฑเจคเจฐ เจฆเจพ เจจเจพเจฎ เจ—เจฒเจค เจนเฉˆ - เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€ เจ•เฉ€เจคเฉ€ เจนเฉˆ, เจœเจพเจ‚ เจšเจฟเฉฑเจคเจฐ เจฎเฉŒเจœเฉ‚เจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ;
  2. เจšเจฟเฉฑเจคเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจฎเฉŒเจœเฉ‚เจฆ เจŸเฉˆเจ— เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€;
  3. เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจฟเฉฑเจœเฉ€ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเฉ‚เฉฐ เจ‡เจธ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจชเจนเจฟเจฒเฉ‡ เจฆเฉ‹ เจ•เจพเจฐเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ–เจผเจคเจฎ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ - เจธเจฟเจฐเจซเจผ เจšเจฟเฉฑเจคเจฐ เจฆเฉ‡ เจจเจพเจฎ เจ…เจคเฉ‡ เจŸเฉˆเจ— เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเฉ‹เฅค เจฌเจพเจ…เจฆ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉ€เจ•เจฐเฉ‡เจŸ เจตเจฟเฉฑเจš เจฌเฉฐเจฆ เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจฒเจˆ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ เจฆเจพเจ–เจฒ เจ•เจฐเจจ เจ…เจคเฉ‡ เจชเฉŒเจก เจตเจฟเฉฑเจš เจ‡เจธ เจฆเฉ‡ เจฒเจฟเฉฐเจ• เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจนเฉˆ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ•เจฐเฉˆเจธเจผ เจฒเฉ‚เจช เจฌเฉˆเจ• เจ†เจซ

เจ•เฉเจฌเฉ‡เจจเฉ‡เจŸเจธ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจธเฉเฉฑเจŸเจฆเจพ เจนเฉˆ CrashLoopBackOff, เจœเฉ‡เจ•เจฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจผเฉเจฐเฉ‚ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจธเจ•เจฆเจพเฅค เจ‡เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจฆเฉ‹เจ‚ เจตเจพเจชเจฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚:

  1. เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฌเฉฑเจ— เจนเฉˆ เจœเฉ‹ เจ‡เจธเจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฐเฉ‹เจ•เจฆเจพ เจนเฉˆ;
  2. เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ—เจฒเจค เจขเฉฐเจ— เจจเจพเจฒ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ;
  3. เจฒเจฟเจตเจจเฉ‡เจธ เจŸเฉˆเจธเจŸ เจตเฉ€ เจ•เจˆ เจตเจพเจฐ เจซเฉ‡เจฒ เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจ…เจธเจซเจฒเจคเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจคเฉ‹เจ‚ เจฒเฉŒเจ—เจธ เจคเฉฑเจ• เจชเจนเฉเฉฐเจšเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจฒเฉŒเจ—เจธ เจจเฉ‚เฉฐ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจเจพ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

kubectl logs <pod-name> --previous

เจ‡เจน เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจ…เจตเจคเจพเจฐ เจคเฉ‹เจ‚ เจ—เจฒเจคเฉ€ เจธเฉเจจเฉ‡เจนเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค

RunContainerError

เจ‡เจน เจ—เจฒเจคเฉ€ เจ‰เจฆเฉ‹เจ‚ เจตเจพเจชเจฐเจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจšเจพเจฒเฉ‚ เจนเฉ‹เจฃ เจตเจฟเฉฑเจš เจ…เจธเจซเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจฒเจพเจ‚เจš เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฆเฉ‡ เจชเจฒ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ—เจฒเจค เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจ•เจพเจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ:

  • เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจฎเฉŒเจœเฉ‚เจฆ เจตเจพเจฒเฉ€เจ…เจฎ เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจเจพ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ ConfigMap เจœเจพเจ‚ เจธเฉ€เจ•เจฐเฉ‡เจŸเจธ;
  • เจ‡เฉฑเจ• เจฐเฉ€เจก-เจ“เจจเจฒเฉ€ เจตเจพเจฒเฉ€เจ…เจฎ เจจเฉ‚เฉฐ เจฐเฉ€เจก-เจฐเจพเจˆเจŸ เจตเจœเฉ‹เจ‚ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผเฅค

เจŸเฉ€เจฎ เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจ เจฒเจˆ เจขเฉเจ•เจตเฉ€เจ‚ เจนเฉˆ kubectl describe pod <pod-name>.

เจซเจฒเฉ€เจ†เจ‚ เจฒเฉฐเจฌเจฟเจค เจ…เจตเจธเจฅเจพ เจตเจฟเฉฑเจš เจนเจจ

เจ‡เฉฑเจ• เจตเจพเจฐ เจฌเจฃเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจชเฉŒเจก เจฐเจพเจœ เจตเจฟเฉฑเจš เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆ Pending.

เจ…เจœเจฟเจนเจพ เจ•เจฟเจ‰เจ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ?

เจ‡เฉฑเจฅเฉ‡ เจธเฉฐเจญเจต เจ•เจพเจฐเจจ เจนเจจ (เจฎเฉˆเจ‚ เจฎเฉฐเจจ เจฐเจฟเจนเจพ เจนเจพเจ‚ เจ•เจฟ เจธเจผเจกเจฟเจŠเจฒเจฐ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ):

  1. เจชเฉ‹เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ•เจฒเฉฑเจธเจŸเจฐ เจ•เฉ‹เจฒ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเจฐเฉ‹เจค เจจเจนเฉ€เจ‚ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเจพเจตเจฐ เจ…เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€เฅค
  2. เจ†เจฌเจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ‰เจšเจฟเจค เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ ResourceQuota เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจชเฉŒเจก เจฌเจฃเจพเจ‰เจฃ เจจเจพเจฒ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจ•เฉ‹เจŸเฉ‡ เจคเฉ‹เจ‚ เจชเจฐเฉ‡ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค
  3. Pod เจฒเฉฐเจฌเจฟเจค เจจเจพเจฒ เจฌเฉฐเจจเฉเจนเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ 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. เจฆเจพเจ–เจฒเจพ เจจเจฟเจฆเจพเจจ

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจนเฉเจฃ เจคเฉฑเจ• เจชเฉœเฉเจนเจฟเจ† เจนเฉˆ, เจคเจพเจ‚:

  • pods เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจนเจจ 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 'เจคเฉ‡ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจฃเจ—เฉ€เจ†เจ‚เฅค

เจ•เฉ€ เจ‡เจน เจนเฉเจฃ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ?

  • เจœเฉ‡เจ•เจฐ เจนเจพเจ‚, เจคเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจ•เจฟ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจคเฉฑเจ• เจ•เจฟเจตเฉ‡เจ‚ เจญเฉ‡เจœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ.
  • เจœเฉ‡ เจจเจนเฉ€เจ‚, เจคเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจ‡เฉฐเจ—เจฐเฉˆเจธ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจจเจพเจฒ เจนเฉˆ.

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ Ingress เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจชเฉเจฐเจพเจชเจค เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค

เจ‡เฉฐเจ—เจฐเฉˆเจธ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ•เจˆ เจ•เจฟเจธเจฎเจพเจ‚ เจนเจจเฅค เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจชเฉเจฐเจธเจฟเฉฑเจง เจนเจจ 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 Risko, เจกเฉˆเจจเฉ€เจ…เจฒ เจตเฉ‡เจ‡เจฌเจฒ ะธ เจšเจพเจฐเจฒเจธ เจ•เฉเจฐเจฟเจธเจŸเฉ€เจฐเจพเจœ เจ•เฉ€เจฎเจคเฉ€ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจœเฉ‹เฉœเจพเจ‚ เจฒเจˆเฅค

เจ…เจจเฉเจตเจพเจฆเจ• เจคเฉ‹เจ‚ เจชเฉ€.เจเจธ

เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจตเฉ€ เจชเฉœเฉเจนเฉ‹:

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹