5 - 自定义插件
除了network plug- on和ingress 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资源定义分隔开来,从而指定它们。
addons: |-
addons: |-
apiVersion: v1
kind: Pod
metadata:
name: my-nginx
namespace: default
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80</code></pre>
二、引用加载项的YAML文件
使用
addons_include
指令来引用自定义的附加组件的本地yaml文件或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