Files
rancher-docs/zh/assets/js/883fa967.e46cb00a.js
T

1 line
43 KiB
JavaScript

"use strict";(self.webpackChunkrancher_docs=self.webpackChunkrancher_docs||[]).push([[9732],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return k}});var a=n(67294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,a,l=function(e,t){if(null==e)return{};var n,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=a.createContext({}),o=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=o(e.components);return a.createElement(u.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,u=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),m=o(n),k=l,d=m["".concat(u,".").concat(k)]||m[k]||s[k]||r;return n?a.createElement(d,i(i({ref:t},c),{},{components:n})):a.createElement(d,i({ref:t},c))}));function k(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=m;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p.mdxType="string"==typeof e?e:l,i[1]=p;for(var o=2;o<r;o++)i[o]=n[o];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},38586:function(e,t,n){n.r(t),n.d(t,{assets:function(){return c},contentTitle:function(){return u},default:function(){return k},frontMatter:function(){return p},metadata:function(){return o},toc:function(){return s}});var a=n(87462),l=n(63366),r=(n(67294),n(3905)),i=["components"],p={title:"CNI \u7f51\u7edc\u63d2\u4ef6",description:"\u4e86\u89e3\u5bb9\u5668\u7f51\u7edc\u63a5\u53e3 (CNI)\u3001Rancher \u63d0\u4f9b\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u3001\u63d0\u4f9b\u5546\u7684\u529f\u80fd\uff0c\u4ee5\u53ca\u5982\u4f55\u9009\u62e9\u7f51\u7edc\u63d0\u4f9b\u5546"},u=void 0,o={unversionedId:"faq/container-network-interface-providers",id:"version-2.6/faq/container-network-interface-providers",title:"CNI \u7f51\u7edc\u63d2\u4ef6",description:"\u4e86\u89e3\u5bb9\u5668\u7f51\u7edc\u63a5\u53e3 (CNI)\u3001Rancher \u63d0\u4f9b\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u3001\u63d0\u4f9b\u5546\u7684\u529f\u80fd\uff0c\u4ee5\u53ca\u5982\u4f55\u9009\u62e9\u7f51\u7edc\u63d0\u4f9b\u5546",source:"@site/i18n/zh/docusaurus-plugin-content-docs/version-2.6/faq/container-network-interface-providers.md",sourceDirName:"faq",slug:"/faq/container-network-interface-providers",permalink:"/zh/v2.6/faq/container-network-interface-providers",draft:!1,editUrl:"https://github.com/rancher/rancher-docs/edit/main/versioned_docs/version-2.6/faq/container-network-interface-providers.md",tags:[],version:"2.6",lastUpdatedAt:1668452187,formattedLastUpdatedAt:"2022/11/14",frontMatter:{title:"CNI \u7f51\u7edc\u63d2\u4ef6",description:"\u4e86\u89e3\u5bb9\u5668\u7f51\u7edc\u63a5\u53e3 (CNI)\u3001Rancher \u63d0\u4f9b\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u3001\u63d0\u4f9b\u5546\u7684\u529f\u80fd\uff0c\u4ee5\u53ca\u5982\u4f55\u9009\u62e9\u7f51\u7edc\u63d0\u4f9b\u5546"},sidebar:"tutorialSidebar",previous:{title:"\u9065\u6d4b",permalink:"/zh/v2.6/faq/telemetry"},next:{title:"\u5378\u8f7d Rancher",permalink:"/zh/v2.6/faq/rancher-is-no-longer-needed"}},c={},s=[{value:"\u4ec0\u4e48\u662f CNI\uff1f",id:"\u4ec0\u4e48\u662f-cni",level:2},{value:"CNI \u4f7f\u7528\u4e86\u54ea\u4e9b\u7f51\u7edc\u6a21\u578b\uff1f",id:"cni-\u4f7f\u7528\u4e86\u54ea\u4e9b\u7f51\u7edc\u6a21\u578b",level:2},{value:"\u4ec0\u4e48\u662f\u5c01\u88c5\u7f51\u7edc\uff1f",id:"\u4ec0\u4e48\u662f\u5c01\u88c5\u7f51\u7edc",level:3},{value:"\u4ec0\u4e48\u662f\u975e\u5c01\u88c5\u7f51\u7edc\uff1f",id:"\u4ec0\u4e48\u662f\u975e\u5c01\u88c5\u7f51\u7edc",level:3},{value:"Rancher \u63d0\u4f9b\u54ea\u4e9b CNI \u63d2\u4ef6\uff1f",id:"rancher-\u63d0\u4f9b\u54ea\u4e9b-cni-\u63d2\u4ef6",level:2},{value:"RKE Kubernetes \u96c6\u7fa4",id:"rke-kubernetes-\u96c6\u7fa4",level:3},{value:"Canal",id:"canal",level:4},{value:"Flannel",id:"flannel",level:4},{value:"Weave",id:"weave",level:4},{value:"RKE2 Kubernetes \u96c6\u7fa4",id:"rke2-kubernetes-\u96c6\u7fa4",level:3},{value:"Calico",id:"calico",level:4},{value:"Cilium",id:"cilium",level:4},{value:"Cilium \u4e2d\u8de8\u8282\u70b9\u7684 Ingress \u8def\u7531",id:"cilium-\u4e2d\u8de8\u8282\u70b9\u7684-ingress-\u8def\u7531",level:5},{value:"\u5404\u4e2a\u7f51\u7edc\u63d2\u4ef6\u7684 CNI \u529f\u80fd",id:"\u5404\u4e2a\u7f51\u7edc\u63d2\u4ef6\u7684-cni-\u529f\u80fd",level:2},{value:"CNI \u793e\u533a\u4eba\u6c14",id:"cni-\u793e\u533a\u4eba\u6c14",level:2},{value:"\u4f7f\u7528\u54ea\u4e2a CNI \u63d2\u4ef6\uff1f",id:"\u4f7f\u7528\u54ea\u4e2a-cni-\u63d2\u4ef6",level:2},{value:"\u5982\u4f55\u914d\u7f6e CNI \u7f51\u7edc\u63d2\u4ef6\uff1f",id:"\u5982\u4f55\u914d\u7f6e-cni-\u7f51\u7edc\u63d2\u4ef6",level:2}],m={toc:s};function k(e){var t=e.components,p=(0,l.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},m,p,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4ec0\u4e48\u662f-cni"},"\u4ec0\u4e48\u662f CNI\uff1f"),(0,r.kt)("p",null,"CNI\uff08\u5bb9\u5668\u7f51\u7edc\u63a5\u53e3\uff09\u662f\u4e00\u4e2a",(0,r.kt)("a",{parentName:"p",href:"https://cncf.io/"},"\u4e91\u539f\u751f\u8ba1\u7b97\u57fa\u91d1\u4f1a\u9879\u76ee"),"\uff0c\u5b83\u5305\u542b\u4e86\u4e00\u4e9b\u89c4\u8303\u548c\u5e93\uff0c\u7528\u4e8e\u7f16\u5199\u5728 Linux \u5bb9\u5668\u4e2d\u914d\u7f6e\u7f51\u7edc\u63a5\u53e3\u7684\u4e00\u7cfb\u5217\u63d2\u4ef6\u3002CNI \u53ea\u5173\u6ce8\u5bb9\u5668\u7684\u7f51\u7edc\u8fde\u63a5\uff0c\u5e76\u5728\u5bb9\u5668\u88ab\u5220\u9664\u65f6\u79fb\u9664\u6240\u5206\u914d\u7684\u8d44\u6e90\u3002"),(0,r.kt)("p",null,"Kubernetes \u4f7f\u7528 CNI \u4f5c\u4e3a\u7f51\u7edc\u63d0\u4f9b\u5546\u548c Kubernetes Pod \u7f51\u7edc\u4e4b\u95f4\u7684\u63a5\u53e3\u3002"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"CNI Logo",src:n(37685).Z,width:"84",height:"119"})),(0,r.kt)("p",null,"\u6709\u5173\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u8bbf\u95ee ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/containernetworking/cni"},"CNI GitHub \u9879\u76ee"),"\u3002"),(0,r.kt)("h2",{id:"cni-\u4f7f\u7528\u4e86\u54ea\u4e9b\u7f51\u7edc\u6a21\u578b"},"CNI \u4f7f\u7528\u4e86\u54ea\u4e9b\u7f51\u7edc\u6a21\u578b\uff1f"),(0,r.kt)("p",null,"CNI \u7f51\u7edc\u63d2\u4ef6\u4f7f\u7528\u5c01\u88c5\u7f51\u7edc\u6a21\u578b\uff08\u4f8b\u5982 Virtual Extensible Lan\uff0c\u7f29\u5199\u662f ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#vxlan"},"VXLAN"),"\uff09\u6216\u975e\u5c01\u88c5\u7f51\u7edc\u6a21\u578b\uff08\u4f8b\u5982 Border Gateway Protocol\uff0c\u7f29\u5199\u662f ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Border_Gateway_Protocol"},"BGP"),"\uff09\u6765\u5b9e\u73b0\u7f51\u7edc\u7ed3\u6784\u3002"),(0,r.kt)("h3",{id:"\u4ec0\u4e48\u662f\u5c01\u88c5\u7f51\u7edc"},"\u4ec0\u4e48\u662f\u5c01\u88c5\u7f51\u7edc\uff1f"),(0,r.kt)("p",null,"\u6b64\u7f51\u7edc\u6a21\u578b\u63d0\u4f9b\u4e86\u4e00\u4e2a\u903b\u8f91\u4e8c\u5c42\uff08L2\uff09\u7f51\u7edc\uff0c\u8be5\u7f51\u7edc\u5c01\u88c5\u5728\u8de8 Kubernetes \u96c6\u7fa4\u8282\u70b9\u7684\u73b0\u6709\u4e09\u5c42\uff08L3\uff09\u7f51\u7edc\u62d3\u6251\u4e0a\u3002\u4f7f\u7528\u6b64\u6a21\u578b\uff0c\u4f60\u53ef\u4ee5\u4e3a\u5bb9\u5668\u63d0\u4f9b\u4e00\u4e2a\u9694\u79bb\u7684 L2 \u7f51\u7edc\uff0c\u800c\u65e0\u9700\u5206\u53d1\u8def\u7531\u3002\u5c01\u88c5\u7f51\u7edc\u5e26\u6765\u4e86\u5c11\u91cf\u7684\u5904\u7406\u5f00\u9500\u4ee5\u53ca\u7531\u4e8e\u8986\u76d6\u5c01\u88c5\u751f\u6210 IP header \u9020\u6210\u7684 IP \u5305\u5927\u5c0f\u589e\u52a0\u3002\u5c01\u88c5\u4fe1\u606f\u7531 Kubernetes worker \u4e4b\u95f4\u7684 UDP \u7aef\u53e3\u5206\u53d1\uff0c\u4ea4\u6362\u5982\u4f55\u8bbf\u95ee MAC \u5730\u5740\u7684\u7f51\u7edc\u63a7\u5236\u5e73\u9762\u4fe1\u606f\u3002\u6b64\u7c7b\u7f51\u7edc\u6a21\u578b\u4e2d\u5e38\u7528\u7684\u5c01\u88c5\u662f VXLAN\u3001Internet \u534f\u8bae\u5b89\u5168\u6027 (IPSec) \u548c IP-in-IP\u3002"),(0,r.kt)("p",null,"\u7b80\u5355\u6765\u8bf4\uff0c\u8fd9\u79cd\u7f51\u7edc\u6a21\u578b\u5728 Kubernetes worker \u4e4b\u95f4\u751f\u6210\u4e86\u4e00\u79cd\u6269\u5c55\u7f51\u6865\uff0c\u5176\u4e2d\u8fde\u63a5\u4e86 pod\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u4f60\u504f\u5411\u4f7f\u7528\u6269\u5c55 L2 \u7f51\u6865\uff0c\u5219\u53ef\u4ee5\u9009\u62e9\u6b64\u7f51\u7edc\u6a21\u578b\u3002\u6b64\u7f51\u7edc\u6a21\u578b\u5bf9 Kubernetes worker \u7684 L3 \u7f51\u7edc\u5ef6\u8fdf\u5f88\u654f\u611f\u3002\u5982\u679c\u6570\u636e\u4e2d\u5fc3\u4f4d\u4e8e\u4e0d\u540c\u7684\u5730\u7406\u4f4d\u7f6e\uff0c\u8bf7\u786e\u4fdd\u5b83\u4eec\u4e4b\u95f4\u7684\u5ef6\u8fdf\u8f83\u4f4e\uff0c\u4ee5\u907f\u514d\u6700\u7ec8\u7684\u7f51\u7edc\u5206\u6bb5\u3002"),(0,r.kt)("p",null,"\u4f7f\u7528\u8fd9\u79cd\u7f51\u7edc\u6a21\u578b\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u5305\u62ec Flannel\u3001Canal\u3001Weave \u548c Cilium\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cCalico \u4e0d\u4f1a\u4f7f\u7528\u6b64\u6a21\u578b\uff0c\u4f46\u4f60\u53ef\u4ee5\u5bf9\u5176\u8fdb\u884c\u914d\u7f6e\u3002"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u5c01\u88c5\u7f51\u7edc",src:n(83754).Z,width:"767",height:"446"})),(0,r.kt)("h3",{id:"\u4ec0\u4e48\u662f\u975e\u5c01\u88c5\u7f51\u7edc"},"\u4ec0\u4e48\u662f\u975e\u5c01\u88c5\u7f51\u7edc\uff1f"),(0,r.kt)("p",null,"\u8be5\u7f51\u7edc\u6a21\u578b\u63d0\u4f9b\u4e86\u4e00\u4e2a L3 \u7f51\u7edc\uff0c\u7528\u4e8e\u5728\u5bb9\u5668\u4e4b\u95f4\u8def\u7531\u6570\u636e\u5305\u3002\u6b64\u6a21\u578b\u4e0d\u4f1a\u751f\u6210\u9694\u79bb\u7684 L2 \u7f51\u7edc\uff0c\u4e5f\u4e0d\u4f1a\u4ea7\u751f\u5f00\u9500\u3002\u8fd9\u4e9b\u597d\u5904\u7684\u4ee3\u4ef7\u662f\uff0cKubernetes worker \u5fc5\u987b\u7ba1\u7406\u6240\u9700\u7684\u6240\u6709\u8def\u7531\u5206\u53d1\u3002\u8be5\u7f51\u7edc\u6a21\u578b\u4e0d\u4f7f\u7528 IP header \u8fdb\u884c\u5c01\u88c5\uff0c\u800c\u662f\u4f7f\u7528 Kubernetes Worker \u4e4b\u95f4\u7684\u7f51\u7edc\u534f\u8bae\u6765\u5206\u53d1\u8def\u7531\u4fe1\u606f\u4ee5\u5b9e\u73b0 Pod \u8fde\u63a5\uff0c\u4f8b\u5982 ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Border_Gateway_Protocol"},"BGP"),"\u3002"),(0,r.kt)("p",null,"\u7b80\u800c\u8a00\u4e4b\uff0c\u8fd9\u79cd\u7f51\u7edc\u6a21\u578b\u5728 Kubernetes worker \u4e4b\u95f4\u751f\u6210\u4e86\u4e00\u79cd\u6269\u5c55\u7f51\u7edc\u8def\u7531\u5668\uff0c\u63d0\u4f9b\u4e86\u5982\u4f55\u8fde\u63a5 Pod \u7684\u4fe1\u606f\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u4f60\u504f\u5411\u4f7f\u7528 L3 \u7f51\u7edc\uff0c\u5219\u53ef\u4ee5\u9009\u62e9\u6b64\u7f51\u7edc\u6a21\u578b\u3002\u6b64\u6a21\u578b\u5728\u64cd\u4f5c\u7cfb\u7edf\u7ea7\u522b\u4e3a Kubernetes Worker \u52a8\u6001\u66f4\u65b0\u8def\u7531\u3002\u5bf9\u5ef6\u8fdf\u8f83\u4e0d\u654f\u611f\u3002"),(0,r.kt)("p",null,"\u4f7f\u7528\u8fd9\u79cd\u7f51\u7edc\u6a21\u578b\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u5305\u62ec Calico \u548c Cilium\u3002Cilium \u53ef\u4ee5\u4f7f\u7528\u6b64\u6a21\u578b\u8fdb\u884c\u914d\u7f6e\uff0c\u5373\u4f7f\u8fd9\u4e0d\u662f\u9ed8\u8ba4\u6a21\u5f0f\u3002"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u975e\u5c01\u88c5\u7f51\u7edc",src:n(70689).Z,width:"716",height:"415"})),(0,r.kt)("h2",{id:"rancher-\u63d0\u4f9b\u54ea\u4e9b-cni-\u63d2\u4ef6"},"Rancher \u63d0\u4f9b\u54ea\u4e9b CNI \u63d2\u4ef6\uff1f"),(0,r.kt)("h3",{id:"rke-kubernetes-\u96c6\u7fa4"},"RKE Kubernetes \u96c6\u7fa4"),(0,r.kt)("p",null,"Rancher \u5f00\u7bb1\u5373\u7528\u5730\u4e3a RKE Kubernetes \u96c6\u7fa4\u63d0\u4f9b\u4e86\u51e0\u4e2a CNI \u7f51\u7edc\u63d2\u4ef6\uff0c\u5206\u522b\u662f Canal\u3001Flannel\u3001Calico \u548c Weave\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u4f60\u4f7f\u7528 Rancher \u521b\u5efa\u65b0\u7684 Kubernetes \u96c6\u7fa4\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\u4f60\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u3002"),(0,r.kt)("h4",{id:"canal"},"Canal"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Canal Logo",src:n(32899).Z,width:"328",height:"184"})),(0,r.kt)("p",null,"Canal \u662f\u4e00\u4e2a CNI \u7f51\u7edc\u63d2\u4ef6\uff0c\u5b83\u5f88\u597d\u5730\u7ed3\u5408\u4e86 Flannel \u548c Calico \u7684\u4f18\u70b9\u3002\u5b83\u8ba9\u4f60\u8f7b\u677e\u5730\u5c06 Calico \u548c Flannel \u7f51\u7edc\u90e8\u7f72\u4e3a\u7edf\u4e00\u7684\u7f51\u7edc\u89e3\u51b3\u65b9\u6848\uff0c\u5c06 Calico \u7684\u7f51\u7edc\u7b56\u7565\u6267\u884c\u4e0e Calico\uff08\u672a\u5c01\u88c5\uff09\u548c Flannel\uff08\u5c01\u88c5\uff09\u4e30\u5bcc\u7684\u7f51\u7edc\u8fde\u63a5\u9009\u9879\u7ed3\u5408\u8d77\u6765\u3002"),(0,r.kt)("p",null,"Canal \u662f Rancher \u9ed8\u8ba4\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\uff0c\u5e76\u91c7\u7528\u4e86 Flannel \u548c VXLAN \u5c01\u88c5\u3002"),(0,r.kt)("p",null,"Kubernetes Worker \u9700\u8981\u6253\u5f00 UDP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"8472")," (VXLAN) \u548c TCP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"9099"),"\uff08\u5065\u5eb7\u68c0\u67e5\uff09\u3002\u5982\u679c\u4f7f\u7528 Wireguard\uff0c\u5219\u9700\u8981\u6253\u5f00 UDP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"51820")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"51821"),"\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605",(0,r.kt)("a",{parentName:"p",href:"/zh/v2.6/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters"},"\u4e0b\u6e38\u96c6\u7fa4\u7684\u7aef\u53e3\u8981\u6c42"),"\u3002"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(24313).Z,width:"1782",height:"898"})),(0,r.kt)("p",null,"\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/projectcalico/canal"},"Canal GitHub \u9875\u9762"),"\u3002"),(0,r.kt)("h4",{id:"flannel"},"Flannel"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Flannel Logo",src:n(13688).Z,width:"328",height:"100"})),(0,r.kt)("p",null,"Flannel \u662f\u4e3a Kubernetes \u914d\u7f6e L3 \u7f51\u7edc\u7ed3\u6784\u7684\u7b80\u5355\u65b9\u6cd5\u3002Flannel \u5728\u6bcf\u53f0\u4e3b\u673a\u4e0a\u8fd0\u884c\u4e00\u4e2a\u540d\u4e3a flanneld \u7684\u4e8c\u8fdb\u5236 Agent\uff0c\u8be5 Agent \u8d1f\u8d23\u4ece\u66f4\u5927\u7684\u9884\u914d\u7f6e\u5730\u5740\u7a7a\u95f4\u4e2d\u4e3a\u6bcf\u53f0\u4e3b\u673a\u5206\u914d\u5b50\u7f51\u79df\u7ea6\u3002Flannel \u901a\u8fc7 Kubernetes API \u6216\u76f4\u63a5\u4f7f\u7528 etcd \u6765\u5b58\u50a8\u7f51\u7edc\u914d\u7f6e\u3001\u5206\u914d\u7684\u5b50\u7f51\u3001\u4ee5\u53ca\u5176\u4ed6\u8f85\u52a9\u6570\u636e\uff08\u4f8b\u5982\u4e3b\u673a\u7684\u516c\u5171 IP\uff09\u3002\u6570\u636e\u5305\u4f7f\u7528\u67d0\u79cd\u540e\u7aef\u673a\u5236\u6765\u8f6c\u53d1\uff0c\u9ed8\u8ba4\u5c01\u88c5\u4e3a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#vxlan"},"VXLAN"),"\u3002"),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5c01\u88c5\u7684\u6d41\u91cf\u662f\u4e0d\u52a0\u5bc6\u7684\u3002Flannel \u63d0\u4f9b\u4e86\u4e24\u79cd\u52a0\u5bc6\u65b9\u6848\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#ipsec"},"IPSec"),"\uff1a\u4f7f\u7528 ",(0,r.kt)("a",{parentName:"li",href:"https://www.strongswan.org/"},"strongSwan")," \u5728 Kubernetes worker \u4e4b\u95f4\u5efa\u7acb\u52a0\u5bc6\u7684 IPSec \u96a7\u9053\u3002\u5b83\u662f\u52a0\u5bc6\u7684\u5b9e\u9a8c\u6027\u540e\u7aef\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#wireguard"},"WireGuard"),"\uff1a\u6bd4 strongSwan \u66f4\u5feb\u7684\u66ff\u4ee3\u65b9\u6848\u3002")),(0,r.kt)("p",null,"Kubernetes Worker \u9700\u8981\u6253\u5f00 UDP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"8472")," (VXLAN)\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605",(0,r.kt)("a",{parentName:"p",href:"/zh/v2.6/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters#%E7%BD%91%E7%BB%9C%E8%A6%81%E6%B1%82"},"\u4e0b\u6e38\u96c6\u7fa4\u7684\u7aef\u53e3\u8981\u6c42"),"\u3002"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Flannel Diagram",src:n(16930).Z,width:"1024",height:"456"})),(0,r.kt)("p",null,"\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/flannel-io/flannel"},"Flannel GitHub \u9875\u9762"),"\u3002"),(0,r.kt)("h4",{id:"weave"},"Weave"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Weave Logo",src:n(11636).Z,width:"229",height:"220"})),(0,r.kt)("p",null,"Weave \u5728\u4e91\u4e0a\u7684 Kubernetes \u96c6\u7fa4\u4e2d\u542f\u7528\u7f51\u7edc\u548c\u7f51\u7edc\u7b56\u7565\u3002\u6b64\u5916\uff0c\u5b83\u8fd8\u652f\u6301\u52a0\u5bc6\u5bf9\u7b49\u8282\u70b9\u4e4b\u95f4\u7684\u6d41\u91cf\u3002"),(0,r.kt)("p",null,"Kubernetes worker \u9700\u8981\u6253\u5f00 TCP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"6783"),"\uff08\u63a7\u5236\u7aef\u53e3\uff09\u3001UDP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"6783")," \u548c UDP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"6784"),"\uff08\u6570\u636e\u7aef\u53e3\uff09\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605",(0,r.kt)("a",{parentName:"p",href:"/zh/v2.6/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters#%E7%BD%91%E7%BB%9C%E8%A6%81%E6%B1%82"},"\u4e0b\u6e38\u96c6\u7fa4\u7684\u7aef\u53e3\u8981\u6c42"),"\u3002"),(0,r.kt)("p",null,"\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u4ee5\u4e0b\u9875\u9762\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://www.weave.works/"},"Weave Net \u5b98\u7f51"))),(0,r.kt)("h3",{id:"rke2-kubernetes-\u96c6\u7fa4"},"RKE2 Kubernetes \u96c6\u7fa4"),(0,r.kt)("p",null,"Rancher \u5f00\u7bb1\u5373\u7528\u5730\u4e3a RKE2 Kubernetes \u96c6\u7fa4\u63d0\u4f9b\u4e86\u51e0\u4e2a CNI \u7f51\u7edc\u63d2\u4ef6\uff0c\u5206\u522b\u662f ",(0,r.kt)("a",{parentName:"p",href:"#canal"},"Canal"),"\uff08\u89c1\u4e0a\u4e00\u8282\uff09\u3001Calico \u548c Cilium\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u4f60\u4f7f\u7528 Rancher \u521b\u5efa\u65b0\u7684 Kubernetes \u96c6\u7fa4\uff0c\u4f60\u53ef\u4ee5\u9009\u62e9\u4f60\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u3002"),(0,r.kt)("h4",{id:"calico"},"Calico"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Calico Logo",src:n(85423).Z,width:"256",height:"256"})),(0,r.kt)("p",null,"Calico \u5728\u4e91\u4e0a\u7684 Kubernetes \u96c6\u7fa4\u4e2d\u542f\u7528\u7f51\u7edc\u548c\u7f51\u7edc\u7b56\u7565\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cCalico \u4f7f\u7528\u7eaf\u51c0\u3001\u672a\u5c01\u88c5\u7684 IP \u7f51\u7edc\u7ed3\u6784\u548c\u7b56\u7565\u5f15\u64ce\u4e3a Kubernetes \u5de5\u4f5c\u8d1f\u8f7d\u63d0\u4f9b\u7f51\u7edc\u3002\u5de5\u4f5c\u8d1f\u8f7d\u80fd\u591f\u4f7f\u7528 BGP \u5728\u4e91\u4e0a\u548c\u672c\u5730\u8fdb\u884c\u901a\u4fe1\u3002"),(0,r.kt)("p",null,"Calico \u8fd8\u63d0\u4f9b\u4e86\u4e00\u79cd\u65e0\u72b6\u6001\u7684 IP-in-IP \u6216 VXLAN \u5c01\u88c5\u6a21\u5f0f\u3002\u5982\u679c\u9700\u8981\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u5b83\u3002Calico \u8fd8\u652f\u6301\u7b56\u7565\u9694\u79bb\uff0c\u8ba9\u4f60\u4f7f\u7528\u9ad8\u7ea7 ingress \u548c egress \u7b56\u7565\u4fdd\u62a4\u548c\u7ba1\u7406 Kubernetes \u5de5\u4f5c\u8d1f\u8f7d\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u4f7f\u7528 BGP\uff0cKubernetes Worker \u9700\u8981\u6253\u5f00 TCP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"179"),"\uff0c\u5982\u679c\u4f7f\u7528 VXLAN \u5c01\u88c5\uff0c\u5219\u9700\u8981\u6253\u5f00 UDP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"4789"),"\u3002\u53e6\u5916\uff0c\u4f7f\u7528 Typha \u65f6\u9700\u8981 TCP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"5473"),"\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605",(0,r.kt)("a",{parentName:"p",href:"/zh/v2.6/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters#%E7%BD%91%E7%BB%9C%E8%A6%81%E6%B1%82"},"\u4e0b\u6e38\u96c6\u7fa4\u7684\u7aef\u53e3\u8981\u6c42"),"\u3002"),(0,r.kt)("div",{className:"admonition admonition-note alert alert--secondary"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))),"\u91cd\u8981\u63d0\u793a\uff1a")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"\u5728 Rancher 2.6.3 \u4e2d\uff0cCalico \u63a2\u6d4b\u5230\u5728\u5b89\u88c5 RKE2 \u65f6 Windows \u8282\u70b9\u4f1a\u5931\u8d25\u3002",(0,r.kt)("b",null,"\u8bf7\u6ce8\u610f\uff0c\u6b64\u95ee\u9898\u5df2\u5728 v2.6.4 \u4e2d\u89e3\u51b3\u3002")),(0,r.kt)("ul",{parentName:"div"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u8981\u89e3\u51b3\u6b64\u95ee\u9898\uff0c\u8bf7\u5148\u5bfc\u822a\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"https://<rancherserverurl>/v3/settings/windows-rke2-install-script"),"\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u5728\u90a3\u91cc\uff0c\u5c06\u5f53\u524d\u8bbe\u7f6e ",(0,r.kt)("inlineCode",{parentName:"p"},"https://raw.githubusercontent.com/rancher/wins/v0.1.3/install.ps1")," \u66f4\u6539\u4e3a\u65b0\u8bbe\u7f6e ",(0,r.kt)("inlineCode",{parentName:"p"},"https://raw.githubusercontent .com/rancher/rke2/master/windows/rke2-install.ps1"),"\u3002"))))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Calico Diagram",src:n(48972).Z,width:"602",height:"930"})),(0,r.kt)("p",null,"\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u4ee5\u4e0b\u9875\u9762\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://www.projectcalico.org/"},"Project Calico \u5b98\u65b9\u7f51\u7ad9")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/projectcalico/calico"},"Calico \u9879\u76ee GitHub \u9875\u9762"))),(0,r.kt)("h4",{id:"cilium"},"Cilium"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Cilium Logo",src:n(5820).Z,width:"148",height:"148"})),(0,r.kt)("p",null,"Cilium \u5728 Kubernetes \u4e2d\u542f\u7528\u7f51\u7edc\u548c\u7f51\u7edc\u7b56\u7565\uff08L3\u3001L4 \u548c L7\uff09\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cCilium \u4f7f\u7528 eBPF \u6280\u672f\u5728\u8282\u70b9\u5185\u90e8\u8def\u7531\u6570\u636e\u5305\uff0c\u5e76\u4f7f\u7528 VXLAN \u5c06\u6570\u636e\u5305\u53d1\u9001\u5230\u5176\u4ed6\u8282\u70b9\u3002\u4f60\u4e5f\u53ef\u4ee5\u914d\u7f6e\u975e\u5c01\u88c5\u7684\u6280\u672f\u3002"),(0,r.kt)("p",null,"Cilium \u63a8\u8350\u5927\u4e8e 5.2 \u7684\u5185\u6838\u7248\u672c\uff0c\u4ece\u800c\u5145\u5206\u5229\u7528 eBPF \u7684\u80fd\u529b\u3002Kubernetes worker \u9700\u8981\u6253\u5f00 TCP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"8472"),"\uff08VXLAN\uff09\u548c TCP \u7aef\u53e3 ",(0,r.kt)("inlineCode",{parentName:"p"},"4240"),"\uff08\u5065\u5eb7\u68c0\u67e5\uff09\u3002\u6b64\u5916\uff0c\u8fd8\u5fc5\u987b\u4e3a\u5065\u5eb7\u68c0\u67e5\u542f\u7528 ICMP 8/0\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u67e5\u770b ",(0,r.kt)("a",{parentName:"p",href:"https://docs.cilium.io/en/latest/operations/system_requirements/#firewall-requirements"},"Cilium \u7cfb\u7edf\u8981\u6c42"),"\u3002"),(0,r.kt)("h5",{id:"cilium-\u4e2d\u8de8\u8282\u70b9\u7684-ingress-\u8def\u7531"},"Cilium \u4e2d\u8de8\u8282\u70b9\u7684 Ingress \u8def\u7531"),(0,r.kt)("br",null),"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cCilium \u4e0d\u5141\u8bb8 Pod \u4e0e\u5176\u4ed6\u8282\u70b9\u4e0a\u7684 Pod \u901a\u4fe1\u3002\u8981\u89e3\u51b3\u6b64\u95ee\u9898\uff0c\u8bf7\u542f\u7528 Ingress Controller \u4ee5\u4f7f\u7528 \u201cCiliumNetworkPolicy\u201d \u8fdb\u884c\u8de8\u8282\u70b9\u8def\u7531\u8bf7\u6c42\u3002",(0,r.kt)("p",null,"\u9009\u62e9 Cilium CNI \u5e76\u4e3a\u65b0\u96c6\u7fa4\u542f\u7528\u9879\u76ee\u7f51\u7edc\u9694\u79bb\u540e\uff0c\u914d\u7f6e\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"apiVersion: cilium.io/v2\nkind: CiliumNetworkPolicy\nmetadata:\n name: hn-nodes\n namespace: default\nspec:\n endpointSelector: {}\n ingress:\n - fromEntities:\n - remote-node\n")),(0,r.kt)("h2",{id:"\u5404\u4e2a\u7f51\u7edc\u63d2\u4ef6\u7684-cni-\u529f\u80fd"},"\u5404\u4e2a\u7f51\u7edc\u63d2\u4ef6\u7684 CNI \u529f\u80fd"),(0,r.kt)("p",null,"\u4e0b\u8868\u603b\u7ed3\u4e86 Rancher \u4e2d\u6bcf\u4e2a CNI \u7f51\u7edc\u63d2\u4ef6\u652f\u6301\u7684\u4e0d\u540c\u529f\u80fd\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u63d0\u4f9b\u5546"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7f51\u7edc\u6a21\u578b"),(0,r.kt)("th",{parentName:"tr",align:null},"\u8def\u7ebf\u5206\u53d1"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7f51\u7edc\u7b56\u7565"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7f51\u683c"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5916\u90e8\u6570\u636e\u5b58\u50a8"),(0,r.kt)("th",{parentName:"tr",align:null},"\u52a0\u5bc6"),(0,r.kt)("th",{parentName:"tr",align:null},"Ingress/Egress \u7b56\u7565"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Canal"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5c01\u88c5 (VXLAN)"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,r.kt)("td",{parentName:"tr",align:null},"K8s API"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Flannel"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5c01\u88c5 (VXLAN)"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,r.kt)("td",{parentName:"tr",align:null},"K8s API"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Calico"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5c01\u88c5\uff08VXLAN\uff0cIPIP\uff09\u6216\u672a\u5c01\u88c5"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"Etcd \u548c K8s API"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Weave"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5c01\u88c5"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cilium"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5c01\u88c5 (VXLAN)"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"Etcd \u548c K8s API"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,r.kt)("td",{parentName:"tr",align:null},"\u662f")))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u7f51\u7edc\u6a21\u578b\uff1a\u5c01\u88c5\u6216\u672a\u5c01\u88c5\u3002\u5982\u9700\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 ",(0,r.kt)("a",{parentName:"p",href:"#cni-%E4%BD%BF%E7%94%A8%E4%BA%86%E5%93%AA%E4%BA%9B%E7%BD%91%E7%BB%9C%E6%A8%A1%E5%9E%8B"},"CNI \u4e2d\u4f7f\u7528\u7684\u7f51\u7edc\u6a21\u578b"),"\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u8def\u7531\u5206\u53d1\uff1a\u4e00\u79cd\u5916\u90e8\u7f51\u5173\u534f\u8bae\uff0c\u7528\u4e8e\u5728\u4e92\u8054\u7f51\u4e0a\u4ea4\u6362\u8def\u7531\u548c\u53ef\u8fbe\u6027\u4fe1\u606f\u3002BGP \u53ef\u4ee5\u5e2e\u52a9\u8fdb\u884c\u8de8\u96c6\u7fa4 pod \u4e4b\u95f4\u7684\u7f51\u7edc\u3002\u6b64\u529f\u80fd\u5bf9\u4e8e\u672a\u5c01\u88c5\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u662f\u5fc5\u987b\u7684\uff0c\u5e76\u4e14\u901a\u5e38\u7531 BGP \u5b8c\u6210\u3002\u5982\u679c\u4f60\u60f3\u6784\u5efa\u8de8\u7f51\u6bb5\u62c6\u5206\u7684\u96c6\u7fa4\uff0c\u8def\u7531\u5206\u53d1\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u529f\u80fd\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u7f51\u7edc\u7b56\u7565\uff1aKubernetes \u63d0\u4f9b\u4e86\u5f3a\u5236\u6267\u884c\u89c4\u5219\u7684\u529f\u80fd\uff0c\u8fd9\u4e9b\u89c4\u5219\u51b3\u5b9a\u4e86\u54ea\u4e9b service \u53ef\u4ee5\u4f7f\u7528\u7f51\u7edc\u7b56\u7565\u8fdb\u884c\u76f8\u4e92\u901a\u4fe1\u3002\u8fd9\u662f\u4ece Kubernetes 1.7 \u8d77\u7a33\u5b9a\u7684\u529f\u80fd\uff0c\u53ef\u4ee5\u4e0e\u67d0\u4e9b\u7f51\u7edc\u63d2\u4ef6\u4e00\u8d77\u4f7f\u7528\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u7f51\u683c\uff1a\u5141\u8bb8\u5728\u4e0d\u540c\u7684 Kubernetes \u96c6\u7fa4\u95f4\u8fdb\u884c service \u4e4b\u95f4\u7684\u7f51\u7edc\u901a\u4fe1\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u5916\u90e8\u6570\u636e\u5b58\u50a8\uff1a\u5177\u6709\u6b64\u529f\u80fd\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u9700\u8981\u4e00\u4e2a\u5916\u90e8\u6570\u636e\u5b58\u50a8\u6765\u5b58\u50a8\u6570\u636e\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u52a0\u5bc6\uff1a\u5141\u8bb8\u52a0\u5bc6\u548c\u5b89\u5168\u7684\u7f51\u7edc\u63a7\u5236\u548c\u6570\u636e\u5e73\u9762\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Ingress/Egress \u7b56\u7565\uff1a\u5141\u8bb8\u4f60\u7ba1\u7406 Kubernetes \u548c\u975e Kubernetes \u901a\u4fe1\u7684\u8def\u7531\u63a7\u5236\u3002"))),(0,r.kt)("h2",{id:"cni-\u793e\u533a\u4eba\u6c14"},"CNI \u793e\u533a\u4eba\u6c14"),(0,r.kt)("p",null,"\u4e0b\u8868\u603b\u7ed3\u4e86\u4e0d\u540c\u7684 GitHub \u6307\u6807\uff0c\u8ba9\u4f60\u4e86\u89e3\u6bcf\u4e2a\u9879\u76ee\u7684\u53d7\u6b22\u8fce\u7a0b\u5ea6\u548c\u6d3b\u52a8\u3002\u6570\u636e\u6536\u96c6\u4e8e 2022 \u5e74 1 \u6708\u3002"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u63d0\u4f9b\u5546"),(0,r.kt)("th",{parentName:"tr",align:null},"\u9879\u76ee"),(0,r.kt)("th",{parentName:"tr",align:null},"Stars"),(0,r.kt)("th",{parentName:"tr",align:null},"Forks"),(0,r.kt)("th",{parentName:"tr",align:null},"Contributors"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Canal"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/projectcalico/canal"},"https://github.com/projectcalico/canal")),(0,r.kt)("td",{parentName:"tr",align:null},"679"),(0,r.kt)("td",{parentName:"tr",align:null},"100"),(0,r.kt)("td",{parentName:"tr",align:null},"21")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Flannel"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/flannel-io/flannel"},"https://github.com/flannel-io/flannel")),(0,r.kt)("td",{parentName:"tr",align:null},"7k"),(0,r.kt)("td",{parentName:"tr",align:null},"2.5k"),(0,r.kt)("td",{parentName:"tr",align:null},"185")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Calico"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/projectcalico/calico"},"https://github.com/projectcalico/calico")),(0,r.kt)("td",{parentName:"tr",align:null},"3.1k"),(0,r.kt)("td",{parentName:"tr",align:null},"741"),(0,r.kt)("td",{parentName:"tr",align:null},"224")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Weave"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/weaveworks/weave/"},"https://github.com/weaveworks/weave/")),(0,r.kt)("td",{parentName:"tr",align:null},"6.2k"),(0,r.kt)("td",{parentName:"tr",align:null},"635"),(0,r.kt)("td",{parentName:"tr",align:null},"84")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cilium"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/cilium/cilium"},"https://github.com/cilium/cilium")),(0,r.kt)("td",{parentName:"tr",align:null},"10.6k"),(0,r.kt)("td",{parentName:"tr",align:null},"1.3k"),(0,r.kt)("td",{parentName:"tr",align:null},"352")))),(0,r.kt)("br",null),(0,r.kt)("h2",{id:"\u4f7f\u7528\u54ea\u4e2a-cni-\u63d2\u4ef6"},"\u4f7f\u7528\u54ea\u4e2a CNI \u63d2\u4ef6\uff1f"),(0,r.kt)("p",null,"\u8fd9\u53d6\u51b3\u4e8e\u4f60\u7684\u9879\u76ee\u9700\u6c42\u3002\u5404\u4e2a\u63d0\u4f9b\u5546\u90fd\u6709\u4e0d\u540c\u7684\u529f\u80fd\u548c\u9009\u9879\u3002\u6ca1\u6709\u4e00\u4e2a\u63d0\u4f9b\u5546\u53ef\u4ee5\u6ee1\u8db3\u6240\u6709\u7528\u6237\u7684\u9700\u6c42\u3002"),(0,r.kt)("p",null,"Canal \u662f\u9ed8\u8ba4\u7684 CNI \u7f51\u7edc\u63d2\u4ef6\u3002\u5bf9\u4e8e\u5927\u591a\u6570\u7528\u4f8b\uff0c\u6211\u4eec\u63a8\u8350\u4f60\u4f7f\u7528\u5b83\u3002\u5b83\u4f7f\u7528 Flannel \u4e3a\u5bb9\u5668\u63d0\u4f9b\u5c01\u88c5\u7f51\u7edc\uff0c\u540c\u65f6\u6dfb\u52a0 Calico \u7f51\u7edc\u7b56\u7565\uff0c\u53ef\u4ee5\u5728\u7f51\u7edc\u65b9\u9762\u63d0\u4f9b\u9879\u76ee/\u547d\u540d\u7a7a\u95f4\u9694\u79bb\u3002"),(0,r.kt)("h2",{id:"\u5982\u4f55\u914d\u7f6e-cni-\u7f51\u7edc\u63d2\u4ef6"},"\u5982\u4f55\u914d\u7f6e CNI \u7f51\u7edc\u63d2\u4ef6\uff1f"),(0,r.kt)("p",null,"\u5982\u9700\u4e86\u89e3\u5982\u4f55\u4e3a\u4f60\u7684\u96c6\u7fa4\u914d\u7f6e\u7f51\u7edc\u63d2\u4ef6\uff0c\u8bf7\u53c2\u9605",(0,r.kt)("a",{parentName:"p",href:"/zh/v2.6/reference-guides/cluster-configuration/rancher-server-configuration/rke1-cluster-configuration"},"\u96c6\u7fa4\u9009\u9879"),"\u3002\u6709\u5173\u66f4\u9ad8\u7ea7\u7684\u914d\u7f6e\u9009\u9879\uff0c\u8bf7\u53c2\u9605\u6709\u5173\u4f7f\u7528",(0,r.kt)("a",{parentName:"p",href:"/zh/v2.6/reference-guides/cluster-configuration/rancher-server-configuration/rke1-cluster-configuration#rke-%E9%9B%86%E7%BE%A4%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8F%82%E8%80%83"},"\u914d\u7f6e\u6587\u4ef6"),"\u548c",(0,r.kt)("a",{parentName:"p",href:"https://rancher.com/docs/rke/latest/en/config-options/add-ons/network-plugins/"},"\u7f51\u7edc\u63d2\u4ef6"),"\u9009\u9879\u6765\u914d\u7f6e\u96c6\u7fa4\u7684\u8bf4\u660e\u3002"))}k.isMDXComponent=!0},48972:function(e,t,n){t.Z=n.p+"assets/images/calico-diagram-3e0d002feecad5d7ecde73da073b95be.svg"},85423:function(e,t,n){t.Z=n.p+"assets/images/calico-logo-876c7e5f55ffe5a9feb68c8eac7f6f09.png"},24313:function(e,t,n){t.Z=n.p+"assets/images/canal-diagram-098d93441385aab94e0a23e0a8cdd7b0.png"},32899:function(e,t,n){t.Z=n.p+"assets/images/canal-logo-59b1e2e7cb6ef69952216bc6c8778fea.png"},5820:function(e,t,n){t.Z=n.p+"assets/images/cilium-logo-74a25c5fe67b4da4ce752dbf4ffbf11d.png"},37685:function(e,t,n){t.Z=n.p+"assets/images/cni-logo-4fc06f259de435a65ca64a52bd719a96.png"},83754:function(e,t,n){t.Z=n.p+"assets/images/encapsulated-network-0c75db46568d5b2636dad4a8c28d3cc4.png"},16930:function(e,t,n){t.Z=n.p+"assets/images/flannel-diagram-5d842974de10ad38569f46e70836f11f.png"},13688:function(e,t,n){t.Z=n.p+"assets/images/flannel-logo-72cb4d5923f7a0be32a1148dc78d5c50.png"},70689:function(e,t,n){t.Z=n.p+"assets/images/unencapsulated-network-b87922f280aa17322e6485b81855dd4a.png"},11636:function(e,t){t.Z="data:image/png;base64,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"}}]);