5 - 自定义插件


除了network plug- oningress controllers之外,您还可以定义在部署Kubernetes集群之后希望部署的任何附加组件。

可以通过两种方式指定加载项:

Note: 当使用自定义附加组件时,必须所有资源定义一个名称空间,否则它们将最终部署在kube-system命名空间中。

RKE将YAML清单作为configmap上传到Kubernetes集群。然后,它运行一个Kubernetes job,该job挂载configmap并使用kubectl —kubeconfig=kube_configxxx.yml apply -f部署附加组件。

从v0.1.8开始,如果加载项名称相同,则RKE将更新加载项。在v0.1.8之前,通过使用kubectl —kubeconfig=kube_configxxx.yml edit更新加载项

一、在线附加组件

要在YAML文件中直接定义一个附加组件,请确保使用YAML的块指示器|-,因为addons指令是一个多行字符串选项。可以使用——指令将多个YAML资源定义分隔开来,从而指定它们。

  1. addons: |-

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: my-nginx
  5. namespace: default
  6. spec:
  7. containers:
  8. - name: my-nginx
  9. image: nginx
  10. ports:
  11. - containerPort: 80</code></pre>

二、引用加载项的YAML文件

使用addons_include指令来引用自定义的附加组件的本地yaml文件或URL。

  1. addons_include:
  2. - https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/operator.yaml
  3. - https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/cluster.yaml
  4. - /opt/manifests/example.yaml
  5. - ./nginx.yaml