เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

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

เช†เชœเซ‡, เช˜เชฃเซ€ เช•เช‚เชชเชจเซ€เช“ เชคเซ‡เชฎเชจเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ‡ เชตเชงเซเชจเซ‡ เชตเชงเซ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡. เช† เชธเซ‰เชซเซเชŸเชตเซ‡เชฐเชฎเชพเช‚ เชฐเชธ เชเชŸเชฒเซ‹ เชตเชงเชพเชฐเซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‡เชŸเชฒเชพเช• เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ‡ "เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐ เชฎเชพเชŸเซ‡ เชจเชตเซ€ เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ" เช•เชนเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‡. เชงเซ€เชฐเซ‡ เชงเซ€เชฐเซ‡, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ (เช…เชฅเชตเชพ k8s) เชจเซ‡ เชตเซเชฏเชตเชธเชพเชฏเชจเชพ เชเช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชญเชพเช— เชคเชฐเซ€เช•เซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชธเซเชฐเช•เซเชทเชพ เชธเชนเชฟเชค เชชเชฐเชฟเชชเช•เซเชต เชตเซเชฏเชตเชธเชพเชฏเชฟเช• เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเชพ เชธเช‚เช—เช เชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซ‡ เชœเซ‡เช“ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ€เชจเซ‡ เชฎเซ‚เช‚เชเชตเชฃเชฎเชพเช‚ เช›เซ‡, เชตเชพเชธเซเชคเชตเชฟเช• เชธเชพเช•เซเชทเชพเชคเซเช•เชพเชฐ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเซ€ เชกเชฟเชซเซ‹เชฒเซเชŸ เชจเซ€เชคเชฟ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡: เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‹.

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

Kubernetes เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“

Kubernetes เชจเซ‡เชŸเชตเชฐเซเช• เชชเซ‹เชฒเชฟเชธเซ€ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เชคเชฎเชจเซ‡ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ เชจเซ‡เชŸเชตเชฐเซเช• เชฒเซ‡เชฏเชฐ (OSI เชฎเซ‹เชกเชฒเชฎเชพเช‚ เชคเซเชฐเซ€เชœเซเช‚) เชชเชฐ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชฎเชพเช‚ เช†เชงเซเชจเชฟเช• เชซเชพเชฏเชฐเชตเซ‹เชฒเชจเซ€ เช•เซ‡เชŸเชฒเซ€เช• เช…เชฆเซเชฏเชคเชจ เชธเซเชตเชฟเชงเชพเช“เชจเซ‹ เช…เชญเชพเชต เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ OSI เชฒเซ‡เชฏเชฐ 7 เช…เชฎเชฒเซ€เช•เชฐเชฃ เช…เชจเซ‡ เชงเชฎเช•เซ€ เชถเซ‹เชง, เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชจเซ‡เชŸเชตเชฐเซเช• เชธเซเชฐเช•เซเชทเชพเชจเซเช‚ เชฎเซ‚เชณเชญเซ‚เชค เชธเซเชคเชฐ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชเช• เชธเชพเชฐเซ‹ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชฌเชฟเช‚เชฆเซ เช›เซ‡.

เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เชชเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡เชจเชพ เชธเช‚เชšเชพเชฐเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡

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

เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค

เช…เชจเซเชฏ Kubernetes เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชœเซ‡เชฎ, เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ YAML เชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช›เซ‡. เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ balance เชชเซเชฐเชตเซ‡เชถ เชฎเซ‡เชณเชตเชตเซ‹ postgres:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: balance
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

(เชจเซ‰เซ…เชง. เช…เชจเซเชตเชพเชฆ: เช† เชธเซเช•เซเชฐเซ€เชจเชถเซ‰เชŸ, เชคเซเชฏเชพเชฐเชชเช›เซ€เชจเชพ เชคเชฎเชพเชฎ เชธเชฎเชพเชจเซ‹เชจเซ€ เชœเซ‡เชฎ, เชฎเซ‚เชณ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ‚เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชคเซเชซเชฟเชจ เช“เชฐเซเช•เชพ เชŸเซ‚เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เชœเซ‡ เชฎเซ‚เชณ เชฒเซ‡เช–เชจเชพ เชฒเซ‡เช–เช•เชจเซ€ เช•เช‚เชชเชจเซ€ เชฆเซเชตเชพเชฐเชพ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ เช…เชจเซ‡ เชœเซ‡เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เชธเชพเชฎเช—เซเชฐเซ€เชจเชพ เช…เช‚เชคเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡.)

เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ YAML เชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เชœเซเชžเชพเชจเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เช† เชญเชพเชทเชพ เช‡เชจเซเชกเซ‡เชจเซเชŸเซ‡เชถเชจ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡ (เชŸเซ…เชฌเชจเซ‡ เชฌเชฆเชฒเซ‡ เชœเช—เซเชฏเชพเช“ เชฆเซเชตเชพเชฐเชพ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค). เช‡เชจเซเชกเซ‡เชจเซเชŸเซ‡เชก เชคเชคเซเชต เชคเซ‡เชจเซ€ เช‰เชชเชฐเชจเชพ เชธเซŒเชฅเซ€ เชจเชœเซ€เช•เชจเชพ เช‡เชจเซเชกเซ‡เชจเซเชŸเซ‡เชก เชคเชคเซเชตเชจเซเช‚ เช›เซ‡. เชจเชตเซ€ เชธเซ‚เชšเชฟ เช˜เชŸเช• เชนเชพเช‡เชซเชจเชฅเซ€ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡, เช…เชจเซเชฏ เชคเชฎเชพเชฎ เช˜เชŸเช•เซ‹เชจเซเช‚ เชธเซเชตเชฐเซ‚เชช เชนเซ‹เชฏ เช›เซ‡ เช•เซ€-เชฎเซ‚เชฒเซเชฏ.

YAML เชฎเชพเช‚ เชจเซ€เชคเชฟเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ kubectlเชคเซ‡เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡:

kubectl create -f policy.yaml

เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟ เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃ

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟ เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃเชฎเชพเช‚ เชšเชพเชฐ เช˜เชŸเช•เซ‹ เชถเชพเชฎเซ‡เชฒ เช›เซ‡:

  1. podSelector: เช† เชจเซ€เชคเชฟ (เชฒเช•เซเชทเซเชฏเซ‹) เชฆเซเชตเชพเชฐเชพ เช…เชธเชฐเช—เซเชฐเชธเซเชค เชถเซ€เช‚เช—เซ‹ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡ - เชœเชฐเซ‚เชฐเซ€;
  2. policyTypes: เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เช•เซ‡ เช†เชฎเชพเช‚ เช•เชฏเชพ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชจเซ€เชคเชฟเช“ เชถเชพเชฎเซ‡เชฒ เช›เซ‡: เชชเซเชฐเชตเซ‡เชถ เช…เชจเซ‡/เช…เชฅเชตเชพ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเซ‹ - เชตเซˆเช•เชฒเซเชชเชฟเช•, เชชเชฐเช‚เชคเซ เชนเซเช‚ เชคเซ‡เชจเซ‡ เชคเชฎเชพเชฎ เช•เซ‡เชธเซ‹เชฎเชพเช‚ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซเช‚ เช›เซเช‚;
  3. ingress: เชฎเชพเชจเซเชฏ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช‡เชจเช•เชฎเชฟเช‚เช— เชฒเช•เซเชทเซเชฏ เชถเซ€เช‚เช—เซ‹ เชชเชฐ เชŸเซเชฐเชพเชซเชฟเช• - เชตเซˆเช•เชฒเซเชชเชฟเช•;
  4. egress: เชฎเชพเชจเซเชฏ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เชฒเช•เซเชทเซเชฏ เชถเซ€เช‚เช—เซ‹เชฎเชพเช‚เชฅเซ€ เชŸเซเชฐเชพเชซเชฟเช• เชตเซˆเช•เชฒเซเชชเชฟเช• เช›เซ‡.

