ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes
ืžืืžืจ ื–ื” ื™ืขื–ื•ืจ ืœืš ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ืขื•ื‘ื“ ื‘-Kubernetes, ืžื” ืงื•ืจื” ื‘ืขืช ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ ื—ื™ื™ื ื•ืžื“ื•ืข ืขืœื™ืš ืœืฉืงื•ืœ ืื™ื–ื•ืŸ ื‘ืฆื“ ื”ืœืงื•ื— ืื ืืชื” ืžืฉืชืžืฉ ื‘-HTTP/2, gRPC, RSockets, AMQP ืื• ืคืจื•ื˜ื•ืงื•ืœื™ื ืืจื•ื›ื™ื ืื—ืจื™ื . 

ืงืฆืช ืขืœ ืื•ืคืŸ ื”ืคืฆื” ืžื—ื“ืฉ ืฉืœ ื”ืชืขื‘ื•ืจื” ื‘-Kubernetes 

Kubernetes ืžืกืคืงืช ืฉืชื™ ื”ืคืฉื˜ื•ืช ื ื•ื—ื•ืช ืœืคืจื™ืกืช ื™ื™ืฉื•ืžื™ื: ืฉื™ืจื•ืชื™ื ื•ืคืจื™ืกื•ืช.

ืคืจื™ืกื•ืช ืžืชืืจื•ืช ื›ื™ืฆื“ ื•ื›ืžื” ืขื•ืชืงื™ื ืฉืœ ื”ื™ื™ืฉื•ื ืฉืœืš ืืžื•ืจื™ื ืœืคืขื•ืœ ื‘ื›ืœ ื–ืžืŸ ื ืชื•ืŸ. ื›ืœ ื™ื™ืฉื•ื ื ืคืจืก ื›-Pod ื•ืžื•ืงืฆื” ืœื” ื›ืชื•ื‘ืช IP.

ื”ืฉื™ืจื•ืชื™ื ื“ื•ืžื™ื ื‘ืชืคืงื•ื“ื ืœืื™ื–ื•ืŸ ืขื•ืžืกื™ื. ื”ื ื ื•ืขื“ื• ืœื”ืคื™ืฅ ืชื ื•ืขื” ืขืœ ืคื ื™ ืžืกืคืจ ืชืจืžื™ืœื™ื.

ื‘ื•ื ื ืจืื” ืื™ืš ื–ื” ื ืจืื”.

  1. ื‘ืชืจืฉื™ื ืฉืœื”ืœืŸ ื ื™ืชืŸ ืœืจืื•ืช ืฉืœื•ืฉื” ืžื•ืคืขื™ื ืฉืœ ืื•ืชื• ื™ื™ืฉื•ื ื•ืžืื–ืŸ ืขื•ืžืกื™ื:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  2. ืžืื–ืŸ ื”ืขื•ืžืก ื ืงืจื ืฉื™ืจื•ืช ื•ืžื•ืงืฆืช ืœื• ื›ืชื•ื‘ืช IP. ื›ืœ ื‘ืงืฉื” ื ื›ื ืกืช ืžื•ืขื‘ืจืช ืœืื—ื“ ืžื”ืคื•ื“ื™ื:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  3. ืชืจื—ื™ืฉ ื”ืคืจื™ืกื” ืงื•ื‘ืข ืืช ืžืกืคืจ ื”ืžื•ืคืขื™ื ืฉืœ ื”ื™ื™ืฉื•ื. ื›ืžืขื˜ ืœืขื•ืœื ืœื ืชืฆื˜ืจืš ืœื”ืจื—ื™ื‘ ื™ืฉื™ืจื•ืช ืชื—ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  4. ืœื›ืœ ืคื•ื“ ืžื•ืงืฆื™ืช ื›ืชื•ื‘ืช IP ืžืฉืœื•:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ื›ื“ืื™ ืœื—ืฉื•ื‘ ืขืœ ืฉื™ืจื•ืชื™ื ื›ืขืœ ืื•ืกืฃ ืฉืœ ื›ืชื•ื‘ื•ืช IP. ื‘ื›ืœ ืคืขื ืฉืืชื” ื ื™ื’ืฉ ืœืฉื™ืจื•ืช, ืื—ืช ืžื›ืชื•ื‘ื•ืช ื”-IP ื ื‘ื—ืจื” ืžื”ืจืฉื™ืžื” ื•ืžืฉืžืฉืช ื›ื›ืชื•ื‘ืช ื”ื™ืขื“.

ื–ื” ื ืจืื” ื›ืžื• ื–ื”.

  1. ืคื ื™ื™ืช ืชืœืชืœ 10.96.45.152 ืžืชืงื‘ืœืช ืœืฉื™ืจื•ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  2. ื”ืฉื™ืจื•ืช ื‘ื•ื—ืจ ื‘ืื—ืช ืžืฉืœื•ืฉ ื›ืชื•ื‘ื•ืช ื”ืคื•ื“ ื›ื™ืขื“ ืฉืœื•:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  3. ื”ืชื ื•ืขื” ืžื ื•ืชื‘ืช ืœืชืจืžื™ืœ ืกืคืฆื™ืคื™:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ืื ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืžื•ืจื›ื‘ืช ืž-front-end ื•-backend, ืื– ื™ื”ื™ื” ืœืš ื’ื ืฉื™ืจื•ืช ื•ื’ื ืคืจื™ืกื” ืœื›ืœ ืื—ื“.

ื›ืืฉืจ ื”-frontend ืฉื•ืœื— ื‘ืงืฉื” ืœ-backend, ื”ื•ื ืœื ืฆืจื™ืš ืœื“ืขืช ื‘ื“ื™ื•ืง ื›ืžื” ืคื•ื“ื™ื ื”-backend ืžืฉืจืช: ื™ื›ื•ืœ ืœื”ื™ื•ืช ืื—ื“, ืขืฉืจื” ืื• ืžืื”.

ื›ืžื• ื›ืŸ, ื”-frontend ืื™ื ื• ื™ื•ื“ืข ื“ื‘ืจ ืขืœ ื”ื›ืชื•ื‘ื•ืช ืฉืœ ื”ืคื•ื“ื™ื ื”ืžืฉืจืชื™ื ืืช ื”-backend.

ื›ืืฉืจ ื”-frontend ืžื’ื™ืฉ ื‘ืงืฉื” ืœ-backend, ื”ื•ื ืžืฉืชืžืฉ ื‘ื›ืชื•ื‘ืช ื”-IP ืฉืœ ืฉื™ืจื•ืช ื”-backend, ืฉืื™ื ื” ืžืฉืชื ื”.

