搭建Kubernetes版的PegaSystems环境

概要

以下是搭建基于Kubernetes(以下简称k8s)的Pega Systems运行环境(Pega + PostgreSQL)的步骤。
由于按照官方的Helm Chart页面上的步骤无法正常工作,因此本文参考了官方步骤并进行了调整。
此外,在下面的说明中,将以本仓库(comefigo/k8s-pega-sample)为基础进行说明。
请注意,本示例代码中包含的用户名、密码和各种设置仅用作示例,请勿在生产环境中使用!

为了使k8s操作更加容易(包括输入补全和别名),我们使用远程容器。但如果不需要的话,可以跳过相关步骤,使用kubectl替换各种k命令来执行。

确认动作环境

我已经在以下环境中进行了最小配置的操作确认。
确认了机器规格不满足以下最低要求时,启动会困难。

    • CPU: 4コア以上

 

    • メモリ:12GB以上

 

    • Windows 10

 

    • Docker Desktop・・・4.20.1

 

    • 商用利用の場合は、ライセンスを購入しましょう!

 

    • k8s・・・1.25.9

 

    • kubectl・・・1.25.9

 

    • helm・・・3.11.3

 

    各種pegaコンテナイメージ・・・8.8.2

系统配置

引用了公式文件系统的构图,但有以下变更:

Ingress/LoadBalancer→NodePort(30000)

Pega Database → PostgreSQL
Cassandra → disable
Elastic Search → disable
各種PODのReplicas → 1

image.png

文件结构

