高端网站设计 新鸿儒,禁用免费app网页,简洁风网站,做网站的封面图片哪里才有Kubernetes从入门到精通系列之十八#xff1a;使用 Operator Lifecycle Manager OLM 安装operator 一、先决条件二、安装operator三、示例#xff1a;安装最新版本的 Operator四、示例#xff1a;安装特定版本的 Operator 从运算符目录中安装运算符
通过 CatalogSource 将 … Kubernetes从入门到精通系列之十八使用 Operator Lifecycle Manager OLM 安装operator 一、先决条件二、安装operator三、示例安装最新版本的 Operator四、示例安装特定版本的 Operator 从运算符目录中安装运算符
通过 CatalogSource 将 Operator 目录加载到集群后可以通过创建特定通道的订阅来安装 Operator。
一、先决条件
在将运算符安装到命名空间之前需要创建一个针对运算符计划监视的命名空间的 OperatorGroup以便在这些命名空间中为运算符生成所需的 RBAC。
注意OperatorGroup 所针对的命名空间必须与 Operator 包的 ClusterServiceVersion 中指定的 installMode 一致。
kubectl get packagemanifest operator-name -o jsonpath{.status.channels[0].currentCSVDesc.installModes}注意本文档示例中使用全局 OperatorGroup 来安装算子。
二、安装operator
要安装 Operator只需为Operator 创建订阅即可。这表示从 CatalogSource 订阅此 Operator 的可用版本流的意图
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:name: name-of-your-subscriptionnamespace: namespace-you-want-your-operator-installed-in
spec:channel: channel-you-want-to-subscribe-toname: name-of-your-operatorsource: name-of-catalog-operator-is-part-ofsourceNamespace: namespace-that-has-cataloginstallPlanApproval: Automatic/ManualSubscription 对象创建一个 InstallPlan它要么自动批准如果 sub.spec.installPlanApproval自动要么需要批准如果 sub.spec.installPlanApproval手动然后将 Operator 安装在您想要的命名空间中。
三、示例安装最新版本的 Operator
如果想要从命名空间 olm 中名为 my-catalog 的目录在集群范围内的命名空间 foo 中安装名为 my-operator 的操作符即 installModes:AllNamespaces并且想要订阅稳定频道
创建一个全局 OperatorGroup选择所有命名空间
$ cat og.yamlapiVersion: operators.coreos.com/v1kind: OperatorGroupmetadata:name: my-groupnamespace: foo$ kubectl apply og.yamloperatorgroup.operators.coreos.com/my-group created然后为operator创建订阅
$ cat sub.yamlapiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:name: sub-to-my-operatornamespace: foo
spec:channel: stablename: my-operatorsource: my-catalogsourceNamespace: olminstallPlanApproval: Manual$ kubectl apply -f sub.yaml
subscription.operators.coreos.com/sub-to-my-operator created由于installPlanApproval设置为Manual所以我们需要手动进去审批InstallPlan
$ kubectl get ip -n fooNAME CSV APPROVAL APPROVED
install-nlwcw my-operator.v0.9.2 Automatic false$ kubectl edit ip install-nlwcw -n foo然后将spec.approved从false更改为true。
这应该会在 foo 命名空间中启动操作员的 ClusterServiceVersion随后操作员 pod 将启动。
为了确保 Operator 安装成功请检查 ClusterServiceVersion 以及安装它的命名空间中的 Operator 部署。
$ kubectl get csv -n namespace-operator-was-installed-inNAME DISPLAY VERSION REPLACES PHASE
name-of-csv operator-name version csv-of-previous-version Succeeded
...
$ kubectl get deployments -n namespace-operator-was-installed-in
NAME READY UP-TO-DATE AVAILABLE AGE
name-of-your-operator 1/1 1 1 9m48s如果 ClusterServiceVersion 无法显示或未达到成功阶段请检查故障排除文档以调试您的安装。
四、示例安装特定版本的 Operator
如果想安装特定版本的 Operator请在订阅中指定startingCSV 属性如下所示
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:name: sub-to-my-operatornamespace: foo
spec:channel: stablename: my-operatorsource: my-catalogsourceNamespace: olminstallPlanApproval: ManualstartingCSV: 1.1.0请注意批准也已设置为手动以便在 1.1.0 碰巧被我的目录中的较新版本取代时OLM 无法立即更新Operator。按照上一示例中的说明批准此订阅的初始安装计划以便允许安装 1.1.0。
如果是将已安装的 Operator 固定到特定版本 1.1.0则无需执行任何操作。批准初始安装计划后OLM 将安装Operator 1.1.0 版本并保持该版本。当在目录中发现更新时OLM 将等待除非手动批准更新否则不会继续。