ื›ื›ื” ื–ื” ื ืจืื”.

  1. ืžืชื—ืช ืœ-1 ืžื‘ืงืฉ ืืช ืจื›ื™ื‘ ื”ืงืฆื” ื”ืคื ื™ืžื™ ื”ืคื ื™ืžื™. ื‘ืžืงื•ื ืœื‘ื—ื•ืจ ืื—ื“ ืกืคืฆื™ืคื™ ืขื‘ื•ืจ ื”ืงืฆื” ื”ืขื•ืจืคื™, ื”ื•ื ืžื’ื™ืฉ ื‘ืงืฉื” ืœืฉื™ืจื•ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  2. ื”ืฉื™ืจื•ืช ื‘ื•ื—ืจ ื‘ืื—ื“ ืžื”ืคื•ื“ื™ื ื”ืื—ื•ืจื™ื™ื ื›ื›ืชื•ื‘ืช ื”ื™ืขื“:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  3. ื”ืชื ื•ืขื” ืขื•ื‘ืจืช ืž-Pod 1 ืœ-Pod 5, ืฉื ื‘ื—ืจ ืขืœ ื™ื“ื™ ื”ืฉื™ืจื•ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  4. ืžืชื—ืช ืœ-1 ืœื ื™ื•ื“ืข ื‘ื“ื™ื•ืง ื›ืžื” ืชืจืžื™ืœื™ื ื›ืžื• ืžืชื—ืช ืœ-5 ืžืกืชืชืจื™ื ืžืื—ื•ืจื™ ื”ืฉื™ืจื•ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ืื‘ืœ ืื™ืš ื‘ื“ื™ื•ืง ื”ืฉื™ืจื•ืช ืžืคื™ืฅ ื‘ืงืฉื•ืช? ื–ื” ื ืจืื” ื›ืื™ืœื• ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืื™ื–ื•ืŸ ืขื’ื•ืœ? ื‘ื•ืื• ื ื‘ื™ืŸ ืืช ื–ื”. 

ืื™ื–ื•ืŸ ื‘ืฉื™ืจื•ืชื™ Kubernetes

ืฉื™ืจื•ืชื™ Kubernetes ืื™ื ื ืงื™ื™ืžื™ื. ืื™ืŸ ืชื”ืœื™ืš ืขื‘ื•ืจ ื”ืฉื™ืจื•ืช ืฉืžื•ืงืฆื™ื ืœื• ื›ืชื•ื‘ืช IP ื•ื™ืฆื™ืื”.

ืืชื” ื™ื›ื•ืœ ืœืืžืช ื–ืืช ืขืœ ื™ื“ื™ ื›ื ื™ืกื” ืœื›ืœ ืฆื•ืžืช ื‘ืืฉื›ื•ืœ ื•ื”ืคืขืœืช ื”ืคืงื•ื“ื” netstat -ntlp.

ืืคื™ืœื• ืœื ืชื•ื›ืœ ืœืžืฆื•ื ืืช ื›ืชื•ื‘ืช ื”-IP ืฉื”ื•ืงืฆืชื” ืœืฉื™ืจื•ืช.

ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืฉื™ืจื•ืช ืžืžื•ืงืžืช ื‘ืฉื›ื‘ืช ื”ื‘ืงืจื”, ื‘ื‘ืงืจ, ื•ื ืจืฉืžืช ื‘ืžืกื“ ื”ื ืชื•ื ื™ื - ื•ื›ื•'. ืื•ืชื” ื›ืชื•ื‘ืช ืžืฉืžืฉืช ืจื›ื™ื‘ ืื—ืจ - kube-proxy.
Kube-proxy ืžืงื‘ืœ ืจืฉื™ืžื” ืฉืœ ื›ืชื•ื‘ื•ืช IP ืขื‘ื•ืจ ื›ืœ ื”ืฉื™ืจื•ืชื™ื ื•ืžื™ื™ืฆืจ ืงื‘ื•ืฆื” ืฉืœ ื—ื•ืงื™ iptables ื‘ื›ืœ ืฆื•ืžืช ื‘ืืฉื›ื•ืœ.

ื”ื›ืœืœื™ื ื”ืืœื” ืื•ืžืจื™ื: "ืื ืื ื• ืจื•ืื™ื ืืช ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืฉื™ืจื•ืช, ืขืœื™ื ื• ืœืฉื ื•ืช ืืช ื›ืชื•ื‘ืช ื”ื™ืขื“ ืฉืœ ื”ื‘ืงืฉื” ื•ืœืฉืœื•ื— ืื•ืชื” ืœืื—ื“ ื”ืคื•ื“ื™ื."

ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืฉื™ืจื•ืช ืžืฉืžืฉืช ืจืง ื›ื ืงื•ื“ืช ื›ื ื™ืกื” ื•ืื™ื ื” ืžื•ื’ืฉืช ืขืœ ื™ื“ื™ ืฉื•ื ืชื”ืœื™ืš ืฉืžืื–ื™ืŸ ืœืื•ืชื” ื›ืชื•ื‘ืช IP ื•ื™ืฆื™ืื”.

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื–ื”

  1. ืฉืงื•ืœ ืืฉื›ื•ืœ ืฉืœ ืฉืœื•ืฉื” ืฆืžืชื™ื. ืœื›ืœ ืฆื•ืžืช ื™ืฉ ืชืจืžื™ืœื™ื:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  2. ืชืจืžื™ืœื™ื ืงืฉื•ืจื™ื ืฆื‘ื•ืขื™ื ื‘ื–' ื”ื ื—ืœืง ืžื”ืฉื™ืจื•ืช. ืžื›ื™ื•ื•ืŸ ืฉื”ืฉื™ืจื•ืช ืื™ื ื• ืงื™ื™ื ื›ืชื”ืœื™ืš, ื”ื•ื ืžื•ืฆื’ ื‘ืืคื•ืจ:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  3. ื”ืคื•ื“ ื”ืจืืฉื•ืŸ ืžื‘ืงืฉ ืฉื™ืจื•ืช ื•ืขืœื™ื• ืœืขื‘ื•ืจ ืœืื—ื“ ืžื”ืคื•ื“ื™ื ื”ืžืฉื•ื™ื›ื™ื:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  4. ืื‘ืœ ื”ืฉื™ืจื•ืช ืœื ืงื™ื™ื, ื”ืชื”ืœื™ืš ืœื ืงื™ื™ื. ืื™ืš ื–ื” ืขื•ื‘ื“?

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  5. ืœืคื ื™ ืฉื”ื‘ืงืฉื” ืขื•ื–ื‘ืช ืืช ื”ืฆื•ืžืช, ื”ื™ื ืขื•ื‘ืจืช ืขืœ ื›ืœืœื™ iptables:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  6. ื›ืœืœื™ iptables ื™ื•ื“ืขื™ื ืฉื”ืฉื™ืจื•ืช ืœื ืงื™ื™ื ื•ืžื—ืœื™ืคื™ื ืืช ื›ืชื•ื‘ืช ื”-IP ืฉืœื• ื‘ืื—ืช ืžื›ืชื•ื‘ื•ืช ื”-IP ืฉืœ ื”ืคื•ื“ื™ื ื”ืžืฉื•ื™ื›ื™ื ืœืื•ืชื• ืฉื™ืจื•ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  7. ื”ื‘ืงืฉื” ืžืงื‘ืœืช ื›ืชื•ื‘ืช IP ื—ื•ืงื™ืช ื›ื›ืชื•ื‘ืช ื”ื™ืขื“ ื•ืžืขื•ื‘ื“ืช ื›ืจื’ื™ืœ:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  8. ื‘ื”ืชืื ืœื˜ื•ืคื•ืœื•ื’ื™ื™ืช ื”ืจืฉืช, ื”ื‘ืงืฉื” ืžื’ื™ืขื” ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืœืชืจืžื™ืœ:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ื”ืื iptables ื™ื›ื•ืœ ืœื˜ืขื•ืŸ ืื™ื–ื•ืŸ?