เช•เซเชฌเชฐเชจเซ‡เชŸเซ€เชธ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐเชฅเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เช‰เชฆเชพเชนเชฐเชฃ (เชฎเซ‡เช‚ เชฌเชฆเชฒเซเชฏเซเช‚ role เชชเชฐ app), เชฌเชคเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฎ เชšเชพเชฐ เช˜เชŸเช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฅเชพเชฏ เช›เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:    # <<<
    matchLabels:
      app: db
  policyTypes:    # <<<
  - Ingress
  - Egress
  ingress:        # <<<
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:         # <<<
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ
เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเชพเชฎ เชšเชพเชฐ เช˜เชŸเช•เซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชซเชฐเชœเชฟเชฏเชพเชค เชฎเชพเชคเซเชฐ เช›เซ‡ podSelector, เช…เชจเซเชฏ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช‡เชšเซเช›เชฟเชค เชคเชฐเซ€เช•เซ‡ เชตเชพเชชเชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชœเซ‹ เช†เชชเชฃเซ‡ เช›เซ‹เชกเซ€ เชฆเชˆเช policyTypes, เชจเซ€เชคเชฟ เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เช…เชฐเซเชฅเช˜เชŸเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

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

เชญเซ‚เชฒเซ‹ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชญเชฒเชพเชฎเชฃ เช•เชฐเซเช‚ เช›เซเช‚ เชนเช‚เชฎเซ‡เชถเชพ เชคเซ‡เชจเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‹ policyTypes.

เช‰เชชเชฐเซ‹เช•เซเชค เชคเชฐเซเช• เชฎเซเชœเชฌ, เชœเซ‹ เชชเชฐเชฟเชฎเชพเชฃเซ‹ ingress เช…เชจเซ‡ / เช…เชฅเชตเชพ egress เช…เชตเช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชจเซ€เชคเชฟ เชคเชฎเชพเชฎ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชจเช•เชพเชฐเชถเซ‡ (เชจเซ€เชšเซ‡ "เชธเซเชŸเซเชฐเซ€เชชเชฟเช‚เช— เชจเชฟเชฏเชฎ" เชœเซเช“).

เชกเชฟเชซเซ‹เชฒเซเชŸ เชจเซ€เชคเชฟ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡

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

เชจเซ‡เชฎเชธเซเชชเซ‡เชธ

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

เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช˜เชŸเช•เซ‹เชจเซ€ เชœเซ‡เชฎ, เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เชšเซ‹เช•เซเช•เชธ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชฐเชนเซ‡ เช›เซ‡. เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ metadata เชคเชฎเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชจเซ€เชคเชฟ เช•เชˆ เชœเช—เซเชฏเชพเชจเซ€ เช›เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: my-namespace  # <<<
spec:
...

เชœเซ‹ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพเชฎเชพเช‚ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชจ เชนเซ‹เชฏ, เชคเซ‹ เชธเชฟเชธเซเชŸเชฎ kubectl (เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡) เชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‡ namespace=default):

kubectl apply -n my-namespace -f namespace.yaml

เชนเซเช‚ เชญเชฒเชพเชฎเชฃ เช•เชฐเซเช‚ เช›เซเช‚ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‹, เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเซ‡ เชเช• เชœ เชธเชฎเชฏเซ‡ เชฌเชนเซเชตเชฟเชง เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชจเซ‡ เชฒเช•เซเชทเชฟเชค เช•เชฐเชคเซ€ เชจเซ€เชคเชฟ เชฒเช–เซ€ เชฐเชนเซเชฏเชพเช‚ เชนเซ‹เชต.

เชฎเซเช–เซเชฏ เชคเชคเซเชต podSelector เชชเซ‹เชฒเชฟเชธเซ€เชฎเชพเช‚ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชชเซ‹เชกเซเชธ เชชเชธเช‚เชฆ เช•เชฐเชถเซ‡ เชœเซ‡เชจเซ€ เชชเซ‹เชฒเชฟเชธเซ€ เช›เซ‡ (เชคเซ‡เชจเซ‡ เช…เชจเซเชฏ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชชเซ‹เชกเซเชธเชจเซ€ เชเช•เซเชธเซ‡เชธ เชจเช•เชพเชฐเซ€ เช›เซ‡).

เช เชœ เชฐเซ€เชคเซ‡, เชชเซ‹เชกเชธเชฟเชฒเซ‡เช•เซเชŸเชฐเซเชธ เชชเซเชฐเชตเซ‡เชถ เช…เชจเซ‡ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเชพเชจเชพ เชฌเซเชฒเซ‹เช•เซเชธเชฎเชพเช‚ เชซเช•เซเชค เชชเซ‹เชกเซเชธเชจเซ‡ เชคเซ‡เชฎเชจเชพ เชชเซ‹เชคเชพเชจเชพ เชจเชพเชฎ เชธเซเชฅเชพเชจเชฎเชพเช‚เชฅเซ€ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชธเชฟเชตเชพเชฏ เช•เซ‡ เชคเชฎเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ‹ namespaceSelector (เช†เชจเซ€ เชšเชฐเซเชšเชพ โ€œเชจเซ‡เชฎเชธเซเชชเซ‡เชธ เช…เชจเซ‡ เชชเซ‹เชกเซเชธ เชฆเซเชตเชพเชฐเชพ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ‹โ€ เชตเชฟเชญเชพเช—เชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡).

เชชเซ‹เชฒเชฟเชธเซ€ เชจเชพเชฎเช•เชฐเชฃ เชจเชฟเชฏเชฎเซ‹

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

เชฎเชจเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชจเชพเชฎเช•เชฐเชฃเชจเซ€ เชเช• เชชเชฆเซเชงเชคเชฟ เช—เชฎเซ‡ เช›เซ‡. เชคเซ‡เชฎเชพเช‚ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชจเชพเชฎเชจเซ‡ เชฒเช•เซเชทเซเชฏ เชชเซ‹เชกเซเชธ เชธเชพเชฅเซ‡ เชธเช‚เชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชฆเชพเช–เซเชฒเชพ เชคเชฐเซ€เช•เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres  # <<<
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชฒเซ‡เชฌเชฒเซเชธ

เชคเชฎเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช‘เชฌเซเชœเซ‡เช•เซเชŸเชฎเชพเช‚ เช•เชธเซเชŸเชฎ เชฒเซ‡เชฌเชฒเซเชธ เชœเซ‹เชกเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡เชฎ เช•เซ‡ เชชเซ‹เชกเซเชธ เช…เชจเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ. เชฒเซ‡เชฌเชฒเซเชธ (เชฒเซ‡เชฌเชฒเซเชธ - เชŸเซ…เช—เซเชธ) เช เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚เชจเชพ เชŸเซ…เช—เซเชธเชจเซ€ เชธเชฎเช•เช•เซเชท เช›เซ‡. Kubernetes เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฒเซ‡เชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชถเซ€เช‚เช—เซ‹เชœเซ‡เชจเชพ เชชเชฐ เชคเซ‡เช“ เช…เชฐเชœเซ€ เช•เชฐเซ‡ เช›เซ‡:

podSelector:
  matchLabels:
    role: db

โ€ฆ เช…เชฅเชตเชพ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เช“ เช…เชฐเชœเซ€ เช•เชฐเซ‡ เช›เซ‡. เช† เช‰เชฆเชพเชนเชฐเชฃ เช…เชจเซเชฐเซ‚เชช เชฒเซ‡เชฌเชฒเซเชธ เชธเชพเชฅเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡:

namespaceSelector:
  matchLabels:
    project: myproject

