3.2.2. 使用 CLI 部署 Operator
本节中的步骤演示了如何使用 OpenShift 命令行界面(CLI)在 OpenShift 项目中部署用于 AMQ Broker 7.8 的 Operator 的最新版本。
先决条件
- 您必须已经为 Operator 部署准备了 OpenShift 项目。请参阅 第 3.2.1 节 “获取 Operator 代码”。
- 从 AMQ Broker 7.3 开始,您可以使用新版本的红帽生态系统目录访问容器镜像。此新版本的 registry 要求您成为经过身份验证的用户,然后才能访问镜像。在按照本节中的步骤进行操作前,您必须首先完成 Red Hat Container Registry 身份验证 中描述的步骤。
如果您要使用持久性存储部署代理,且没有 OpenShift 集群中的容器原生虚拟化存储,则需要手动置备持久性卷(PV),并确保它们可以被 Operator 声明。例如,如果要创建带有持久性存储(即,通过设置自定义资源中的
persistenceEnabled=true
)的两个代理集群,则需要有两个 PV 可用。默认情况下,每个代理实例都需要 2 GiB 存储。如果您在自定义资源中指定
persistenceEnabled=false
,则部署的代理 将使用临时存储。临时存储意味着每次重启代理 Pod 时,任何现有数据都会丢失。有关置备持久性存储的更多信息,请参阅:
步骤
在 OpenShift 命令行界面(CLI)中,以集群管理员身份登录 OpenShift。例如:
oc login -u system:admin
$ oc login -u system:admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到您之前为 Operator 部署准备的项目。例如:
oc project <project_name>
$ oc project <project_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到之前在之前提取 Operator 安装存档时创建的目录。例如:
cd ~/broker/operator/amq-broker-operator-7.8.5-ocp-install-examples
$ cd ~/broker/operator/amq-broker-operator-7.8.5-ocp-install-examples
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 Operator 中包含的 CRD。在部署和启动 Operator 之前,您必须在 OpenShift 集群中安装 CRD。
部署主代理 CRD。
oc create -f deploy/crds/broker_activemqartemis_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemis_crd.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署地址 CRD。
oc create -f deploy/crds/broker_activemqartemisaddress_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemisaddress_crd.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 scaledown controller CRD。
oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将与红帽生态系统目录中用于身份验证的帐户关联的 pull secret 与 OpenShift 项目
的默认
、deployer
和builder
服务帐户链接。oc secrets link --for=pull default <secret_name> oc secrets link --for=pull deployer <secret_name> oc secrets link --for=pull builder <secret_name>
$ oc secrets link --for=pull default <secret_name> $ oc secrets link --for=pull deployer <secret_name> $ oc secrets link --for=pull builder <secret_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您下载并提取的 Operator 归档的部署目录中,打开
operator.yaml
文件。注意在
operator.yaml
文件中,Operator 使用一个由 安全 Hash Algorithm (SHA)值表示的镜像。注释行以数字符号(#
)符号开头,表示 SHA 值对应于特定的容器镜像标签。部署 Operator。
oc create -f deploy/operator.yaml
$ oc create -f deploy/operator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 OpenShift 项目中,Operator 会启动新的 Pod。
在 OpenShift Container Platform Web 控制台中,Operator Pod 的 Events 选项卡中的信息确认 OpenShift 已部署了 Operator 镜像,已将新容器分配给 OpenShift 集群中的某个节点,并且已启动了新的容器。
另外,如果您点击 Pod 中的 Logs 选项卡,输出应包括以下行:
... {"level":"info","ts":1553619035.8302743,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemisaddress-controller"} {"level":"info","ts":1553619035.830541,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemis-controller"} {"level":"info","ts":1553619035.9306898,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemisaddress-controller","worker count":1} {"level":"info","ts":1553619035.9311671,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemis-controller","worker count":1}
... {"level":"info","ts":1553619035.8302743,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemisaddress-controller"} {"level":"info","ts":1553619035.830541,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemis-controller"} {"level":"info","ts":1553619035.9306898,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemisaddress-controller","worker count":1} {"level":"info","ts":1553619035.9311671,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemis-controller","worker count":1}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的输出确认新部署的 Operator 与 Kubernetes 通信,代理和寻址的控制器正在运行,并且这些控制器已启动了一些 worker。
建议您仅在给定的 OpenShift 项目中部署 AMQ Broker Operator 的单个实例。不建议将 Operator 部署的 spec.replicas
属性设置为大于 1
的值,或者 不要 在同一项目中多次部署 Operator。
其他资源
- 有关安装使用 OperatorHub 图形界面的 AMQ Broker Operator 的替代方法,请参阅 第 3.3 节 “使用 OperatorHub 安装 Operator”。