Red Hat OpenShift 集成
Red Hat OpenShift 是一个混合云平台,可提供增强的安全功能并更好地控制 Kubernetes 群集。此外,OpenShift 还提供了 OperatorHub,它是一个满足 OpenShift 要求的操作器编录。
有关 OpenShift 平台的全面说明,请参阅 Red Hat OpenShift 官方文档。
注意
如果 Kubernetes 群集位于云中或托管服务上,则每个 Vertica 节点必须在同一可用性区域中运行。具有安全上下文约束的增强安全性
OpenShift 要求每个部署都使用安全上下文约束 (SCC) 来实施增强的安全措施。SCC 使管理员可以控制群集中 pod 的权限。例如,您可以在多用户环境中限制特定用户的命名空间访问权限。
默认 SCC
OpenShift 提供默认 SCC,无需手动配置即可提供一系列安全功能。基于 Kubernetes 的 Vertica 支持privileged
SCC,这是最严格的默认 SCC。privileged
SCC 允许 Vertica 将用户和组 ID 分配给群集中的 Kubernetes 对象。此外,privileged
SCC 具有下列可用于在 pod 之间启用内部 SSH 通信的 Linux 功能:
-
SYS_CHROOT
-
AUDIT_WRITE
anyuid-extra 自定义 SCC
Vertica 提供了一个名为 anyuid-extra
的自定义 SCC,您可以通过创建该自定义 SCC 来扩展 anyuid
SCC。如果您希望 Vertica 的运行环境比privileged
SSC 允许的环境宽松,请使用 anyuid-extra
SCC。例如,如果您无权授予privileged
SCC,则可以创建 anyuid-extra
SCC 并将其添加到您的 Vertica 工作负载服务帐户。
有关安装的详细信息,请参阅使用 anyuid-extra 创建自定义 SCC。
安装操作器
VerticaDB 操作器是由 Vertica 维护的社区操作器。OperatorHub 中可用的每个操作器都必须遵守 Operator Lifecycle Manager (OLM) 定义的要求。为了满足这些要求,供应商必须为每个操作器提供群集服务版本 (CSV) 清单。Vertica 为 OpenShift OperatorHub 中可用的每个 VerticaDB 操作器版本提供一个 CSV。
VerticaDB 操作器支持 OpenShift 4.8 及更高版本。
您必须拥有 OpenShift 帐户的群集管理员权限才能安装 VerticaDB 操作器。有关详细的安装说明,请参阅 OpenShift 文档。
在多个 OpenShift 命名空间中安装操作器
默认情况下,OpenShift 用户界面 (UI) 将 VerticaDB 操作器安装在单个 OpenShift 命名空间中。在某些情况下,您可能需要操作器跨多个 OpenShift 命名空间监视和管理资源对象。
先决条件:
以下步骤将 VerticaDB 操作器添加到其他命名空间:
-
创建 YAML 格式的 OperatorGroup 对象文件。以下示例创建了名为 operatorgroup.yaml 的文件:
apiVersion: operators.coreos.com/v1alpha2 kind: OperatorGroup metadata: name: vertica-operatorgroup namespace: $NAMESPACE spec: targetNamespaces: - $NAMESPACE
在前面的命令中,
$NAMESPACE
是您要安装操作器的命名空间。 -
创建 OperatorGroup 对象:
$ oc apply -f operatorgroup.yaml
-
创建 YAML 格式的 Subscription 对象文件,以订阅操作器命名空间。以下示例创建了名为 sub.yaml 的文件:
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: verticadb-operator namespace: $NAMESPACE spec: channel: stable name: verticadb-operator source: community-operators sourceNamespace: openshift-marketplace
-
创建 Subscription 对象:
$ oc apply -f sub.yaml
创建 Subscription 对象后,OLM 能够识别该操作器。
-
使用
kubectl get
在单独的 shell 中查看安装进度:$ kubectl get -n $NAMESPACE clusterserviceversion -w --selector operators.coreos.com/verticadb-operator.$NAMESPACE
安装完成后,您可以从 UI 管理操作器。
使用 anyuid-extra 创建自定义 SCC
在创建操作器之前,您必须创建 anyuid-extra
SCC 并将其添加到您的 Vertica 工作负载服务帐户。Vertica anyuid-extra
SCC 清单可在 Vertica GitHub 存储库中获得。
-
使用
anyuid-extra
YAML 格式的清单创建自定义 SCC:$ kubectl apply -f https://github.com/vertica/vertica-kubernetes/releases/download/v1.4.0/custom-scc.yaml
有关详细信息,请参考 OpenShift 文档。
-
执行以下命令将自定义 SCC 添加到您的 Vertica 工作负载服务帐户:
$ oc adm policy add-scc-to-user -n $NAMESPACE -z verticadb-operator-controller-manager anyuid-extra
在前面的命令中,
$NAMESPACE
是安装了操作器的命名空间。
默认情况下,anyuid-extra
的优先级设置为 10,因此会自动选择该 SCC(而非择默认的privileged
SCC)。有关优先级设置的更多详细信息,请参阅 OpenShift 文档。
在 OpenShift 上部署 Vertica
安装 VerticaDB 操作器并将受支持的 SCC 添加到您的 Vertica 工作负载服务帐户后,您可以在 OpenShift 上部署 Vertica。
有关在受支持的环境中安装 OpenShift 的详细信息,请参阅 OpenShift 容器平台安装概述。
在 OpenShift 上部署 Vertica 之前,请创建所需的 Secret 以存储敏感信息。有关 Secret 和 OpenShift 的详细信息,请参阅 OpenShift 文档。有关部署 Vertica 自定义资源的指导,请参阅创建自定义资源。