这个示例代码是从官方的pega/charts/pega(https://github.com/pegasystems/pega-helm-charts/commit/2b5e96c3842a5f8290c43cdd1de31a8f1e75f772)获取的。

pega/charts/pega/               ・・・Pega公式のHelm Chart
           values-minimal.yaml  ・・・Pega用Helm変数ファイル(pega/charts/pega/values-minimal.yamlをベースyに修正)
           pega-postgres.yml    ・・・PostgreSQL用のマニフェスト

前期准备

Docker桌面版

docker_desktop_sharing_settings.png

VSCode是一种代码编辑器。

    1. 安装VSCode

 

    在扩展功能中添加远程开发功能

步骤

启动远程容器

如果您不使用远程容器,请获取与k8s相同版本的kubectl(https://dl.k8s.io/release/v<版本>/bin/windows/amd64/kubectl.exe)。

vscode_terminal.png

皮加

所有以下命令都在pega/charts/目录下执行。
请注意,各种命令和配置值是根据官方文档执行和设置的(部分进行了调整),请根据需要参考官方文档。

1. 创建命名空间(可选)

在中文中本不需要进行翻译的一种方式是:
在这里,如果按照以下步骤将资源部署到当前命名空间中,则每个命令都需要指定命名空间。如果是在本地环境中,则不需要。

k create namespace mypega

2. 进行PostgreSQL的部署

在开始跑步之前,请确认一下。

k apply -f pega-postgres.yml

3. 拉取各种Pega容器镜像

安裝程式、pega和search需要保持版本一致。
由於安裝程式約有7GB,因此需要相當長的時間來完成拉取。
如果需要多人共享,建議在本地網絡中設置容器映像註冊表,從第二個人開始從該處拉取。
如果在本地設置了容器註冊表,請根據後續步驟和各種變數的需要適當修改相關部分。

请参考官方文件获取下面Pega使用的docker注册表的用户名和密码。

# Pegaのプライベートリポジトリを参照できるようにログインする
# successと表示されればOK
docker login pega-docker.downloads.pega.com -u <ユーザ名> -p <キー>

# コンテナイメージのtagは適宜変更してください
docker pull pega-docker.downloads.pega.com/platform/installer:8.8.2
docker pull pega-docker.downloads.pega.com/platform/pega:8.8.2
docker pull pega-docker.downloads.pega.com/platform/search:8.8.2
docker pull pega-docker.downloads.pega.com/platform/clustering-service:1.3.4
docker pull pega-docker.downloads.pega.com/platform/clustering-service-kubectl:1.0.0

获取可使用的容器镜像清单【番外篇】

请参阅上述官方文件以获取详细信息。

curl -X GET "https://pega-docker.downloads.pega.com/v2/_catalog" -H "X-JFrog-Art-Api:<キー>"

获取特定容器镜像可用标签的列表 【附加章节】

请参考上述官方文件以获得详细信息。

curl -X GET "https://pega-docker.downloads.pega.com/v2/<コンテナイメージ名>/tags/list" -H "X-JFrog-Art-Api:<キー>"

修改 values-minimal.yaml文件。

根据 pega/charts/pega/values-minimal.yaml 进行修改,以适应前述的最小资源需求来启动。并且为了最小化配置,将所有副本数(replicas)设置为1。请通过与初始提交的差异比较来了解详细的更改内容。

    • actions.execute: “install”

jdbc.url・・・jdbc:postgresql://pega-postgres..svc.cluster.local:5432/pegarules
・・・postgresqlデプロイ時のnamespaceに設定すること。namespace未指定の場合はdefaultになります。

jdbc.usernameとjdbc.passwordはpega-postgres.ymlのPOSTGRES_USERとPOSTGRES_PASSWORDになります。(初期値から変更していなければそのままでOK)

docker.registry.usernameとdocker.registry.passwordにPegaのプライベートリポジトリの情報(docker login時の情報)

5. Pega初期数据的导入

# 初回のみ
helm dependency build pega

# completedになるまで10分以上かかります。
# 進行状況を確認する場合は、logsコマンドで処理を確認しましょう。
helm install -f values-minimal.yaml pega-install ./pega

# 完了すると以下のようになります。
NAME                    READY   STATUS      RESTARTS   AGE
pega-db-install-d6dld   0/1     Completed   0          11m

6. Pega启动

将values-minimal.yaml中的actions.execute: “deploy”更改为actions.execute: “deploy”,并执行以下操作。
如果pega-web-0端口冲突错误,请更改service.NodePort。

helm install -f values-minimal.yaml pega-deploy ./pega

# db-installを除くPodがすべて 1/1 になったら起動完了
NAME                    READY   STATUS      RESTARTS      AGE
pega-db-install-d6dld   0/1     Completed   0             17h
pega-hazelcast-0        1/1     Running     0             16m
pega-postgres-0         1/1     Running     4 (43m ago)   17h
pega-search-0           1/1     Running     0             16m
pega-web-0              1/1     Running     0             16m

7. 确认动作

当您在浏览器中访问http://localhost:30000/prweb时,您会看到熟悉的Pega登录页面。如果您更改了service.NodePort,请使用相应的端口号。

    • ユーザ名: Administrator@pega.com

pw: values-minimal.yamlのinstaller.adminPassword

整理


# pegaインストーラの削除(初回実行後にいつでも削除可)
helm uninstall pega-install

# pegaアプリケーションの削除
helm uninstall pega-deploy

# DBの削除(データは残る)
k delete -f pega-postgres.yml

篇外编

删除DB中的数据。

解除 pega-postgres.yml 文件中 initContainers 部分的注释,并进行 apply 操作。

k apply -f pega-postgres.yml

当Postgres的Pod被重新创建时,请再次将相应部分注释掉并应用。

k apply -f pega-postgres.yml

连接到数据库

如果您正在使用远程容器,您可以直接从“数据库”扩展功能中查询数据。

    • ホストは127.0.0.1

ユーザ名、PW、Database名はそれぞれPOSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB

ポート番号はpega-postgres.ymlのnodePortで指定したもの

postgresql_viewer.png

查看Pod的日志

确认Pod的执行日志

k logs pod名

# ログを追従する
k logs pod名 -f

确认Pod的状态

当Pod未能正常启动时的状态确认。

k describe po pod名
广告
将在 10 秒后关闭
bannerAds