Skip to main content

自定义插件

除了网络插件ingress controllers 插件DNS 插件Metrics Server 插件之外,RKE 支持添加用户自定义插件。

添加自定义插件方式有两种:

说明:当使自定义的附加组件时,必须为你的所有资源定义一个命名空间,否则它们会进入kube-system命名空间。

RKE 将 YAML 清单作为 configmap 上传至 Kubernetes 集群。然后,它运行一个 Kubernetes job,挂载 configmap 并使用kubectl apply -f部署插件。

RKE 只有在多次使用rke up时才会添加额外的插件。当使用不同的附加组件列表进行rke up时,RKE 不支持删除集群附加组件。

从 v0.1.8 开始,RKE 会更新同名的插件。

在 v0.1.8 之前,使用kubectl edit更新任何插件。

在 cluster.yaml 文件中嵌入插件#

如果要在 YAML 文件中直接定义一个插件,一定要使用 YAML 的 block indicator|-,因为addons指令是一个多行字符串选项。可以用---指令将多个 YAML 资源定义分开来指定。

addons: |-
---
apiVersion: v1
kind: Pod
metadata:
name: my-nginx
namespace: default
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80

引用插件的 YAML 文件#

使用addons_include指令,提供自定义插件引用的本地文件路径或 URL 地址。

addons_include:
- https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/operator.yaml
- https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/cluster.yaml
- /opt/manifests/example.yaml
- ./nginx.yaml
Last updated on by yzeng25