ืœื, iptables ืžืฉืžืฉื™ื ืœืกื™ื ื•ืŸ ื•ืœื ื ื•ืขื“ื• ืœืื™ื–ื•ืŸ.

ืขื ื–ืืช, ืืคืฉืจ ืœื›ืชื•ื‘ ืžืขืจื›ืช ื›ืœืœื™ื ืฉืขื•ื‘ื“ื™ื ื›ืžื• ืคืกืื•ื“ื• ืžืื–ืŸ.

ื•ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉืžื™ื•ืฉื ื‘-Kubernetes.

ืื ื™ืฉ ืœืš ืฉืœื•ืฉื” ืคื•ื“ื™ื, kube-proxy ื™ื›ืชื•ื‘ ืืช ื”ื›ืœืœื™ื ื”ื‘ืื™ื:

  1. ื‘ื—ืจ ืืช ื”ืžืฉื ื” ื”ืจืืฉื•ื ื” ืขื ื”ืกืชื‘ืจื•ืช ืฉืœ 33%, ืื—ืจืช ืขื‘ื•ืจ ืœื›ืœืœ ื”ื‘ื.
  2. ื‘ื—ืจ ืืช ื”ืฉื ื™ ืขื ื”ืกืชื‘ืจื•ืช ืฉืœ 50%, ืื—ืจืช ืขื‘ื•ืจ ืœื›ืœืœ ื”ื‘ื.
  3. ื‘ื—ืจ ืืช ื”ืฉืœื™ืฉื™ ืžืชื—ืช.

ืžืขืจื›ืช ื–ื• ืžื‘ื™ืื” ืœื›ืš ืฉื›ืœ ืชืจืžื™ืœ ื ื‘ื—ืจ ื‘ื”ืกืชื‘ืจื•ืช ืฉืœ 33%.

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ื•ืื™ืŸ ืขืจื•ื‘ื” ืฉืคื•ื“ 2 ื™ื™ื‘ื—ืจ ื”ื‘ื ืื—ืจื™ ืคื•ื“ 1.

ืฉื™ื ืœื‘: iptables ืžืฉืชืžืฉ ื‘ืžื•ื“ื•ืœ ืกื˜ื˜ื™ืกื˜ื™ ืขื ื”ืชืคืœื’ื•ืช ืืงืจืื™ืช. ืœืคื™ื›ืš, ืืœื’ื•ืจื™ืชื ื”ืื™ื–ื•ืŸ ืžื‘ื•ืกืก ืขืœ ื‘ื—ื™ืจื” ืืงืจืื™ืช.

ื›ืขืช, ืœืื—ืจ ืฉื”ื‘ื ืชื ื›ื™ืฆื“ ืฉื™ืจื•ืชื™ื ืขื•ื‘ื“ื™ื, ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืชืจื—ื™ืฉื™ ืฉื™ืจื•ืช ืžืขื ื™ื™ื ื™ื ื™ื•ืชืจ.

ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘- Kubernetes ืื™ื ื ืžื•ืชืืžื™ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ

ื›ืœ ื‘ืงืฉืช HTTP ืžื”-frontend ืœ-backend ืžื•ื’ืฉืช ืขืœ ื™ื“ื™ ื—ื™ื‘ื•ืจ TCP ื ืคืจื“, ืฉื ืคืชื— ื•ื ืกื’ืจ.

ืื ื”-frontend ืฉื•ืœื— 100 ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื” ืœ-backend, ืื– 100 ื—ื™ื‘ื•ืจื™ TCP ืฉื•ื ื™ื ื ืคืชื—ื™ื ื•ื ืกื’ืจื™ื.

ืืชื” ื™ื›ื•ืœ ืœื”ืคื—ื™ืช ืืช ื–ืžืŸ ืขื™ื‘ื•ื“ ื”ื‘ืงืฉื•ืช ื•ืืช ื”ื˜ืขื™ื ื” ืขืœ ื™ื“ื™ ืคืชื™ื—ืช ื—ื™ื‘ื•ืจ TCP ืื—ื“ ื•ืฉื™ืžื•ืฉ ื‘ื• ืขื‘ื•ืจ ื›ืœ ื‘ืงืฉื•ืช ื”-HTTP ื”ื‘ืื•ืช.

ืœืคืจื•ื˜ื•ืงื•ืœ HTTP ื™ืฉ ืชื›ื•ื ื” ื”ื ืงืจืืช HTTP keep-alive, ืื• ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ื—ื™ื‘ื•ืจ. ื‘ืžืงืจื” ื–ื”, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื—ื™ื‘ื•ืจ TCP ื™ื—ื™ื“ ื›ื“ื™ ืœืฉืœื•ื— ื•ืœืงื‘ืœ ืžืกืคืจ ื‘ืงืฉื•ืช ื•ืชื’ื•ื‘ื•ืช HTTP:

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ืชื›ื•ื ื” ื–ื• ืื™ื ื” ืžื•ืคืขืœืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ: ื’ื ื”ืฉืจืช ื•ื’ื ื”ืœืงื•ื— ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืžื•ื’ื“ืจื™ื ื‘ื”ืชืื.

