部署和配置 StackGres

您需要创建 Oracle Container Engine for Kubernetes 集群,在其上部署 StackGres,然后创建数据库。

开始之前,您需要设置 OCI 体系结构。以下说明假定除了 Kubernetes 集群和数据库已准备就绪之外,您还有其他所有内容。

创建 Kubernetes 集群

在区间中为 StackGres 部署创建 Oracle Cloud Infrastructure Container Engine for Kubernetes 实例。

  1. 从 OCI 控制台主菜单中,选择开发人员服务
  2. 容器和构件下,选择 Kubernetes 集群 (OKE)
    区间中的任何现有集群都列在表中。
  3. 单击 Create cluster(创建群集)按钮。
  4. 创建集群对话框中,选择快速创建并单击提交
    快速创建选项将创建此部署所需的所有网络资源,包括子网。如果您已配置子网,则可以改用定制创建选项。
  5. 创建集群(快速) 向导中,提供以下字段和选项的值,然后单击下一步
    例如,这些是小型 (3 CPU) 部署的一些典型值:
  6. 复查步骤中,要创建的资源页提供集群、网络和节点池信息的概要。请仔细查看显示的所有信息,如果信息正确,请单击创建集群
    此时将显示“创建集群和关联的网络资源”页。将列出要创建的每个组件,其中包含自动处理完成时更新的状态。该过程通常需要大约 15 分钟才能完成。
Kubernetes 集群创建完成后,可以继续在集群上安装 StackGres。

使用 Cloud Shell 安装 StackGres

使用 Oracle Cloud Infrastructure Cloud Shell 命令行界面在新的 Kubernetes 集群上安装 StackGres。

  1. 在 OCI 控制台中,导航到 Kubernetes 集群的集群详细信息页面。以下步骤需要此处显示的信息。
  2. 在 OCI 控制台的顶部栏中,单击“区域”下拉菜单旁边的代码图标,然后选择云 Shell
    几分钟后,CLI 将打开。控制台和提示显示您的用户名、租户、区域和主文件夹。
  3. 使用 create-kubeconfig 命令和您的区域集群详细信息页上显示的集群 ID 值:
    oci ce cluster create-kubeconfig --cluster-id your_cluster_id --file $HOME/.kube/config --region your_region --token-version 2.0.0 --kube-endpoint PUBLIC_ENDPOINT
  4. 验证 Kubernetes 节点是否已正确启动:
    kubectl get nodes
    控制台输出应列出每个节点的 IP 地址和状态为就绪
  5. 验证 pod 是否也正确启动:
    kubectl get pods -A
    控制台输出应将 kube 系统名称空间中的所有 pod 列出为 Running
  6. 使用软件包安装添加 StackGres 安装系统信息库:
    helm repo add stackgres-charts https://stackgres.io/downloads/stackgres-k8s/stackgres/helm/
    控制台输出应指示已成功添加系统信息库。
  7. 运行安装:
    helm install --create-namespace --namespace stackgres stackgres-operator stackgres-charts/stackgres-operator
    安装大约需要五分钟才能运行。
控制台将输出一条消息,指出 STATUS 处于 deployed 状态,后跟一系列有用的命令,包括带有 StackGres 操作员 UI 的 URI 的命令以及用于生成管理用户名和口令的 get secret 命令。将所有此输出复制到文本文件以供以后参考。

配置服务

使用 Oracle Cloud Infrastructure Cloud Shell 配置 StackGres 服务,然后登录到 StackGres UI。

  1. 在 Cloud Shell 中,通过将“类型”字段从 ClusterIP 更改为 LoadBalancer 来编辑服务配置文件:
    kubectl edit services stackgres-restapi -n stackgres
    控制台将配置文件装入默认文本编辑器,如 vi。在 spec: 下,找到 type: 字段并将值更改为 LoadBalancer 。在 vi 中,按 Esc 键,然后键入 :wq 保存文件。
  2. 获取服务的引用名称:
    kubectl get pods -n stackgres –w
    复制 stackgres-restapi pod 的名称。例如,stackgres-restapi-684df1e9b-gx455
  3. 公开服务以访问 Web 控制台:
    kubectl expose pod your_stackgres-restapi-pod -n stackgres --type LoadBalancer --port 9443 --name admin-console
    控制台输出应为 service/admin-console 公开
  4. 获取服务的 IP 和访问端口:
    kubectl get services -n stackgres –w
    控制台输出将包含一行用于管理控制台。复制外部 IP 和端口的值。您可以使用 url 访问控制台 https://<external-ip>:<port>/admin/index.html
  5. 使用运行安装时提供的 get Secret 命令为控制台生成用户名和密码:

    kubectl get secret -n stackgres stackgres-restapi --template '{{ printf "username = %s\n" (.data.k8sUsername | base64decode) }}'

    kubectl get secret -n stackgres stackgres-restapi --template '{{ printf "password = %s\n" (.data.clearPassword | base64decode) }}'

    复制用户名和密码。
  6. 登录 StackGres 控制台。使用您在步骤 4 中创建的 URL 导航到控制台,然后使用您在步骤 5 中生成的用户名和密码登录。
  7. 在“选择名称空间”下拉列表中,选择在安装期间创建的名称空间。例如, stackgres
您可以从 StackGres 控制台管理 StackGres 实例。

创建数据库

使用 StackGres 控制台创建和访问 StackGres 集群中的数据库。

  1. 从 StackGres 控制台中,选择 StackGres Clusters 。然后单击表中的链接创建新的?
  2. 在“创建集群”向导中,输入 PostgreSQL 数据库实例的值,然后单击创建集群。例如,要为高可用性生产环境创建三个实例:
    创建群集后,它们将显示在控制台中,状态为活动
  3. 单击查看连接信息可查看一些有用的命令,包括用于连接到 Cloud Shell 中的 Postgres 客户端 psql 的 kubectl 命令。例如:
    kubectl -n stackgres exec -ti prod-0 -c postgres-util – psql
您的 PostgreSQL 部署现已在 OCI 上启动并运行。