เชเช• เชธเชพเชตเชงเชพเชจเซ€: เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ namespaceSelector เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‡เชฒ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชฏเซ‹เช—เซเชฏ เชฒเซ‡เชฌเชฒ เช›เซ‡. เชงเซเชฏเชพเชจ เชฐเชพเช–เซ‹ เช•เซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชœเซ‡เชฎ เช•เซ‡ default ะธ kube-system, เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชฒเซ‡เชฌเชฒเซเชธ เชธเชฎเชพเชตเชคเชพ เชจเชฅเซ€.

เชคเชฎเซ‡ เช†เชจเชพ เชœเซ‡เชตเซ€ เชœเช—เซเชฏเชพเชฎเชพเช‚ เชฒเซ‡เชฌเชฒ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

kubectl label namespace default namespace=default

เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชจเชพเชฎเชจเซ€ เชœเช—เซเชฏเชพ metadata เชตเชพเชธเซเชคเชตเชฟเช• เชœเช—เซเชฏเชพเชจเชพ เชจเชพเชฎเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เชฒเซ‡เชตเซ‹ เชœเซ‹เชˆเช, เชฒเซ‡เชฌเชฒเชจเซ‹ เชจเชนเซ€เช‚:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default   # <<<
spec:
...

เชธเซเชคเซเชฐเซ‹เชค เช…เชจเซ‡ เช—เช‚เชคเชตเซเชฏ

เชซเชพเชฏเชฐเชตเซ‹เชฒ เชจเซ€เชคเชฟเช“เชฎเชพเช‚ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เช…เชจเซ‡ เช—เช‚เชคเชตเซเชฏเซ‹เชจเชพ เชจเชฟเชฏเชฎเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เชฒเช•เซเชทเซเชฏ เชฎเชพเชŸเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชชเซ‹เชกเซเชธเชจเซ‹ เชธเชฎเซ‚เชน เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชคเซ‡เช“ เชฒเชพเช—เซ เชฅเชพเชฏ เช›เซ‡ - เช…เชจเซ‡ เชชเช›เซ€ เชชเซเชฐเชตเซ‡เชถ เช…เชจเซ‡/เช…เชฅเชตเชพ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเชพเชจเชพ เชŸเซเชฐเชพเชซเชฟเช• เชฎเชพเชŸเซ‡ เชจเชฟเชฏเชฎเซ‹ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชชเซ‹เชฒเชฟเชธเซ€เชจเซเช‚ เชฒเช•เซเชทเซเชฏ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชจเชพ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธ เชนเชถเซ‡ default เช•เซ€ เชธเชพเชฅเซ‡ เชฒเซ‡เชฌเชฒ เชธเชพเชฅเซ‡ app เช…เชจเซ‡ เช…เชฐเซเชฅ db:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: db   # <<<
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ
เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

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

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช† เชฌเซ‡ เชซเชพเชฏเชฐเชตเซ‹เชฒ เชจเชฟเชฏเชฎเซ‹เชจเซ€ เชธเชฎเช•เช•เซเชท เช›เซ‡: เชชเซเชฐเชตเซ‡เชถ โ†’ เชฒเช•เซเชทเซเชฏ; เชงเซเชฏเซ‡เชฏ โ†’ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเซ‹.

เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเซเช‚ เช…เชจเซ‡ DNS (เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ!)

เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช•เชฐเซ€เชจเซ‡, DNS เชชเชฐ เชตเชฟเชถเซ‡เชท เชงเซเชฏเชพเชจ เช†เชชเซ‹ - Kubernetes เช† เชธเซ‡เชตเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— IP เชธเชฐเชจเชพเชฎเชพเช‚ เชชเชฐ เชธเซ‡เชตเชพเช“เชจเซ‹ เชจเช•เชถเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเซ€เชšเซ‡เชจเซ€ เชจเซ€เชคเชฟ เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚ เช•เชพเชฐเชฃ เช•เซ‡ เชคเชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ€ เชจเชฅเซ€ balance DNS เชเช•เซเชธเซ‡เชธ เช•เชฐเซ‹:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  policyTypes:
  - Egress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชคเชฎเซ‡ DNS เชธเซ‡เชตเชพเชจเซ€ เชเช•เซเชธเซ‡เชธ เช–เซ‹เชฒเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เช เซ€เช• เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:               # <<<
    ports:            # <<<
    - protocol: UDP   # <<<
      port: 53        # <<<
  policyTypes:
  - Egress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช›เซ‡เชฒเซเชฒเซเช‚ เชคเชคเซเชต to เช–เชพเชฒเซ€ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชคเซ‡ เชชเชฐเซ‹เช•เซเชท เชฐเซ€เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡ เชคเชฎเชพเชฎ เชจเชพเชฎเชจเซ€ เชœเช—เซเชฏเชพเช“เชฎเชพเช‚ เชคเชฎเชพเชฎ เชถเซ€เช‚เช—เซ‹, เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ balance DNS เช•เซเชตเซ‡เชฐเซ€เชเชจเซ‡ เชฏเซ‹เช—เซเชฏ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซ‡เชตเชพ เชชเชฐ เชฎเซ‹เช•เชฒเซ‹ (เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชœเช—เซเชฏเชพเชฎเชพเช‚ เชšเชพเชฒเชคเซ€ เชนเซ‹เชฏ เช›เซ‡ kube-system).

เช† เช…เชญเชฟเช—เชฎ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฎ เช›เชคเชพเช‚ เช…เชคเชฟเชถเชฏ เช…เชจเซเชฎเชคเชฟเชชเซ‚เชฐเซเชฃ เช…เชจเซ‡ เช…เชธเซเชฐเช•เซเชทเชฟเชค, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ DNS เช•เซเชตเซ‡เชฐเซ€เชเชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชฌเชนเชพเชฐ เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชคเซเชฐเชฃ เช•เซเชฐเชฎเชฟเช• เชชเช—เชฒเชพเช‚เชฎเชพเช‚ เชธเซเชงเชพเชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

1. เชฎเชพเชคเซเชฐ DNS เช•เซเชตเซ‡เชฐเซ€เชเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‹ เช…เช‚เชฆเชฐ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐ namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:
    - namespaceSelector: {} # <<<
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

2. เชฎเชพเชคเซเชฐ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชœ DNS เช•เซเชตเซ‡เชฐเซ€เชเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‹ kube-system.

เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชฒเซ‡เชฌเชฒ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ kube-system: kubectl label namespace kube-system namespace=kube-system - เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซ‹เชฒเชฟเชธเซ€เชฎเชพเช‚ เชฒเช–เซ‹ namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:
    - namespaceSelector:         # <<<
        matchLabels:             # <<<
          namespace: kube-system # <<<
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

3. เชชเซ‡เชฐเชพเชจเซ‹เช‡เชก เชฒเซ‹เช•เซ‹ เชนเชœเซ€ เชชเชฃ เช†เช—เชณ เชœเชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ DNS เช•เซเชตเซ‡เชฐเซ€เชเชจเซ‡ เชšเซ‹เช•เซเช•เชธ DNS เชธเซ‡เชตเชพ เชธเซเชงเซ€ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ kube-system. "เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เช…เชจเซ‡ เชชเซ‹เชกเซเชธ เชฆเซเชตเชพเชฐเชพ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ‹" เชตเชฟเชญเชพเช— เชคเชฎเชจเซ‡ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเซเช‚ เชคเซ‡ เชœเชฃเชพเชตเชถเซ‡.

เชฌเซ€เชœเซ‹ เชตเชฟเช•เชฒเซเชช เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชธเซเชคเชฐเซ‡ DNS เช‰เช•เซ‡เชฒเชตเชพเชจเซ‹ เช›เซ‡. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡เชจเซ‡ เชฆเชฐเซ‡เช• เชธเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เช–เซ‹เชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.dns
  namespace: default
spec:
  podSelector: {} # <<<
  egress:
  - to:
    - namespaceSelector: {}
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