ื”ื”ื’ื“ืจื” ืขืฆืžื” ืคืฉื•ื˜ื” ื•ื ื’ื™ืฉื” ืขื‘ื•ืจ ืจื•ื‘ ืฉืคื•ืช ื”ืชื›ื ื•ืช ื•ื”ืกื‘ื™ื‘ื•ืช.

ื”ื ื” ื›ืžื” ืงื™ืฉื•ืจื™ื ืœื“ื•ื’ืžืื•ืช ื‘ืฉืคื•ืช ืฉื•ื ื•ืช:

ืžื” ืงื•ืจื” ืื ืื ื• ืžืฉืชืžืฉื™ื ื‘-Kee-alive ื‘ืฉื™ืจื•ืช Kubernetes?
ื”ื‘ื” ื ื ื™ื— ืฉื’ื ื”ืงืฆื” ื”ืงื“ืžื™ ื•ื’ื ื”ืงืฆื” ื”ืื—ื•ืจื™ ืชื•ืžื›ื™ื ื‘- Keep-alive.

ื™ืฉ ืœื ื• ืขื•ืชืง ืื—ื“ ืฉืœ ื”-frontend ื•ืฉืœื•ืฉื” ืขื•ืชืงื™ื ืฉืœ ื”-backend. ื”-frontend ืžื‘ืฆืข ืืช ื”ื‘ืงืฉื” ื”ืจืืฉื•ื ื” ื•ืคื•ืชื— ื—ื™ื‘ื•ืจ TCP ืœ-backend. ื”ื‘ืงืฉื” ืžื’ื™ืขื” ืœืฉื™ืจื•ืช, ืื—ื“ ืžื”ืคื•ื“ื™ื ื”ืื—ื•ืจื™ื™ื ื ื‘ื—ืจ ื›ื›ืชื•ื‘ืช ื”ื™ืขื“. ื”-backend ืฉื•ืœื— ืชื’ื•ื‘ื”, ื•ื”-frontend ืžืงื‘ืœ ืื•ืชื”.

ื‘ื ื™ื’ื•ื“ ืœืžืฆื‘ ื”ืจื’ื™ืœ ืฉื‘ื• ื—ื™ื‘ื•ืจ ื”-TCP ื ืกื’ืจ ืœืื—ืจ ืงื‘ืœืช ืชื’ื•ื‘ื”, ื›ืขืช ื”ื•ื ื ืฉืžืจ ืคืชื•ื— ืœื‘ืงืฉื•ืช HTTP ื ื•ืกืคื•ืช.

ืžื” ืงื•ืจื” ืื ื”-frontend ืฉื•ืœื— ื™ื•ืชืจ ื‘ืงืฉื•ืช ืœ-backend?

ื›ื“ื™ ืœื”ืขื‘ื™ืจ ื‘ืงืฉื•ืช ืืœื•, ื™ื™ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื—ื™ื‘ื•ืจ TCP ืคืชื•ื—, ื›ืœ ื”ื‘ืงืฉื•ืช ื™ืขื‘ืจื• ืœืื•ืชื• ืงืฆื” ืื—ื•ืจื™ ืืœื™ื• ื”ื’ื™ืขื” ื”ื‘ืงืฉื” ื”ืจืืฉื•ื ื”.

ื”ืื iptables ืœื ืืžื•ืจื™ื ืœื—ืœืง ืžื—ื“ืฉ ืืช ื”ืชืขื‘ื•ืจื”?

ืœื ื‘ืžืงืจื” ื”ื–ื”.

ื›ืืฉืจ ื ื•ืฆืจ ื—ื™ื‘ื•ืจ TCP, ื”ื•ื ืขื•ื‘ืจ ื“ืจืš ื›ืœืœื™ iptables, ืืฉืจ ื‘ื•ื—ืจื™ื ืงืฆื” ืื—ื•ืจื™ ืกืคืฆื™ืคื™ ืืœื™ื• ืชืขื‘ื•ืจ ื”ืชืขื‘ื•ืจื”.

ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ื”ื‘ืงืฉื•ืช ื”ื‘ืื•ืช ื ืžืฆืื•ืช ื‘ื—ื™ื‘ื•ืจ TCP ืฉื›ื‘ืจ ืคืชื•ื—, ื—ื•ืงื™ iptables ืื™ื ื ื ืงืจืื™ื ืขื•ื“.

ื‘ื•ื ื ืจืื” ืื™ืš ื–ื” ื ืจืื”.

  1. ื”ืคื•ื“ ื”ืจืืฉื•ืŸ ืฉื•ืœื— ื‘ืงืฉื” ืœืฉื™ืจื•ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  2. ืืชื” ื›ื‘ืจ ื™ื•ื“ืข ืžื” ื™ืงืจื” ืื—ืจ ื›ืš. ื”ืฉื™ืจื•ืช ืื™ื ื• ืงื™ื™ื, ืืš ื™ืฉื ื ื›ืœืœื™ iptables ืฉื™ืขื‘ื“ื• ืืช ื”ื‘ืงืฉื”:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  3. ืื—ื“ ืžื”ืคื•ื“ื™ื ื”ืื—ื•ืจื™ื™ื ื™ื™ื‘ื—ืจ ื›ื›ืชื•ื‘ืช ื”ื™ืขื“:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  4. ื”ื‘ืงืฉื” ืžื’ื™ืขื” ืœืชืจืžื™ืœ. ื‘ืฉืœื‘ ื–ื”, ื™ื™ื•ื•ืฆืจ ื—ื™ื‘ื•ืจ TCP ืžืชืžืฉืš ื‘ื™ืŸ ืฉื ื™ ื”ืคื•ื“ื™ื:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  5. ื›ืœ ื‘ืงืฉื” ื”ื‘ืื” ืžื”ืคื•ื“ ื”ืจืืฉื•ืŸ ืชืขื‘ื•ืจ ื“ืจืš ื”ื—ื™ื‘ื•ืจ ืฉื›ื‘ืจ ื ื•ืฆืจ:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ื”ืชื•ืฆืื” ื”ื™ื ื–ืžืŸ ืชื’ื•ื‘ื” ืžื”ื™ืจ ื™ื•ืชืจ ื•ืชืคื•ืงื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ, ืื‘ืœ ืืชื” ืžืื‘ื“ ืืช ื”ื™ื›ื•ืœืช ืœื”ืชืื™ื ืืช ื”ืงืฆื” ื”ืื—ื•ืจื™.

