Skip to main content

网络插件

RKE 提供了以下网络插件,作为附加组件部署:

  • Flannel
  • Calico
  • Canal
  • Weave

在你启动集群后,你不能改变你的网络供应商。因此,仔细选择你要使用的网络供应商,因为 Kubernetes 不允许在网络供应商之间切换。一旦用网络提供商创建了一个集群,改变网络提供商将需要你拆掉整个集群及其所有的应用程序。

修改默认插件#

默认情况下,RKE 使用的网络插件是canal。如果你想使用另一个网络插件,你需要在cluster.yml中指定在集群级别启用哪个网络插件。

# 设置flannel网络插件
network:
plugin: flannel

网络插件使用的镜像在system_images中。每个 Kubernetes 版本,都有与每个网络插件相关联的默认镜像,但这些镜像可以通过更改system_images中的镜像标签来覆盖。

禁用网络插件 Deployment#

您可以将集群配置中的 plugin设置为none,禁用默认的 网络插件 Deployment。

network:
plugin: none

网络插件选项#

除了可以用来部署网络插件的不同镜像外,有些网络插件还支持配置其他选项。

Canal 插件选项#

network:
plugin: canal
options:
canal_iface: eth1
canal_flannel_backend_type: vxlan
canal_autoscaler_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+
canal_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+

Canal 接口#

通过设置canal_iface,可以配置主机间通信使用的接口。 canal_flannel_backend_type选项允许你指定要使用的flannel backend的类型。默认情况下使用vxlan后端。

Canal 网络插件容忍度#

从 v1.2.4 开始提供

配置的容忍度适用于calico-kube-controllers部署。

network:
plugin: canal
tolerations:
- key: "node.kubernetes.io/unreachable"
operator: "Exists"
effect: "NoExecute"
tolerationseconds: 300
- key: "node.kubernetes.io/not-ready"
operator: "Exists"
effect: "NoExecute"
tolerationseconds: 300

要检查 calico-kube-controllers部署上的应用容忍度,请使用以下命令。

kubectl -n kube-system get deploy calico-kube-controllers -o jsonpath='{.spec.template.spec.tolerations}'

Flannel 插件选项#

network:
plugin: flannel
options:
flannel_iface: eth1
flannel_backend_type: vxlan
flannel_autoscaler_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+
flannel_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+

Flannel 接口#

通过设置flannel_iface,可以配置主机间通信使用的接口。 flannel_backend_type选项允许你指定要使用的flannel backend的类型。默认情况下使用vxlan后端。

Calico 插件选项#

network:
plugin: calico
options:
calico_cloud_provider: aws
calico_autoscaler_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+
calico_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+

Calico 云服务提供商#

Calico 目前只支持 2 个云提供商,AWS 或 GCE,可以使用calico_cloud_provider进行设置。

可选值

  • aws
  • gce

Canal 网络插件容忍度#

从 v1.2.4 开始提供

配置的容忍度适用于calico-kube-controllers部署。

network:
plugin: canal
tolerations:
- key: "node.kubernetes.io/unreachable"
operator: "Exists"
effect: "NoExecute"
tolerationseconds: 300
- key: "node.kubernetes.io/not-ready"
operator: "Exists"
effect: "NoExecute"
tolerationseconds: 300

要检查 calico-kube-controllers部署上的应用容忍度,请使用以下命令。

kubectl -n kube-system get deploy calico-kube-controllers -o jsonpath='{.spec.template.spec.tolerations}'

Weave 插件选项#

network:
plugin: weave
options:
weave_autoscaler_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+
weave_priority_class_name: system-cluster-critical # Available as of RKE v1.2.6+
weave_network_provider:
password: "Q]SZ******oijz"

Weave 加密#

Weave 加密可以通过向网络提供商配置传递一个字符串密码来启用。

自定义网络插件#

可以通过 RKE 的用户自定义插件功能来添加自定义网络插件。可以在 addons字段中添加网络插件的集群的加载清单,如自定义的网络插件示例所示。

Last updated on by yzeng25