เช–เชพเชฒเซ€ podSelector เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡.

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชชเซเชฐเชฅเชฎ เชฎเซ‡เชš เช…เชจเซ‡ เชจเชฟเชฏเชฎเชจเซ‹ เช•เซเชฐเชฎ

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

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

เชคเชฎเซ‡ เชธเซเชŸเซเชฐเชฟเชชเชฟเช‚เช— เชจเชฟเชฏเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช† เชตเชฐเซเชคเชจ เชฌเชฆเชฒเซ€ เชถเช•เซ‹ เช›เซ‹.

เชธเซเชŸเซเชฐเซ€เชชเชฟเช‚เช— เชจเชฟเชฏเชฎ ("เชจเช•เชพเชฐเซ‹")

เชซเชพเชฏเชฐเชตเซ‹เชฒ เชจเซ€เชคเชฟเช“ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เซ‹เชˆเชชเชฃ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชจเช•เชพเชฐเซ‡ เช›เซ‡ เชœเซ‡เชจเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชจเชฅเซ€.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เช•เซ‹เชˆ เชจเชพเชฎเช‚เชœเซ‚เชฐ เช•เซเชฐเชฟเชฏเชพ เชจเชฅเซ€เชœเซ‹ เช•เซ‡, เชธเซเชคเซเชฐเซ‹เชค เชชเซ‹เชกเซเชธเชจเชพ เช–เชพเชฒเซ€ เชœเซ‚เชฅ (เชชเซเชฐเชตเซ‡เชถ)เชจเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ€เชจเซ‡ เชจเชฟเชฏเชฎเชฟเชค (เชชเชฐเชฎเชฟเชถเชจ เช†เชชเชคเซ€) เชจเซ€เชคเชฟ เชธเชพเชฅเซ‡ เชธเชฎเชพเชจ เช…เชธเชฐ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช† เชจเซ€เชคเชฟ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชจเชพ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธเชจเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช†เชตเชจเชพเชฐเชพ เชคเชฎเชพเชฎ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชจเช•เชพเชฐเซ€เชจเซ‡, เช…เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชชเซเชฐเชตเซ‡เชถเชจเซ‡ เช›เซ‹เชกเซ€ เชฆเซ‡ เช›เซ‡.

เชคเซ‡เชตเซ€ เชœ เชฐเซ€เชคเซ‡, เชคเชฎเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชคเชฎเชพเชฎ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-egress
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชชเซ‹เชกเซเชธ เชชเชฐ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชคเซ€ เช•เซ‹เชˆเชชเชฃ เชตเชงเชพเชฐเชพเชจเซ€ เชจเซ€เชคเชฟเช“ เช† เชจเชฟเชฏเชฎ เชชเชฐ เช…เช—เซเชฐเชคเชพ เชฒเซ‡เชถเซ‡ (เชซเชพเชฏเชฐเชตเซ‹เชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชจเชพเชฎเช‚เชœเซ‚เชฐ เชจเชฟเชฏเชฎ เชชเชนเซ‡เชฒเชพเช‚ เชชเชฐเชตเชพเชจเช—เซ€เชจเซ‹ เชจเชฟเชฏเชฎ เช‰เชฎเซ‡เชฐเชตเชพ เชœเซ‡เชตเซเช‚).

เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‹ (เช•เซ‹เชˆเชชเชฃ-เช•เซ‹เชˆเชชเชฃ-เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‹)

เชฌเชงเชพเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‹ เชจเซ€เชคเชฟ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เช‰เชชเชฐเชจเซ€ เชจเช•เชพเชฐเซ‹ เชจเซ€เชคเชฟเชจเซ‡ เช–เชพเชฒเซ€ เช˜เชŸเช• เชธเชพเชฅเซ‡ เชชเซ‚เชฐเช• เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ ingress:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
  namespace: default
spec:
  podSelector: {}
  ingress: # <<<
  - {}     # <<<
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชเช•เซเชธเซ‡เชธเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชจเชพ เช•เซ‹เชˆเชชเชฃ เชชเซ‹เชก เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฎ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ (เช…เชจเซ‡ เชคเชฎเชพเชฎ เช†เชˆเชชเซ€) เชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธ default. เช† เชตเชฐเซเชคเชฃเซ‚เช• เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชธเช•เซเชทเชฎ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชตเชงเซ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชœเซ‹ เช•เซ‡, เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชคเชฎเชพเชฐเซ‡ เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เชจเชฟเชฆเชพเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซเช• เชšเซ‹เช•เซเช•เชธ เชชเชฐเชตเชพเชจเช—เซ€เช“เชจเซ‡ เช…เชธเซเชฅเชพเชฏเซ€ เชฐเซ‚เชชเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ€ เชถเช•เซ‡ เช›เซ‡.

เชซเช•เซเชค เชเช•เซเชธเซ‡เชธเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เชจเชฟเชฏเชฎเชจเซ‡ เชธเช‚เช•เซเชšเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชถเซ€เช‚เช—เซ‹เชจเซ‹ เชšเซ‹เช•เซเช•เชธ เชธเชฎเซ‚เชน (app:balance) เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ default:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all-to-balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  ingress: 
  - {}
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชจเซ€เชšเซ‡เชจเซ€ เชจเซ€เชคเชฟ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชฌเชนเชพเชฐ เช•เซ‹เชˆเชชเชฃ เช†เชˆเชชเซ€เชจเซ€ เชเช•เซเชธเซ‡เชธ เชธเชนเชฟเชค เชคเชฎเชพเชฎ เชชเซเชฐเชตเซ‡เชถ เช…เชจเซ‡ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเชพเชจเชพ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
spec:
  podSelector: {}
  ingress:
  - {}
  egress:
  - {}
  policyTypes:
  - Ingress
  - Egress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ
เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชฌเชนเซเชตเชฟเชง เชจเซ€เชคเชฟเช“เชจเซเช‚ เชธเช‚เชฏเซ‹เชœเชจ

เชคเซเชฐเชฃ เชธเซเชคเชฐเซ‹ เชชเชฐ เชฒเซ‹เชœเชฟเช•เชฒ OR เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชจเซ€เชคเชฟเช“เชจเซ‡ เชœเซ‹เชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; เชฆเชฐเซ‡เช• เชชเซ‹เชกเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€เช“ เชคเซ‡เชจเซ‡ เช…เชธเชฐ เช•เชฐเชคเซ€ เชคเชฎเชพเชฎ เชจเซ€เชคเชฟเช“เชจเชพ เชตเชฟเชšเซเช›เซ‡เชฆเชจ เช…เชจเซเชธเชพเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

1. เช•เซเชทเซ‡เชคเซเชฐเซ‹เชฎเชพเช‚ from ะธ to เชคเซเชฐเชฃ เชชเซเชฐเช•เชพเชฐเชจเชพ เชคเชคเซเชตเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (เชคเซ‡ เชฌเชงเชพ OR เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เช›เซ‡):

  • namespaceSelector โ€” เชธเชฎเช—เซเชฐ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡;
  • podSelector - เชถเซ€เช‚เช—เซ‹ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡;
  • ipBlock - เชธเชฌเชจเซ‡เชŸ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡.

เชคเชฆเซเชชเชฐเชพเช‚เชค, เชชเซ‡เชŸเชพ เชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚ เชคเชคเซเชตเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ (เชธเชฎเชพเชจ เชธเชฎเชพเชจ เชชเชฃ) from/to เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชจเชฅเซ€. เชคเซ‡ เชฌเชงเชพเชจเซ‡ เชคเชพเชฐเซเช•เชฟเช• OR เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    - podSelector:
        matchLabels:
          app: admin
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