ื’ื ืื ื™ืฉ ืœืš ืฉื ื™ ืคื•ื“ื™ื ื‘-backend, ืขื ื—ื™ื‘ื•ืจ ืงื‘ื•ืข, ื”ืชื ื•ืขื” ืชืžื™ื“ ืชืขื‘ื•ืจ ืœืื—ื“ ืžื”ื.

ื”ืื ื ื™ืชืŸ ืœืชืงืŸ ื–ืืช?

ืžื›ื™ื•ื•ืŸ ืฉ-Kubernetes ืœื ื™ื•ื“ืข ืœืื–ืŸ ืงืฉืจื™ื ืžืชืžืฉื›ื™ื, ื”ืžืฉื™ืžื” ื”ื–ื• ืžื•ื˜ืœืช ืขืœื™ืš.

ืฉื™ืจื•ืชื™ื ื”ื ืื•ืกืฃ ืฉืœ ื›ืชื•ื‘ื•ืช IP ื•ื™ืฆื™ืื•ืช ื”ื ืงืจืื•ืช ื ืงื•ื“ื•ืช ืงืฆื”.

ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ื™ื›ื•ืœื” ืœืงื‘ืœ ืจืฉื™ืžื” ืฉืœ ื ืงื•ื“ื•ืช ืงืฆื” ืžื”ืฉื™ืจื•ืช ื•ืœื”ื—ืœื™ื˜ ื›ื™ืฆื“ ืœื”ืคื™ืฅ ื‘ืงืฉื•ืช ื‘ื™ื ื™ื”ืŸ. ืืชื” ื™ื›ื•ืœ ืœืคืชื•ื— ื—ื™ื‘ื•ืจ ืžืชืžืฉืš ืœื›ืœ ืคื•ื“ ื•ื‘ืงืฉื•ืช ืœืื–ืŸ ื‘ื™ืŸ ื”ื—ื™ื‘ื•ืจื™ื ื”ืืœื” ื‘ืืžืฆืขื•ืช round-robin.

ืื• ืœื”ื—ื™ืœ ื™ื•ืชืจ ืืœื’ื•ืจื™ืชืžื™ ืื™ื–ื•ืŸ ืžื•ืจื›ื‘ื™ื.

ื”ืงื•ื“ ื‘ืฆื“ ื”ืœืงื•ื— ืฉืื—ืจืื™ ืœืื™ื–ื•ืŸ ืฆืจื™ืš ืœืคืขื•ืœ ืœืคื™ ื”ื”ื™ื’ื™ื•ืŸ ื”ื–ื”:

  1. ืงื‘ืœ ืจืฉื™ืžื” ืฉืœ ื ืงื•ื“ื•ืช ืงืฆื” ืžื”ืฉื™ืจื•ืช.
  2. ืคืชื— ื—ื™ื‘ื•ืจ ืงื‘ื•ืข ืขื‘ื•ืจ ื›ืœ ื ืงื•ื“ืช ืงืฆื”.
  3. ื›ืืฉืจ ื™ืฉ ืฆื•ืจืš ืœื”ื’ื™ืฉ ื‘ืงืฉื”, ื”ืฉืชืžืฉ ื‘ืื—ื“ ืžื”ื—ื™ื‘ื•ืจื™ื ื”ืคืชื•ื—ื™ื.
  4. ืขื“ื›ืŸ ื‘ืื•ืคืŸ ืงื‘ื•ืข ืืช ืจืฉื™ืžืช ื ืงื•ื“ื•ืช ื”ืงืฆื”, ืฆื•ืจ ื ืงื•ื“ื•ืช ืงืฆื” ื—ื“ืฉื•ืช ืื• ืกื’ื•ืจ ื—ื™ื‘ื•ืจื™ื ืงื‘ื•ืขื™ื ื™ืฉื ื™ื ืื ื”ืจืฉื™ืžื” ืžืฉืชื ื”.

ื›ืš ื–ื” ื™ื™ืจืื”.

  1. ื‘ืžืงื•ื ืฉื”ืคื•ื“ ื”ืจืืฉื•ืŸ ื™ืฉืœื— ืืช ื”ื‘ืงืฉื” ืœืฉื™ืจื•ืช, ืืชื” ื™ื›ื•ืœ ืœืื–ืŸ ื‘ืงืฉื•ืช ื‘ืฆื“ ื”ืœืงื•ื—:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  2. ืขืœื™ืš ืœื›ืชื•ื‘ ืงื•ื“ ืฉืฉื•ืืœ ืื™ืœื• ืคื•ื“ื™ื ื”ื ื—ืœืง ืžื”ืฉื™ืจื•ืช:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  3. ื‘ืจื’ืข ืฉื™ืฉ ืœืš ืืช ื”ืจืฉื™ืžื”, ืฉืžื•ืจ ืื•ืชื” ื‘ืฆื“ ื”ืœืงื•ื— ื•ื”ืฉืชืžืฉ ื‘ื” ื›ื“ื™ ืœื”ืชื—ื‘ืจ ืœืชืจืžื™ืœื™ื:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

  4. ืืชื” ืื—ืจืื™ ืขืœ ืืœื’ื•ืจื™ืชื ืื™ื–ื•ืŸ ื”ืขื•ืžืก:

    ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ื›ืขืช ื ืฉืืœืช ื”ืฉืืœื”: ื”ืื ื‘ืขื™ื” ื–ื• ื—ืœื” ืจืง ืขืœ HTTP Keep-alive?

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื‘ืฆื“ ื”ืœืงื•ื—

HTTP ืื™ื ื• ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื™ื—ื™ื“ ืฉื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื—ื™ื‘ื•ืจื™ TCP ืžืชืžืฉื›ื™ื.

ืื ื”ื™ื™ืฉื•ื ืฉืœืš ืžืฉืชืžืฉ ื‘ืžืกื“ ื ืชื•ื ื™ื, ืื– ื—ื™ื‘ื•ืจ TCP ืœื ื ืคืชื— ื‘ื›ืœ ืคืขื ืฉืืชื” ืฆืจื™ืš ืœื”ื’ื™ืฉ ื‘ืงืฉื” ืื• ืœืื—ื–ืจ ืžืกืžืš ืžืžืกื“ ื”ื ืชื•ื ื™ื. 

ื‘ืžืงื•ื ื–ืืช, ื—ื™ื‘ื•ืจ TCP ืžืชืžืฉืš ืœืžืกื“ ื”ื ืชื•ื ื™ื ื ืคืชื— ื•ืžืฉืชืžืฉื™ื ื‘ื•.

