Hypernetes & Kubernetes Maintainer倪朋飞——多租户Kubernetes实践:从容器运行时到SDN

2020-02-27 49浏览

  • 1.ग़ᑄಁKubernetesਫ᪢ ——՗਻࢏ᬩᤈ෸‫ک‬SDN ‫׻‬๏ᷢ HyperHQ & Kubernetes Maintainer
  • 2.
  • 3.
  • 4.
  • 5.Ӟ. Kubernetesٌ݊ൊկ๢‫ګ‬ ԫ. चԭCRI຅ୌ୩਻࢏ᵍᐶ ӣ. चԭCNI຅ୌ਻࢏SDNᗑᕶ ࢥ. ਫ᪢ᕪḵ
  • 6.Ӟ. Kubernetesٌ݊ൊկ๢‫ګ‬ ԫ. चԭCRI຅ୌ୩਻࢏ᵍᐶ ӣ. चԭCNI຅ୌ਻࢏SDNᗑᕶ ࢥ. ਫ᪢ᕪḵ
  • 7.KubernetesᓌՕ • Google୏რጱ਻࢏ᵞᗭᓕቘᔮᕹ҅CNCF໐ஞᶱፓ • ๋ၞᤈ̵๋ၚ᪋ጱ਻࢏ᖫഭᔮᕹ • ਠ࠺ጱ਻࢏ᵞᗭᓕቘᚆ‫ێ‬ • ᦢᳯഴ‫̵ګ‬๐‫ݎۓ‬ሿ̵ᛔۖඳᵑ‫̵॔ץ‬჻ۖ‫܋‬ᕆᒵ • ᓌ‫ܔ‬ฃಘ઀ጱຝ຅ᦡᦇ݊ӿ੄ጱൊկඪ೮
  • 8.Kubernetesൊկ๢‫ګ‬
  • 9.Kubernetesൊկᐏֺ • ᦊᦤғX509̵Token̵ੂᎱᒵ • ദ๦ғABAC̵RBAC̵OpenID̵Webhookᒵദ๦ • ‫فٵ‬ഴ‫ګ‬ғServiceAccount̵LimitRanger̵ResourceQuotaᒵ • ᧣ଶғັᧃ๚᧣ଶጱPodଚๅෛNodeᕬਧ • ਂ‫ܫؙ‬ғhostPath̵NFS̵rbdᒵٖᗝൊկզ݊FlexVolumeಘ઀ • ᗑᕶғkubenet̵Container Network Interface (CNI) • ਻࢏ᬩᤈ෸ғContainer Runtime Interface (CRI) • ԯ൉‫ࠟ׀‬ҁCloud Provider҂
  • 10.Ӟ. Kubernetesٌ݊ൊկ๢‫ګ‬ ԫ. चԭCRI຅ୌ୩਻࢏ᵍᐶ ӣ. चԭCNI຅ୌ਻࢏SDNᗑᕶ ࢥ. ਫ᪢ᕪḵ
  • 11.Container Runtime Interface • Container Runtime Interface (CRI) ฎӞӻचԭgRPCጱ਻࢏ᬩᤈ෸ള‫ݗ‬ • क़᮱਻࢏ᬩᤈ෸ਫሿgPRC๐‫ۓ‬ᒒ҅kubelet֢ԅਮಁᒒᦢᳯ • ෫ᵱ‫ى‬ஞٖ᮱᭗‫מ‬᭦ᬋ҅‫ݝ‬ᵱਫሿRuntimeService޾ImageServiceള‫ݗ‬ • ਻࢏ᬩᤈ෸ᨮᨱᓕቘ਻࢏ᗑᕶ҅ইֵአCNIᒵ • ᐒ‫܄‬ग़ᐿਫሿ҅ইfrakti̵cri-containerd̵cri-oᒵ • kubelet‫ۖސ‬෸ᯈᗝ container-runtime-endpoint.
  • 12.Frakti • चԭKubelet CRIጱᡦ೙۸਻࢏ᬩᤈ෸ • Podᬩᤈࣁ‫ܔ‬ᇿጱᡦ೙๢Ӿ҅ંԭ‫ݶ‬ӞӻPodጱ਻࢏ᬩᤈࣁ‫ݶ‬Ӟӻᡦ೙๢Ӿ • चԭCNIጱ਻࢏ᗑᕶ • ܻኞඪ೮Kubernetesᐒ‫܄‬ጱ‫ݱ‬ᐿಘ઀޾ૡٍ • ፓ‫ڹ‬ᇫாғKubernetes v1.7 betaᇇ޾v1.6 alphaᇇ • ୏რғhttps://github.com/kubernetes/frakti
  • 13.Frakti
  • 14.HyperContainer • चԭᡦ೙۸ጱ਻࢏୚ක҅ඪ೮KVM̵XEN̵Libvirtᒵ • Եᑁᕆ‫ۖސ‬ҁ<100ms Xeon 1270҅~400ms Pine64 ARM҂ • ग़ଘ‫ݣ‬ඪ೮҅ইx86̵ARM̵Powerᒵ • ᇿᒈٖ໐҅෫ᵱGuest OS • ᓌ‫ܔ‬ฃአ • ୏რғhttps://github.com/hyperhq/hyperd
  • 15.HyperContainer vs Docker
  • 16.Ӟ. Kubernetesٌ݊ൊկ๢‫ګ‬ ԫ. चԭCRI຅ୌ୩਻࢏ᵍᐶ ӣ. चԭCNI຅ୌ਻࢏SDNᗑᕶ ࢥ. ਫ᪢ᕪḵ
  • 17.Kubernetesᗑᕶཛྷࣳ • Kubernetesᗑᕶཛྷࣳ • IP-per-Pod҅ྯӻPod᮷೜ํӞӻᇿᒈIPࣈ࣎҅Podٖಅํ਻࢏‫و‬ՁӞӻᗑᕶ޸‫ݷ‬ᑮᳵ • ᵞᗭٖಅํPod᮷ࣁӞӻፗളᬳ᭗ጱಆଘᗑᕶӾ҅‫ݢ‬᭗ᬦIPፗളᦢᳯ • Service clusterIPࣁᵞᗭٖ᮱ᦢᳯ҅क़᮱᧗࿢ᵱᥝ᭗ᬦNodePort̵LoadBalance౲ᘏIngress๶ᦢ ᳯ • ᗑᕶൊկ • Container Network Interface (CNI)ғ਻࢏ᗑᕶള‫҅ݗ‬CNCF໐ஞᶱፓ • kubenetғचԭCNI bridgeጱᗑᕶൊկ҅ಘ઀ԧᒒ‫ݗ‬ฉ੘̵QoSᒵ‫ۑ‬ᚆ
  • 18.Container Network Interface • KubernetesᗑᕶൊկጱचᏐ҅CNCF໐ஞᶱፓ • च๜௏మғ਻࢏ᬩᤈ෸ࣁ‫ڠ‬ୌ਻࢏෸҅‫ڠض‬ୌnetwork namespace҅ ᆐ‫᧣ݸ‬አCNIൊկԅٌᯈᗝᗑᕶ๋҅‫ݸ‬ٚ‫ٖ࢏਻ۖސ‬ጱᬰᑕ • CNIൊկᕟ౮ • CNI Pluginᨮᨱᕳ਻࢏ᯈᗝᗑᕶҁইbridge̵macvlan̵calicoᒵ҂ • IPAM Pluginᨮᨱᕳ਻࢏‫ړ‬ᯈIPࣈ࣎ҁইhost-local̵dhcpᒵ҂
  • 19.चԭCNIጱ਻࢏SDNᗑᕶ • ग़ᗑᕶᓕቘ • CustomResourceDefinition (CRD)ᓕቘᗑᕶ੒᨝ • ᛔਧԎഴ‫࢏ګ‬ፊ‫ލ‬ᗑᕶ‫ݒ‬۸ଚࣁNeutronӾ඙֢ • Annotationਖ਼ᗑᕶ‫ݷ‬ᑍփᕳCNIᗑᕶൊկ • CNIᗑᕶൊկ • ‫ݻ‬Neutronັᧃᗑᕶ݇හ • ᯈᗝPodᬳള‫ک‬Neutron openvswitchൊկ • ୏რғhttps://git.openstack.org/cgit/openstack/stackube
  • 20.चԭCNIጱ਻࢏SDNᗑᕶ
  • 21.Networkᐏֺ
  • 22.Ӟ. Kubernetesٌ݊ൊկ๢‫ګ‬ ԫ. चԭCRI຅ୌ୩਻࢏ᵍᐶ ӣ. चԭCNI຅ୌ਻࢏SDNᗑᕶ ࢥ. ਫ᪢ᕪḵ
  • 23.ਫ᪢ᕪḵ1 ᳯ᷌1: ই֜ඪ೮ग़ᑄಁጱ๐‫ݎۓ‬ሿ޾ᨮ᫹࣐ᤍҘ • ೴౴ • ᑄಁ‫ᦢݢݝ‬ᳯᛔ૩ጱ๐‫ۓ‬ • ፘ‫ݶ‬ᗑᕶӤጱPod಍‫ݢ‬զፘ԰ᦢᳯ • ᥴ٬ොဩ • ᛔਧԎkube-proxy҅Րፊ‫ލ‬ᑄಁጱ๐‫ۓ‬ • चԭneutron lbaas൉‫׀‬๐‫ۓ‬ጱᨮ᫹࣐ᤍ
  • 24.ਫ᪢ᕪḵ2 ᳯ᷌2: ই֜ඪ೮ग़ᑄಁᗑᕶጱDNSᥴຉҘ • ೴౴ • ᑄಁ‫ݝ‬ᵱᥝᦢᳯᛔ૩ጱservice • ᑄಁᗑᕶӨHostNetworkӧ᭗ • ᥴ٬ොဩ • ᛔਧԎkube-dns҅Րፊ‫ލ‬ᑄಁጱservices޾endpoints • զฦ᭗Podොୗਖ਼kube-dnsᬩᤈࣁᑄಁᗑᕶٖ
  • 25.ਫ᪢ᕪḵ3 ᳯ᷌3: ই֜ᓕቘKubernetesᔮᕹ๐‫ۓ‬ҁইkube-proxy̵apiserverᒵ҂Ҙ • ೴౴ • ‫فے‬hypervisor‫҅ݸ‬෫ဩඪ೮hostnetworkզ݊ᇙ๦਻࢏ • kubernetesᔮᕹ๐‫ۓ‬ᵱᥝᦢᳯଚ‫ץ‬දhostnetwork • ᥴ٬ොဩ • Ⴐ‫࢏਻ݳ‬ᬩᤈ෸ҁইHyperContainer+Docker҂҅ਖ਼ᑄಁጱฦ᭗਻࢏ᬩᤈࣁᡦ೙๢Ӿᘒᔮᕹ๐‫ۓ‬ ᬩᤈࣁDocker਻࢏Ӿ • ಅํ਻࢏ᬩᤈ෸‫و‬Ձፘ‫ݶ‬ጱCNIᗑᕶ
  • 26.