2. เชชเซ‹เชฒเชฟเชธเซ€ เชตเชฟเชญเชพเช—เชจเซ€ เช…เช‚เชฆเชฐ ingress เช˜เชฃเชพ เชคเชคเซเชตเซ‹ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ from (เชฒเซ‹เชœเชฟเช•เชฒ OR เชฆเซเชตเชพเชฐเชพ เชธเช‚เชฏเซเช•เซเชค). เช เชœ เชฐเซ€เชคเซ‡, เชตเชฟเชญเชพเช— egress เช˜เชฃเชพ เช˜เชŸเช•เซ‹ เชถเชพเชฎเซ‡เชฒ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ to (เชตเชฟเชญเชพเชœเชจ เชฆเซเชตเชพเชฐเชพ เชชเชฃ เชธเช‚เชฏเซเช•เซเชค):

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
  - from:
    - podSelector:
        matchLabels:
          app: admin
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

3. เชตเชฟเชตเชฟเชง เชจเซ€เชคเชฟเช“ เชชเชฃ เชคเชพเชฐเซเช•เชฟเช• OR เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเซ€ เช›เซ‡

เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡เชฎเชจเซ‡ เชธเช‚เชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซเชฏเชพเช‚ เชเช• เชฎเชฐเซเชฏเชพเชฆเชพ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชจเชฟเชฐเซเชฆเซ‡เชถ เช•เซเชฐเชฟเชธ เช•เซเชจเซ€: Kubernetes เชฎเชพเชคเซเชฐ เชตเชฟเชตเชฟเชง เชธเชพเชฅเซ‡ เชชเซ‹เชฒเชฟเชธเซ€เชจเซ‡ เชœเซ‹เชกเซ€ เชถเช•เซ‡ เช›เซ‡ policyTypes (Ingress เช…เชฅเชตเชพ Egress). เชชเซเชฐเชตเซ‡เชถ (เช…เชฅเชตเชพ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเซเช‚) เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชคเซ€ เชจเซ€เชคเชฟเช“ เชเช•เชฌเซ€เชœเชพ เชชเชฐ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชถเซ‡.

เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชตเชšเซเชšเซ‡เชจเซ‹ เชธเช‚เชฌเช‚เชง

เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡, เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชตเชšเซเชšเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชถเซ‡เชฐ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡. เช†เชจเซ‡ เชจเช•เชพเชฐเชตเชพเชจเซ€ เชจเซ€เชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชฆเชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชœเซ‡ เชŸเซเชฐเชพเชซเชฟเช• เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เช…เชจเซ‡/เช…เชฅเชตเชพ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เช‡เชจเช•เชฎเชฟเช‚เช—เชจเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช•เชฐเชถเซ‡ (เช‰เชชเชฐ "เชธเซเชŸเซเชฐเชฟเชชเชฟเช‚เช— เชจเชฟเชฏเชฎ" เชœเซเช“).

เชเช•เชตเชพเชฐ เชคเชฎเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชจเซ€ เชเช•เซเชธเซ‡เชธเชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเซ€ เชฒเซ‹ (เช‰เชชเชฐเชจเซ‹ "เชธเซเชŸเซเชฐเชฟเชชเชฟเช‚เช— เชจเชฟเชฏเชฎ" เชœเซเช“), เชคเชฎเซ‡ เชšเซ‹เช•เซเช•เชธ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชœเซ‹เชกเชพเชฃเซ‹เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ€เชจเซ‡ เชจเชพเชฎเช‚เชœเซ‚เชฐ เชจเซ€เชคเชฟเชฎเชพเช‚ เช…เชชเชตเชพเชฆเซ‹ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector: # <<<
        matchLabels:
          namespace: default
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชจเชพเชฎเชจเซ€ เชœเช—เซเชฏเชพเชฎเชพเช‚ เชคเชฎเชพเชฎ เชถเซ€เช‚เช—เซ‹ default เชถเซ€เช‚เช—เซ‹เชจเซ€ เชเช•เซเชธเซ‡เชธ เชนเชถเซ‡ postgres เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ database. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เชเช•เซเชธเซ‡เชธ เช–เซ‹เชฒเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹เชต เชคเซ‹ เชถเซเช‚ postgres เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชฎเชพเชคเซเชฐ เชšเซ‹เช•เซเช•เชธ เชถเซ€เช‚เช—เซ‹ default?

เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เช…เชจเซ‡ เชชเซ‹เชกเซเชธ เชฆเซเชตเชพเชฐเชพ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ‹

Kubernetes เชธเช‚เชธเซเช•เชฐเชฃ 1.11 เช…เชจเซ‡ เช‰เชšเซเชšเชคเชฎ เชคเชฎเชจเซ‡ เช“เชชเชฐเซ‡เชŸเชฐเซ‹เชจเซ‡ เชœเซ‹เชกเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ namespaceSelector ะธ podSelector เชฒเซ‹เชœเชฟเช•เชฒ AND เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡. เชคเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          namespace: default
      podSelector: # <<<
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชถเชพ เชฎเชพเชŸเซ‡ เช†เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ OR เชจเซ‡ เชฌเชฆเชฒเซ‡ AND เชคเชฐเซ€เช•เซ‡ เช…เชฐเซเชฅเช˜เชŸเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡?

เชคเซ‡ เชจเซ‹เช‚เชง เชฒเซ‹ podSelector เชนเชพเช‡เชซเชจเชฅเซ€ เชถเชฐเซ‚ เชฅเชคเซเช‚ เชจเชฅเซ€. YAML เชฎเชพเช‚ เช†เชจเซ‹ เช…เชฐเซเชฅ เช เชฅเชพเชฏ เช›เซ‡ podSelector เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฎเซ‡ เช‰เชญเซ‹ เช›เซ‡ namespaceSelector เชธเชฎเชพเชจ เชธเซ‚เชšเชฟ เชคเชคเซเชตเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เชฒเซ‹. เชคเซ‡เชฅเซ€, เชคเซ‡เช“ เชคเชพเชฐเซเช•เชฟเช• AND เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เช›เซ‡.

เชชเชนเซ‡เชฒเชพเช‚ เชนเชพเช‡เชซเชจ เช‰เชฎเซ‡เชฐเชตเซเช‚ podSelector เชจเชตเซ€ เชธเซ‚เชšเชฟ เช˜เชŸเช•เชจเชพ เช‰เชฆเชญเชตเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเชถเซ‡, เชœเซ‡ เชชเชพเช›เชฒเชพ เชเช• เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ namespaceSelector เชฒเซ‹เชœเชฟเช•เชฒ OR เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡.

เชšเซ‹เช•เซเช•เชธ เชฒเซ‡เชฌเชฒ เชธเชพเชฅเซ‡ เชถเซ€เช‚เช—เซ‹ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฎ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚, เช–เชพเชฒเซ€ เชฆเชพเช–เชฒ เช•เชฐเซ‹ namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector: {}
      podSelector:
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชฌเชนเซเชตเชฟเชง เชฒเซ‡เชฌเชฒเซเชธ I เชธเชพเชฅเซ‡ เชŸเซ€เชฎ เชฌเชจเชพเชตเซ‡ เช›เซ‡

เชฌเชนเซเชตเชฟเชง เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธ (เชฏเชœเชฎเชพเชจเซ‹, เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ, เชœเซ‚เชฅเซ‹) เชธเชพเชฅเซ‡เชจเชพ เชซเชพเชฏเชฐเชตเซ‹เชฒ เชฎเชพเชŸเซ‡เชจเชพ เชจเชฟเชฏเชฎเซ‹ เชฒเซ‹เชœเชฟเช•เชฒ OR เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชœเซ‹เชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซ‹ เชชเซ‡เช•เซ‡เชŸ เชธเซเชคเซเชฐเซ‹เชค เชฎเซ‡เชณ เช–เชพเชคเซ‹ เชนเซ‹เชฏ เชคเซ‹ เชจเซ€เชšเซ‡เชจเซ‹ เชจเชฟเชฏเชฎ เช•เชพเชฎ เช•เชฐเชถเซ‡ Host_1 เช…เชฅเชตเชพ Host_2:

