RKE 插件
RKE 支持在集群 yaml 文件中配置插件选项,这些插件用于部署多种集群组件,包括:
这些插件的镜像文件可以在system_images中找到。对于每个 Kubernetes 版本,都有与每个插件相关联的默认镜像版本,但这些镜像可以通过更改system_images中的镜像来覆盖。
注意:
- 除了这些 RKE 已有的插件外,您在集群部署完成,部署自定义插件,详情请参考自定义插件。
- 从 v0.1.8 开始,如果插件名称相同,RKE 会执行更新。
- 在 v0.1.8 之前,您需要运行
kubectl edit命令更新插件。
关键插件与非关键插件
从 v0.1.7 开始,插件被分为关键插件与非关键插件:
- 关键插件: 如果部署失败,会导致 RKE 报错。
- 非关键插件: 如果部署失败,RKE 会在日志中记录一条告警信息,并继续部署其他插件。
当前只有网络插件是关键插件,其他插件都是非关键插件。
插件部署 job
RKE 使用 Kubernetes job 的方式部署插件。在某些情况下,部署插件的时间会比预期时间长。从 v0.1.7 开始,RKE 提供集群层级的addon_job_timeout选项,以检查 job 的连接是否超时,默认值为 30,单位是秒。
addon_job_timeout: 30
插件位置
v0.2.3 或更新版本可用
| 组件 | nodeAffinity nodeSelectorTerms | nodeSelector | Tolerations |
|---|---|---|---|
| Calico | beta.kubernetes.io/os:NotIn:windows | none | - NoSchedule:Exists- NoExecute:Exists- CriticalAddonsOnly:Exists |
| Flannel | beta.kubernetes.io/os:NotIn:windows | none | - operator:Exists |
| Canal | beta.kubernetes.io/os:NotIn:windows | none | - NoSchedule:Exists- NoExecute:Exists- CriticalAddonsOnly:Exists |
| Weave | beta.kubernetes.io/os:NotIn:windows | none | - NoSchedule:Exists- NoExecute:Exists |
| CoreDNS | node-role.kubernetes.io/worker:Exists | beta.kubernetes.io/os:linux | - NoSchedule:Exists- NoExecute:Exists- CriticalAddonsOnly:Exists |
| kube-dns | - beta.kubernetes.io/os:NotIn:windows- node-role.kubernetes.io/worker Exists | none | - NoSchedule:Exists- NoExecute:Exists- CriticalAddonsOnly:Exists |
| nginx-ingress | - beta.kubernetes.io/os:NotIn:windows- node-role.kubernetes.io/worker Exists | none | - NoSchedule:Exists- NoExecute:Exists |
| metrics-server | - beta.kubernetes.io/os:NotIn:windows- node-role.kubernetes.io/worker Exists | none | - NoSchedule:Exists- NoExecute:Exists |
容忍度
从 v1.2.4 开始提供
可根据每个附加组件配置容忍度,并适用于部署资源。已配置的容忍度将取代现有的容忍度,因此请确保配置了所有需要的容忍度。请参阅具体的附加组件文档页面了解更多信息。