ืื ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœืš ืคืจื•ืก ืขืœ Kubernetes ื•ื”ื’ื™ืฉื” ื ื™ืชื ืช ื›ืฉื™ืจื•ืช, ืชื™ืชืงืœ ื‘ืื•ืชืŸ ื‘ืขื™ื•ืช ืฉืชื•ืืจื• ื‘ืกืขื™ืฃ ื”ืงื•ื“ื.

ื”ืขืชืง ืฉืœ ืžืกื“ ื ืชื•ื ื™ื ืื—ื“ ื™ื”ื™ื” ื˜ืขื•ืŸ ื™ื•ืชืจ ืžื”ืื—ืจื™ื. Kube-proxy ื•-Kubernetes ืœื ื™ืขื–ืจื• ื‘ืื™ื–ื•ืŸ ื”ื—ื™ื‘ื•ืจื™ื. ืขืœื™ืš ืœื“ืื•ื’ ืœืื–ืŸ ืืช ื”ืฉืื™ืœืชื•ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœืš.

ืชืœื•ื™ ื‘ืื™ื–ื• ืกืคืจื™ื™ื” ืืชื” ืžืฉืชืžืฉ ื›ื“ื™ ืœื”ืชื—ื‘ืจ ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื™ื™ืชื›ืŸ ืฉื™ืฉ ืœืš ืืคืฉืจื•ื™ื•ืช ืฉื•ื ื•ืช ืœืคืชืจื•ืŸ ื‘ืขื™ื” ื–ื•.

ืœื”ืœืŸ ื“ื•ื’ืžื” ืœื’ื™ืฉื” ืœืืฉื›ื•ืœ ืžืกื“ ื ืชื•ื ื™ื MySQL ืž-Node.js:

var mysql = require('mysql');
var poolCluster = mysql.createPoolCluster();

var endpoints = /* retrieve endpoints from the Service */

for (var [index, endpoint] of endpoints) {
  poolCluster.add(`mysql-replica-${index}`, endpoint);
}

// Make queries to the clustered MySQL database

ื™ืฉื ื ืคืจื•ื˜ื•ืงื•ืœื™ื ืจื‘ื™ื ืื—ืจื™ื ื”ืžืฉืชืžืฉื™ื ื‘ื—ื™ื‘ื•ืจื™ TCP ืžืชืžืฉื›ื™ื:

  • WebSockets ื•- WebSockets ืžืื•ื‘ื˜ื—ื™ื
  • HTTP / 2
  • ื’ืจ"ืค
  • ืฉืงืขื™ื
  • AMQP

ืืชื” ื›ื‘ืจ ืืžื•ืจ ืœื”ื›ื™ืจ ืืช ืจื•ื‘ ื”ืคืจื•ื˜ื•ืงื•ืœื™ื ื”ืืœื”.

ืื‘ืœ ืื ื”ืคืจื•ื˜ื•ืงื•ืœื™ื ื”ืืœื” ื›ืœ ื›ืš ืคื•ืคื•ืœืจื™ื™ื, ืœืžื” ืื™ืŸ ืคืชืจื•ืŸ ืื™ื–ื•ืŸ ืกื˜ื ื“ืจื˜ื™? ืžื“ื•ืข ื”ืœื•ื’ื™ืงื” ืฉืœ ื”ืœืงื•ื— ืฆืจื™ื›ื” ืœื”ืฉืชื ื•ืช? ื”ืื ื™ืฉ ืคืชืจื•ืŸ ืžืงื•ืจื™ ืฉืœ Kubernetes?

Kube-proxy ื•-iptables ื ื•ืขื“ื• ืœื›ืกื•ืช ืืช ืจื•ื‘ ืžืงืจื™ ื”ืฉื™ืžื•ืฉ ื”ื ืคื•ืฆื™ื ื‘ืขืช ืคืจื™ืกื” ืœ-Kubernetes. ื–ื” ืžื˜ืขืžื™ ื ื•ื—ื•ืช.

ืื ืืชื” ืžืฉืชืžืฉ ื‘ืฉื™ืจื•ืช ืื™ื ื˜ืจื ื˜ ืฉื—ื•ืฉืฃ REST API, ื™ืฉ ืœืš ืžื–ืœ - ื‘ืžืงืจื” ื–ื”, ืœื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื—ื™ื‘ื•ืจื™ TCP ืžืชืžืฉื›ื™ื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืฉื™ืจื•ืช Kubernetes.

ืื‘ืœ ื‘ืจื’ืข ืฉืชืชื—ื™ืœ ืœื”ืฉืชืžืฉ ื‘ื—ื™ื‘ื•ืจื™ TCP ืžืชืžืฉื›ื™ื, ืชืฆื˜ืจืš ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืœื—ืœืง ืืช ื”ืขื•ืžืก ื‘ืื•ืคืŸ ืฉื•ื•ื” ืขืœ ืคื ื™ ื”ืงืฆื” ื”ืื—ื•ืจื™. Kubernetes ืื™ื ื• ืžื›ื™ืœ ืคืชืจื•ื ื•ืช ืžื•ื›ื ื™ื ืœืžืงืจื” ื–ื”.

ืขื ื–ืืช, ื‘ื”ื—ืœื˜ ื™ืฉ ืืคืฉืจื•ื™ื•ืช ืฉื™ื›ื•ืœื•ืช ืœืขื–ื•ืจ.

ืื™ื–ื•ืŸ ืงืฉืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ื™ืฉื ื ืืจื‘ืขื” ืกื•ื’ื™ื ืฉืœ ืฉื™ืจื•ืชื™ื ื‘-Kubernetes:

  1. ืืฉื›ื•ืœ IP
  2. NodePort
  3. LoadBalancer
  4. ื—ืกืจ ืจืืฉ

ืฉืœื•ืฉืช ื”ืฉื™ืจื•ืชื™ื ื”ืจืืฉื•ื ื™ื ืคื•ืขืœื™ื ืขืœ ื‘ืกื™ืก ื›ืชื•ื‘ืช IP ื•ื™ืจื˜ื•ืืœื™ืช, ื”ืžืฉืžืฉืช ืืช kube-proxy ืœื‘ื ื™ื™ืช ื—ื•ืงื™ iptables. ืื‘ืœ ื”ื‘ืกื™ืก ื”ื‘ืกื™ืกื™ ืฉืœ ื›ืœ ื”ืฉื™ืจื•ืชื™ื ื”ื•ื ืฉื™ืจื•ืช ืœืœื ืจืืฉ.