| Source | Destination | Service | Action |
| ----------------------------------------|
| Host_1 | Subnet_A    | HTTPS   | Allow  |
| Host_2 |             |         |        |
| ----------------------------------------|

เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเชฟเชค, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชฒเซ‡เชฌเชฒเซเชธ เช›เซ‡ podSelector เช…เชฅเชตเชพ namespaceSelector เชฒเซ‹เชœเชฟเช•เชฒ AND เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเซ€เชšเซ‡เชจเซ‹ เชจเชฟเชฏเชฎ เชชเซ‹เชกเซเชธ เชชเชธเช‚เชฆ เช•เชฐเชถเซ‡ เชœเซ‡เชฎเชพเช‚ เชฌเช‚เชจเซ‡ เชฒเซ‡เชฌเชฒ เชนเซ‹เชฏ, role=db ะ˜ version=v2:

podSelector:
  matchLabels:
    role: db
    version: v2

เชธเชฎเชพเชจ เชคเชฐเซเช• เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ เช“เชชเชฐเซ‡เชŸเชฐเซ‹เชจเซ‡ เชฒเชพเช—เซ เชชเชกเซ‡ เช›เซ‡: เชจเซ€เชคเชฟ เชฒเช•เซเชทเซเชฏ เชชเชธเช‚เชฆเช—เซ€เช•เชพเชฐเซ‹, เชชเซ‹เชก เชชเชธเช‚เชฆเช—เซ€เช•เชพเชฐเซ‹ เช…เชจเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชชเชธเช‚เชฆเช—เซ€เช•เชพเชฐเซ‹.

เชธเชฌเชจเซ‡เชŸ เช…เชจเซ‡ IP เชธเชฐเชจเชพเชฎเชพเช‚ (IPBlocks)

เชซเชพเชฏเชฐเชตเซ‹เชฒ เชจเซ‡เชŸเชตเชฐเซเช•เชจเซ‡ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ VLAN, IP เชธเชฐเชจเชพเชฎเชพเช‚ เช…เชจเซ‡ เชธเชฌเชจเซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡.

Kubernetes เชฎเชพเช‚, IP เชธเชฐเชจเชพเชฎเชพเช‚ เชชเซ‹เชกเซเชธเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชตเชพเชฐเช‚เชตเชพเชฐ เชฌเชฆเชฒเชพเชˆ เชถเช•เซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชฎเชพเช‚ เชชเซ‹เชกเซเชธ เช…เชจเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฒเซ‡เชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชธเชฌเชจเซ‡เชŸ (ipBlocksเช‡เชจเช•เชฎเชฟเช‚เช— (เช‡เชจเซเช—เซเชฐเซ‡เชธ) เช…เชฅเชตเชพ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— (เชเช—เซเชฐเซ‡เชธ) เชฌเชพเชนเซเชฏ (เช‰เชคเซเชคเชฐ-เชฆเช•เซเชทเชฟเชฃ) เชœเซ‹เชกเชพเชฃเซ‹เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ ) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช† เชจเซ€เชคเชฟ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธ เชฎเชพเชŸเซ‡ เช–เซเชฒเซ‡ เช›เซ‡ default Google DNS เชธเซ‡เชตเชพเชจเซ€ เชเช•เซเชธเซ‡เชธ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-dns
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 8.8.8.8/32
    ports:
    - protocol: UDP
      port: 53

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เช† เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เช–เชพเชฒเซ€ เชชเซ‹เชก เชธเชฟเชฒเซ‡เช•เซเชŸเชฐเชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ "เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธ เชชเชธเช‚เชฆ เช•เชฐเซ‹."

เช† เชจเซ€เชคเชฟ เชซเช•เซเชค 8.8.8.8 เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡; เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ เช†เชˆเชชเซ€เชจเซ€ เชเช•เซเชธเซ‡เชธ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช›เซ‡. เชคเซ‡เชฅเซ€, เชธเชพเชฐเชฎเชพเช‚, เชคเชฎเซ‡ เช†เช‚เชคเชฐเชฟเช• เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ DNS เชธเซ‡เชตเชพเชจเซ€ เชเช•เซเชธเซ‡เชธเชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเซ€ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชนเชœเซ€ เชชเชฃ เชคเซ‡เชจเซ‡ เช–เซ‹เชฒเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เช† เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชธเซ‚เชšเชตเซ‹.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ ipBlocks ะธ podSelectors เชชเชฐเชธเซเชชเชฐ เชตเชฟเชถเชฟเชทเซเชŸ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชชเซ‹เชกเซเชธเชจเชพ เช†เช‚เชคเชฐเชฟเช• IP เชธเชฐเชจเชพเชฎเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ‹ เชจเชฅเซ€ ipBlocks. เชธเซ‚เชšเชตเซ€เชจเซ‡ เช†เช‚เชคเชฐเชฟเช• IP เชชเซ‹เชกเซเชธ, เชคเชฎเซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เช† เชธเชฐเชจเชพเชฎเชพเช‚เช“ เชธเชพเชฅเซ‡ เชชเซ‹เชกเซเชธ เชธเชพเชฅเซ‡/เชฅเซ€ เช•เชจเซ‡เช•เซเชถเชจเซเชธเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‹. เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚, เชคเชฎเซ‡ เชœเชพเชฃเชคเชพ เชจเชฅเซ€ เช•เซ‡ เช•เชฏเชพ IP เชธเชฐเชจเชพเชฎเชพเช‚เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹, เชคเซ‡เชฅเซ€ เชœ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซ‹เชก เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช.

เชชเซเชฐเชคเชฟ-เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเซ€เชšเซ‡เชจเซ€ เชจเซ€เชคเชฟเชฎเชพเช‚ เชคเชฎเชพเชฎ IP เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชคเซ‡ เช…เชจเซเชฏ เชคเชฎเชพเชฎ เชชเซ‹เชกเซเชธเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-any
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชคเชฎเซ‡ เชชเซ‹เชกเซเชธเชจเชพ เช†เช‚เชคเชฐเชฟเช• IP เชธเชฐเชจเชพเชฎเชพเช“เชจเซ‡ เชฌเชพเชฆ เช•เชฐเชคเชพเช‚ เชฎเชพเชคเซเชฐ เชฌเชพเชนเซเชฏ IP เชฎเชพเชŸเซ‡ เชœ เชเช•เซเชธเซ‡เชธ เช–เซ‹เชฒเซ€ เชถเช•เซ‹ เช›เซ‹. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชคเชฎเชพเชฐเชพ เชชเซ‹เชกเชจเซเช‚ เชธเชฌเชจเซ‡เชŸ 10.16.0.0/14 เช›เซ‡:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-any
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
        except:
        - 10.16.0.0/14

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชฌเช‚เชฆเชฐเซ‹ เช…เชจเซ‡ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    - podSelector:
        matchLabels:
          app: admin
    ports:             # <<<
      - port: 443      # <<<
        protocol: TCP  # <<<
      - port: 80       # <<<
        protocol: TCP  # <<<
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชชเชธเช‚เชฆเช—เซ€เช•เชพเชฐ ports เชฌเซเชฒเซ‹เช•เชฎเชพเช‚เชจเชพ เชคเชฎเชพเชฎ เช˜เชŸเช•เซ‹เชจเซ‡ เชฒเชพเช—เซ เชชเชกเซ‡ เช›เซ‡ to เช…เชฅเชตเชพ from, เชœเซ‡เชฎเชพเช‚ เชธเชฎเชพเชตเซ‡ เช›เซ‡. เชคเชคเซเชตเซ‹เชจเชพ เชœเซเชฆเชพ เชœเซเชฆเชพ เชธเซ‡เชŸ เชฎเชพเชŸเซ‡ เชตเชฟเชตเชฟเชง เชชเซ‹เชฐเซเชŸเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเซ‹ ingress เช…เชฅเชตเชพ egress เชธเชพเชฅเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชชเซ‡เชŸเชพเชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚ to เช…เชฅเชตเชพ from เช…เชจเซ‡ เชฆเชฐเซ‡เช•เชฎเชพเช‚ เชคเชฎเชพเชฐเชพ เชชเซ‹เชฐเซเชŸ เชฐเชœเซ€เชธเซเชŸเชฐ เช•เชฐเซ‹:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    ports:             # <<<
     - port: 443       # <<<
       protocol: TCP   # <<<
  - from:
    - podSelector:
        matchLabels:
          app: admin
    ports:             # <<<
     - port: 80        # <<<
       protocol: TCP   # <<<
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