ืœืฉื™ืจื•ืช ื—ืกืจ ื”ืจืืฉ ืื™ืŸ ืฉื•ื ื›ืชื•ื‘ืช IP ื”ืžืฉื•ื™ื›ืช ืืœื™ื• ื•ื”ื•ื ืžืกืคืง ืจืง ืžื ื’ื ื•ืŸ ืœืื—ื–ื•ืจ ืจืฉื™ืžื” ืฉืœ ื›ืชื•ื‘ื•ืช IP ื•ื™ืฆื™ืื•ืช ืฉืœ ื”ืคื•ื“ื™ื (ื ืงื•ื“ื•ืช ื”ืงืฆื”) ื”ืžืฉื•ื™ื›ื•ืช ืืœื™ื•.

ื›ืœ ื”ืฉื™ืจื•ืชื™ื ืžื‘ื•ืกืกื™ื ืขืœ ื”ืฉื™ืจื•ืช ืœืœื ืจืืฉ.

ืฉื™ืจื•ืช ClusterIP ื”ื•ื ืฉื™ืจื•ืช ื—ืกืจ ืจืืฉ ืขื ื›ืžื” ืชื•ืกืคื•ืช: 

  1. ืฉื›ื‘ืช ื”ื ื™ื”ื•ืœ ืžืงืฆื” ืœื” ื›ืชื•ื‘ืช IP.
  2. Kube-proxy ืžื™ื™ืฆืจ ืืช ื›ืœืœื™ iptables ื”ื“ืจื•ืฉื™ื.

ื›ืš ืชื•ื›ืœื• ืœื”ืชืขืœื ืž-kube-proxy ื•ืœื”ืฉืชืžืฉ ื™ืฉื™ืจื•ืช ื‘ืจืฉื™ืžืช ื ืงื•ื“ื•ืช ื”ืงืฆื” ืฉื”ืชืงื‘ืœื• ืžื”ืฉื™ืจื•ืช ื—ืกืจ ื”ืจืืฉ ื›ื“ื™ ืœืื–ืŸ ืขื•ืžืกื™ื ื‘ืืคืœื™ืงืฆื™ื” ืฉืœื›ื.

ืื‘ืœ ืื™ืš ื ื•ื›ืœ ืœื”ื•ืกื™ืฃ ื”ื™ื’ื™ื•ืŸ ื“ื•ืžื” ืœื›ืœ ื”ื™ื™ืฉื•ืžื™ื ื”ืคืจื•ืกื™ื ื‘ืืฉื›ื•ืœ?

ืื ื”ื™ื™ืฉื•ื ืฉืœืš ื›ื‘ืจ ืคืจื•ืก, ืžืฉื™ืžื” ื–ื• ืขืฉื•ื™ื” ืœื”ื™ืจืื•ืช ื‘ืœืชื™ ืืคืฉืจื™ืช. ืขื ื–ืืช, ื™ืฉ ืืคืฉืจื•ืช ื—ืœื•ืคื™ืช.

Service Mesh ืชืขื–ื•ืจ ืœืš

ื‘ื˜ื— ื›ื‘ืจ ืฉืžืชื ืœื‘ ืฉืืกื˜ืจื˜ื’ื™ื™ืช ืื™ื–ื•ืŸ ื”ืขื•ืžืก ื‘ืฆื“ ื”ืœืงื•ื— ื”ื™ื ื“ื™ ืกื˜ื ื“ืจื˜ื™ืช.

ื›ืืฉืจ ื”ื™ื™ืฉื•ื ืžืชื—ื™ืœ, ื–ื”:

  1. ืžืงื‘ืœ ืจืฉื™ืžื” ืฉืœ ื›ืชื•ื‘ื•ืช IP ืžื”ืฉื™ืจื•ืช.
  2. ืคื•ืชื— ื•ืฉื•ืžืจ ืขืœ ื‘ืจื™ื›ืช ื—ื™ื‘ื•ืจ.
  3. ืžืขื“ื›ืŸ ืžื“ื™ ืคืขื ืืช ื”ืžืื’ืจ ืขืœ ื™ื“ื™ ื”ื•ืกืคื” ืื• ื”ืกืจื” ืฉืœ ื ืงื•ื“ื•ืช ืงืฆื”.

ื‘ืจื’ืข ืฉื”ืืคืœื™ืงืฆื™ื” ืจื•ืฆื” ืœื”ื’ื™ืฉ ื‘ืงืฉื”, ื”ื™ื:

  1. ื‘ื•ื—ืจ ื—ื™ื‘ื•ืจ ื–ืžื™ืŸ ื‘ืืžืฆืขื•ืช ืœื•ื’ื™ืงื” ื›ืœืฉื”ื™ (ืœืžืฉืœ ืกื™ื‘ื•ื‘ ืกื™ื‘ื•ื‘ื™).
  2. ืžื‘ืฆืข ืืช ื”ื‘ืงืฉื”.

ืฉืœื‘ื™ื ืืœื” ืขื•ื‘ื“ื™ื ืขื‘ื•ืจ ื—ื™ื‘ื•ืจื™ WebSockets, gRPC ื•-AMQP.

ืืชื” ื™ื›ื•ืœ ืœื”ืคืจื™ื“ ืืช ื”ื”ื™ื’ื™ื•ืŸ ื”ื–ื” ืœืกืคืจื™ื™ื” ื ืคืจื“ืช ื•ืœื”ืฉืชืžืฉ ื‘ื• ื‘ื™ื™ืฉื•ืžื™ื ืฉืœืš.

ืขื ื–ืืช, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืจืฉืชื•ืช ืฉื™ืจื•ืช ื›ืžื• Istio ืื• Linkerd ื‘ืžืงื•ื ื–ืืช.

Service Mesh ืžื’ื“ื™ืœ ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ื‘ืชื”ืœื™ืš ืฉ:

  1. ืžื—ืคืฉ ืื•ื˜ื•ืžื˜ื™ืช ื›ืชื•ื‘ื•ืช IP ืฉืœ ืฉื™ืจื•ืช.
  2. ื‘ื•ื“ืง ื—ื™ื‘ื•ืจื™ื ื›ื’ื•ืŸ WebSockets ื•-gRPC.
  3. ืžืื–ืŸ ื‘ืงืฉื•ืช ื‘ืืžืฆืขื•ืช ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื ื›ื•ืŸ.

Service Mesh ืขื•ื–ืจ ืœื ื”ืœ ืืช ื”ืชืขื‘ื•ืจื” ื‘ืชื•ืš ื”ืืฉื›ื•ืœ, ืื‘ืœ ื–ื” ื“ื™ ืขืชื™ืจ ืžืฉืื‘ื™ื. ืืคืฉืจื•ื™ื•ืช ืื—ืจื•ืช ื”ืŸ ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ื›ืžื• Netflix Ribbon ืื• ืคืจื•ืงืกื™ ื ื™ืชื ื™ื ืœืชื›ื ื•ืช ื›ืžื• Envoy.