เชธเซเชฐเช•เซเชทเชพ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชกเชฟเชซเซ‰เชฒเซเชŸ เชชเซ‹เชฐเซเชŸ เช‘เชชเชฐเซ‡เชถเชจ:

  • เชœเซ‹ เชคเชฎเซ‡ เชชเซ‹เชฐเซเชŸ เชตเซเชฏเชพเช–เซเชฏเชพเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช›เซ‹เชกเซ€ เชฆเซ‹ (ports), เช†เชจเซ‹ เช…เชฐเซเชฅ เชฌเชงเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชชเซ‹เชฐเซเชŸ เช›เซ‡;
  • เชœเซ‹ เชคเชฎเซ‡ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชตเซเชฏเชพเช–เซเชฏเชพเชจเซ‡ เช›เซ‹เชกเซ€ เชฆเซ‹ เชคเซ‹ (protocol), เช†เชจเซ‹ เช…เชฐเซเชฅ TCP;
  • เชœเซ‹ เชคเชฎเซ‡ เชชเซ‹เชฐเซเชŸ เชตเซเชฏเชพเช–เซเชฏเชพ เช›เซ‹เชกเซ€ เชฆเซ‹ เชคเซ‹ (port), เช†เชจเซ‹ เช…เชฐเซเชฅ เชฌเชงเชพ เชฌเช‚เชฆเชฐเซ‹ เช›เซ‡.

เชถเซเชฐเซ‡เชทเซเช  เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธ: เชกเชฟเชซเซ‰เชฒเซเชŸ เชฎเซ‚เชฒเซเชฏเซ‹ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เชถเซ‹ เชจเชนเซ€เช‚, เชคเชฎเชจเซ‡ เชœเซ‡ เชœเซ‹เชˆเช เช›เซ‡ เชคเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‹.

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เชชเซ‹เชก เชชเซ‹เชฐเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡, เชธเชฐเซเชตเชฟเชธ เชชเซ‹เชฐเซเชŸเชจเซ‹ เชจเชนเซ€เช‚ (เช†เชจเชพ เชชเชฐ เชตเชงเซ เช†เช—เชณเชจเชพ เชซเช•เชฐเชพเชฎเชพเช‚).

เชถเซเช‚ เชชเซ‹เชกเซเชธ เช…เชฅเชตเชพ เชธเซ‡เชตเชพเช“ เชฎเชพเชŸเซ‡ เชจเซ€เชคเชฟเช“ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช›เซ‡?

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

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เช•เซ‹เชˆ เชธเซ‡เชตเชพ เชชเซ‹เชฐเซเชŸ 80 เชธเชพเช‚เชญเชณเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชคเซ‡เชจเชพ เชชเซ‹เชกเซเชธเชจเชพ เชชเซ‹เชฐเซเชŸ 8080 เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเชฎเชพเช‚ เชฌเชฐเชพเชฌเชฐ 8080 เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡.

เช†เชตเซ€ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเชจเซ‡ เชธเชฌเช“เชชเซเชŸเชฟเชฎเชฒ เช—เชฃเชตเซ€ เชœเซ‹เชˆเช: เชœเซ‹ เชธเซ‡เชตเชพเชจเซ€ เช†เช‚เชคเชฐเชฟเช• เชฐเชšเชจเชพ (เชœเซ‡เชจเชพ เชชเซ‹เชกเซเชธ เชธเชพเช‚เชญเชณเซ‡ เช›เซ‡) เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซ‹ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเซ€ เชชเชกเชถเซ‡.

เชธเชฐเซเชตเชฟเชธ เชฎเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชจเชตเซ‹ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชฒ เช…เชญเชฟเช—เชฎ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเซ€เชšเซ‡ Istio เชตเชฟเชถเซ‡ เชœเซเช“ - เช†เชถเชฐเซ‡. เช…เชจเซเชตเชพเชฆ.) เชคเชฎเชจเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเชพ เชฆเซ‡ เช›เซ‡.

เชถเซเช‚ เชชเซเชฐเชตเซ‡เชถ เช…เชจเซ‡ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเชพ เชฌเช‚เชจเซ‡เชจเซ€ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡?

เชŸเซ‚เช‚เช•เซ‹ เชœเชตเชพเชฌ เชนเชพ เช›เซ‡, เชชเซ‹เชก A เชจเซ‡ เชชเซ‹เชก B เชธเชพเชฅเซ‡ เชตเชพเชคเชšเซ€เชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡เชจเซ‡ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เช•เชจเซ‡เช•เซเชถเชจ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เชนเซ‹เชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡ (เช† เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเชพเชจเซ€ เชจเซ€เชคเชฟ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡), เช…เชจเซ‡ เชชเซ‹เชก B เช‡เชจเช•เชฎเชฟเช‚เช— เช•เชจเซ‡เช•เซเชถเชจ เชธเซเชตเซ€เช•เชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเช•เซเชทเชฎ เชนเซ‹เชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡ ( เช† เชฎเชพเชŸเซ‡, เชคเซ‡ เชฎเซเชœเชฌ, เชคเชฎเชพเชฐเซ‡ เชชเซเชฐเชตเซ‡เชถ เชจเซ€เชคเชฟเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชจเซ€เชคเชฟ).

เชœเซ‹ เช•เซ‡, เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚, เชคเชฎเซ‡ เชเช• เช…เชฅเชตเชพ เชฌเช‚เชจเซ‡ เชฆเชฟเชถเชพเชฎเชพเช‚ เชœเซ‹เชกเชพเชฃเซ‹เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชจเซ€เชคเชฟ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€ เชถเช•เซ‹ เช›เซ‹.

เชœเซ‹ เช…เชฎเซเช• เชชเซ‹เชก-เชธเซเชฐเซ‹เชค เชเช• เช…เชฅเชตเชพ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชฆเชพ.เชค.-เชฐเชพเชœเช•เชพเชฐเชฃเซ€เช“, เชคเซ‡เชจเชพ เชชเชฐ เชฒเชพเชฆเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชจเชฟเชฏเช‚เชคเซเชฐเชฃเซ‹ เชคเซ‡เชฎเชจเชพ เชตเชฟเชธเช‚เชตเชพเชฆ เชฆเซเชตเชพเชฐเชพ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเชฎเชพเชฐเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชชเซ‹เชก เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ -เชธเชฐเชจเชพเชฎเซเช‚. เชœเซ‹ เช•เซ‹เชˆ เชชเซ‹เชฒเชฟเชธเซ€ เชฆเซเชตเชพเชฐเชพ เชชเซ‹เชก เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชจเชฅเซ€, เชคเซ‹ เชคเซ‡เชจเชพ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— (เชเช—เซเชฐเซ‡เชธ) เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

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

เชจเซ€เชšเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒ เช…เชฅเชตเชพ เชธเซเชŸเซ‡เชŸเชฒเซ‡เชธ เชœเซเช“.

เชฒเซ‹เช—เซเชธ