ืžื” ืงื•ืจื” ืื ืžืชืขืœืžื™ื ืžื‘ืขื™ื•ืช ืื™ื–ื•ืŸ?

ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ืฉืœื ืœื”ืฉืชืžืฉ ื‘ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืขื“ื™ื™ืŸ ืœื ืœื”ื‘ื—ื™ืŸ ื‘ืฉื™ื ื•ื™ื™ื. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื›ืžื” ืชืจื—ื™ืฉื™ ืขื‘ื•ื“ื”.

ืื ื™ืฉ ืœืš ื™ื•ืชืจ ืœืงื•ื—ื•ืช ืžืฉืจืชื™ื, ื–ื• ืœื ื‘ืขื™ื” ื›ืœ ื›ืš ื’ื“ื•ืœื”.

ื ื ื™ื— ืฉื™ืฉ ื—ืžื™ืฉื” ืœืงื•ื—ื•ืช ืฉืžืชื—ื‘ืจื™ื ืœืฉื ื™ ืฉืจืชื™ื. ื’ื ืื ืื™ืŸ ืื™ื–ื•ืŸ, ืฉื ื™ ื”ืฉืจืชื™ื ื™ืฉืžืฉื•:

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ื™ื™ืชื›ืŸ ืฉื”ื—ื™ื‘ื•ืจื™ื ืœื ื™ื—ื•ืœืงื• ื‘ืื•ืคืŸ ืฉื•ื•ื”: ืื•ืœื™ ืืจื‘ืขื” ืœืงื•ื—ื•ืช ืžื—ื•ื‘ืจื™ื ืœืื•ืชื• ืฉืจืช, ืื‘ืœ ื™ืฉ ืกื™ื›ื•ื™ ื˜ื•ื‘ ืฉืฉื ื™ ื”ืฉืจืชื™ื ื™ื”ื™ื• ื‘ืฉื™ืžื•ืฉ.

ืžื” ืฉื™ื•ืชืจ ื‘ืขื™ื™ืชื™ ื”ื•ื ื”ืชืจื—ื™ืฉ ื”ื”ืคื•ืš.

ืื ื™ืฉ ืœืš ืคื—ื•ืช ืœืงื•ื—ื•ืช ื•ื™ื•ืชืจ ืฉืจืชื™ื, ื”ืžืฉืื‘ื™ื ืฉืœืš ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืœื ืžื ื•ืฆืœื™ื ื•ื™ื•ืคื™ืข ืฆื•ื•ืืจ ื‘ืงื‘ื•ืง ืคื•ื˜ื ืฆื™ืืœื™.

ื ื ื™ื— ืฉื™ืฉ ืฉื ื™ ืœืงื•ื—ื•ืช ื•ื—ืžื™ืฉื” ืฉืจืชื™ื. ื‘ืžืงืจื” ื”ื˜ื•ื‘, ื™ื”ื™ื• ืฉื ื™ ื—ื™ื‘ื•ืจื™ื ืงื‘ื•ืขื™ื ืœืฉื ื™ ืฉืจืชื™ื ืžืชื•ืš ื—ืžื™ืฉื”.

ื”ืฉืจืชื™ื ื”ื ื•ืชืจื™ื ื™ื”ื™ื• ืคืขื™ืœื™ื:

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ื—ื™ื‘ื•ืจื™ื ืืจื•ื›ื™ื ื‘-Kubernetes

ืื ืฉื ื™ ื”ืฉืจืชื™ื ื”ืืœื” ืœื ื™ื›ื•ืœื™ื ืœื”ืชืžื•ื“ื“ ืขื ื‘ืงืฉื•ืช ืœืงื•ื—, ืงื ื” ืžื™ื“ื” ืื•ืคืงื™ ืœื ื™ืขื–ื•ืจ.

ืžืกืงื ื”

ืฉื™ืจื•ืชื™ Kubernetes ืžืชื•ื›ื ื ื™ื ืœืขื‘ื•ื“ ื‘ืจื•ื‘ ืชืจื—ื™ืฉื™ ื™ื™ืฉื•ืžื™ ื”ืื™ื ื˜ืจื ื˜ ื”ืกื˜ื ื“ืจื˜ื™ื™ื.

ืขื ื–ืืช, ื‘ืจื’ืข ืฉืืชื” ืžืชื—ื™ืœ ืœืขื‘ื•ื“ ืขื ืคืจื•ื˜ื•ืงื•ืœื™ ื™ื™ืฉื•ืžื™ื ื”ืžืฉืชืžืฉื™ื ื‘ื—ื™ื‘ื•ืจื™ TCP ืžืชืžืฉื›ื™ื, ื›ื’ื•ืŸ ืžืกื“ื™ ื ืชื•ื ื™ื, gRPC ืื• WebSockets, ื”ืฉื™ืจื•ืชื™ื ืื™ื ื ืžืชืื™ืžื™ื ื™ื•ืชืจ. Kubernetes ืื™ื ื• ืžืกืคืง ืžื ื’ื ื•ื ื™ื ืคื ื™ืžื™ื™ื ืœืื™ื–ื•ืŸ ื—ื™ื‘ื•ืจื™ TCP ืžืชืžืฉื›ื™ื.

ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉืขืœื™ืš ืœื›ืชื•ื‘ ื™ื™ืฉื•ืžื™ื ืžืชื•ืš ืžื—ืฉื‘ื” ืขืœ ืื™ื–ื•ืŸ ื‘ืฆื“ ื”ืœืงื•ื—.

ืชืจื’ื•ื ืฉื”ื•ื›ืŸ ืขืœ ื™ื“ื™ ื”ืฆื•ื•ืช Kubernetes aaS ืž-Mail.ru.

ืžื” ืขื•ื“ ืœืงืจื•ื ื‘ื ื•ืฉื:

  1. ืฉืœื•ืฉ ืจืžื•ืช ืฉืœ ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื‘-Kubernetes ื•ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ื”ืŸ ื‘ื™ืขื™ืœื•ืช
  2. Kubernetes ื‘ืจื•ื— ื”ืคื™ืจืื˜ื™ื•ืช ืขื ืชื‘ื ื™ืช ืœื™ื™ืฉื•ื.
  3. ืขืจื•ืฅ ื”ื˜ืœื’ืจื ืฉืœื ื• ืขืœ ื˜ืจื ืกืคื•ืจืžืฆื™ื” ื“ื™ื’ื™ื˜ืœื™ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”