Kubernetes เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชฒเซ‰เช— เช•เชฐเซ€ เชถเช•เชคเซ€ เชจเชฅเซ€. เช†เชจเชพเชฅเซ€ เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เชฌเชจเซ‡ เช›เซ‡ เช•เซ‡ เชถเซเช‚ เชจเซ€เชคเชฟ เชนเซ‡เชคเซ เชฎเซเชœเชฌ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡ เช…เชจเซ‡ เชธเซเชฐเช•เซเชทเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชจเซ‡ เช–เซ‚เชฌ เชœเชŸเชฟเชฒ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เชฌเชพเชนเซเชฏ เชธเซ‡เชตเชพเช“ เชฎเชพเชŸเซ‡ เชŸเซเชฐเชพเชซเชฟเช•เชจเซเช‚ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ

Kubernetes เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เชคเชฎเชจเซ‡ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเชพเชจเชพ เชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฒเชพเชฏเช•เชพเชค เชงเชฐเชพเชตเชคเชพ เชกเซ‹เชฎเซ‡เชจ เชจเชพเชฎ (DNS) เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชคเซ€ เชจเชฅเซ€. เชจเชฟเชถเซเชšเชฟเชค IP เชธเชฐเชจเชพเชฎเซเช‚ (เชœเซ‡เชฎ เช•เซ‡ aws.com) เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชฌเชพเชนเซเชฏ เชธเซเชฅเชณเซ‹ เชชเชฐ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช† เชนเช•เซ€เช•เชค เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เช…เชธเซเชตเชฟเชงเชพ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡.

เชชเซ‹เชฒเชฟเชธเซ€ เชšเซ‡เช•

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

kubernetes get networkpolicy <policy-name> -o yaml

เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ‹ เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฎเชพเชจเซเชฏเชคเชพ เชชเซเชฐเชฃเชพเชฒเซ€ เช…เชšเซ‚เช• เชจเชฅเซ€ เช…เชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชชเซเชฐเช•เชพเชฐเชจเซ€ เชญเซ‚เชฒเซ‹ เชšเซ‚เช•เซ€ เชถเช•เซ‡ เช›เซ‡.

เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเซ‹เชคเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฎเชพเชคเซเชฐ เชเช• API เช—เซ‡เชŸเชตเซ‡ เช›เซ‡ เชœเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชˆเชจเซเชŸเชฐเชซเซ‡เชธ (CNI) เชจเชพเชฎเชจเซ€ เช…เช‚เชคเชฐเซเช—เชค เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฃเชจเซ‹ เชฌเซ‹เชœ เชธเซ‹เช‚เชชเซ‡ เช›เซ‡. เชฏเซ‹เช—เซเชฏ CNI เชธเซ‹เช‚เชชเซเชฏเชพ เชตเชฟเชจเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐ เชชเชฐ เชจเซ€เชคเชฟเช“ เชธเซ‡เชŸ เช•เชฐเชตเซ€ เช เชซเชพเชฏเชฐเชตเซ‹เชฒ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ เชชเชฐ เชซเชพเชฏเชฐเชตเซ‹เชฒ เชชเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชชเซ‹เชฒเชฟเชธเซ€ เชฌเชจเชพเชตเชตเชพ เชธเชฎเชพเชจ เช›เซ‡. เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชฏเซ‹เช—เซเชฏ CNI เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเซ€ เชคเชฎเชพเชฐเชพ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เช›เซ‡ เช…เชฅเชตเชพ, Kubernetes เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชนเซ‹เชธเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชคเชฎเซ‡ เชชเซเชฐเชฆเชพเชคเชพเช“เชจเซ€ เชธเซ‚เชšเชฟ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚ - เช†เชถเชฐเซ‡ เชŸเซเชฐเชพเชจเซเชธ.), เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‹ เชœเซ‡ เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ CNI เชธเซ‡เชŸ เช•เชฐเชถเซ‡.

เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชœเซ‹ เชคเชฎเซ‡ เชฏเซ‹เช—เซเชฏ เชธเชนเชพเชฏเช• CNI เชตเชฟเชจเชพ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟ เชธเซ‡เชŸ เช•เชฐเชถเซ‹ เชคเซ‹ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชคเชฎเชจเซ‡ เชšเซ‡เชคเชตเชฃเซ€ เช†เชชเชถเซ‡ เชจเชนเซ€เช‚.

เชธเซเชŸเซ‡เชŸเชซเซเชฒ เช•เซ‡ เชธเซเชŸเซ‡เชŸเชฒเซ‡เชธ?

เชฌเชงเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ CNIs เชฎเชจเซ‡ เชฎเชณเซเชฏเชพ เช›เซ‡ เชคเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‡เชฒเชฟเช•เซ‹ Linux เช•เซ‹เชจเซเชŸเซเชฐเชพเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡). เช† เชชเซ‹เชกเชจเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชถเชฐเซ‚ เช•เชฐเซ‡เชฒ TCP เช•เชจเซ‡เช•เซเชถเชจ เชชเชฐ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชนเซเช‚ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซเชŸเชพเชจเซเชกเชฐเซเชก เชตเชฟเชถเซ‡ เชœเชพเชฃเชคเซ‹ เชจเชฅเซ€ เชœเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒเชจเซ‡เชธเชจเซ€ เช–เชพเชคเชฐเซ€ เช†เชชเซ‡.

เช…เชฆเซเชฏเชคเชจ เชธเซเชฐเช•เซเชทเชพ เชจเซ€เชคเชฟ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชธเซเชฐเช•เซเชทเชพ เชจเซ€เชคเชฟเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพเชจเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชฐเซ€เชคเซ‹ เช…เชนเซ€เช‚ เช›เซ‡:

  1. เชธเชฐเซเชตเชฟเชธ เชฎเซ‡เชถ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชฒ เชชเซ‡เชŸเชฐเซเชจ เชธเซ‡เชตเชพ เชธเซเชคเชฐ เชชเชฐ เชตเชฟเช—เชคเชตเชพเชฐ เชŸเซ‡เชฒเชฟเชฎเซ‡เชŸเซเชฐเซ€ เช…เชจเซ‡ เชŸเซเชฐเชพเชซเชฟเช• เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชพเช‡เชกเช•เชพเชฐ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เช†เชชเชฃเซ‡ เชฒเชˆ เชถเช•เซ€เช เช‡เชธเซเชŸเชฟเช“.
  2. เช•เซ‡เชŸเชฒเชพเช• CNI เชตเชฟเช•เซเชฐเซ‡เชคเชพเช“เช เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชฅเซ€ เช†เช—เชณ เชตเชงเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเชพ เชŸเซ‚เชฒเซเชธเชจเซ‹ เชตเชฟเชธเซเชคเชพเชฐ เช•เชฐเซเชฏเซ‹ เช›เซ‡.
  3. เชคเซเชซเชฟเชจ เช“เชฐเซเช•เชพ Kubernetes เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซ€ เชฆเซƒเชถเซเชฏเชคเชพ เช…เชจเซ‡ เช“เชŸเซ‹เชฎเซ‡เชถเชจ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

Tufin Orca เชชเซ‡เช•เซ‡เชœ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ€เชคเชฟเช“เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเซ‡ เช›เซ‡ (เช…เชจเซ‡ เชคเซ‡ เช‰เชชเชฐเชจเชพ เชธเซเช•เซเชฐเซ€เชจเชถเซ‹เชŸเชจเซ‹ เชธเซเชคเซเชฐเซ‹เชค เช›เซ‡).

เชตเชงเชพเชฐเชพเชจเซ€ เชฎเชพเชนเชฟเชคเซ€

เชจเชฟเชทเซเช•เชฐเซเชท

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

เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ เช† เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเชถเซเชจเซ‹เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เช†เชตเซ€ เชถเช•เซ‡ เชคเซ‡เชตเซ€ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡.

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

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

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

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