本页面将向你展示如何在生产环境中安装 Tetrate Service Bridge 管理平面。
在开始之前,请确保你已经:
-
检查了要求
-
检查了TSB 管理平面组件
-
检查了防火墙信息
-
如果你正在升级以前的版本,请还要检查PostgreSQL 备份和还原
-
下载了 Tetrate Service Bridge CLI(
tctl
) -
同步了 Tetrate Service Bridge 镜像
管理平面 Operator
为了保持安装简单,但仍允许许多自定义配置选项,我们创建了一个管理平面 Operator。该 Operator 将在集群中运行,并根据 ManagementPlane 自定义资源中描述的内容引导管理平面的启动。它会监视更改并执行它们。为了帮助创建正确的自定义资源文档(CRD),我们已经添加了能力到我们的tctl
客户端,用于创建基本清单,然后你可以根据你的要求进行修改。之后,你可以将清单直接应用于适当的集群,或在你的源控制操作的集群中使用。
创建清单,以允许你从私有 Docker 注册表安装管理平面 Operator:
tctl install manifest management-plane-operator \
--registry <registry-location> > managementplaneoperator.yaml
OpenShift
使用安装清单命令创建的managementplaneoperator.yaml
文件可以通过使用 kubectl 客户端直接应用于适当的集群:
kubectl apply -f managementplaneoperator.yaml
应用清单后,你将在tsb
命名空间中看到 Operator 正在运行:
kubectl get pod -n tsb
使用安装清单命令创建的managementplaneoperator.yaml
文件可以通过使用oc
客户端直接应用于适当的集群:
oc apply -f managementplaneoperator.yaml
应用清单后,你将在tsb
命名空间中看到 Operator 正在运行:
oc get pod -n tsb
示例输出:
NAME READY STATUS RESTARTS AGE
tsb-operator-management-plane-d4c86f5c8-b2zb5 1/1 Running 0 8s
配置机密
管理平面组件需要一些机密,用于内部和外部通信目的。以下是你需要创建的机密列表。
机密名称 | 描述 |
---|---|
admin-credentials |
TSB 将创建一个默认的管理员用户,用户名为:admin,这是该特殊帐户的密码的单向哈希。这些凭据保存在你的 IdP(身份提供者)之外,而其他任何凭据必须存储在你的 IdP 中。 |
tsb-certs |
TLS 证书,类型为kubernetes.io/tls 。必须具有tls.key 和tls.cert 值。TLS 证书可以是自签名的,也可以由公共 CA 颁发。 |
postgres-credentials |
包含: 1. PostgreSQL 用户名和密码。 2. 用于在 PostgreSQL 配置为呈现自签名证书时验证 PostgreSQL 连接的 CA 证书。仅当在 Postgres 设置中将 sslMode 设置为verify-ca 或verify-full 时,才会进行 TLS 验证。有关详细信息,请参见PostgresSettings。 3. 如果 Postgres 配置了互通 TLS,则包含客户端证书和私钥。 |
elastic-credentials |
Elasticsearch 用户名和密码。 |
es-certs |
Elasticsearch 配置为呈现自签名证书时,用于验证 Elasticsearch 连接的 CA 证书。 |
ldap-credentials |
仅在使用 LDAP 作为身份提供者(IdP)时设置。包含 LDAP binddn 和bindpassword 。 |
custom-host-ca |
仅在使用 LDAP 作为 IdP 时设置。用于验证 LDAP 连接的 CA 证书,当 LDAP 配置为呈现自签名证书时。 |
iam-oidc-client-secret |
仅在使用 OIDC 与任何 IdP 时设置。包含 OIDC 客户端密钥和设备客户端密钥。 |
azure-credentials |
仅在使用 Azure AD 作为 IdP 时设置。用于连接到 Azure AD 进行团队和用户同步的客户端密钥。 |
xcp-central-cert |
XCP 中央 TLS 证书。请转到内部证书要求以获取更多详细信息。 |
使用 tctl 生成机密
tsb-certs
和xcp-central-cert
机密。以下示例将假定你正在使用自动证书管理。
可以通过将它们作为命令行标志传递给tctl
管理平面机密命令,以正确的格式生成这些机密。
OIDC 作为 IdP
以下命令将生成包含 Elasticsearch、Postgres、OIDC 和管理员凭据以及 TSB TLS 证书的managementplane-secrets.yaml
:
tctl install manifest management-plane-secrets \
--elastic-password <elastic-password> \
--elastic-username <elastic-username> \
--oidc-client-secret "<oidc-client-secret>" \
--postgres-password <postgres-password> \
--postgres-username <postgres-username> \
--tsb-admin-password <tsb-admin-password> > managementplane-secrets.yaml
LDAP 作为 IdP
以下命令将生成包含 Elasticsearch、Postgres、LDAP 和管理员凭据以及 TSB TLS 证书的managementplane-secrets.yaml
:
tctl install manifest management-plane-secrets \
--elastic-password <elastic-password> \
--elastic-username <elastic-username> \
--ldap-bind-dn <ldap-bind-dn> \
--ldap-bind-password <ldap-bind-password> \
--postgres-password <postgres-password> \
--postgres-username <postgres-username> \
--tsb-admin-password <tsb-admin-password> > managementplane-secrets.yaml
查看CLI 参考文档以获取所有可用选项,例如为Elasticsearch
、PostgreSQL
和LDAP
提供 CA 证书。你还可以通过运行以下帮助命令,从tctl
中检查绑定的解释:
tctl install manifest management-plane-secrets --help
应用机密
一旦你创建了机密清单,就可以将其添加到源代码控制或应用于你的集群。
Vault
注入,请在将其应用到集群之前,从你创建的清单中删除适用的机密。
OpenShift
kubectl apply -f managementplane-secrets.yaml
在应用它之前,请记住,你必须允许不同管理平面组件的服务帐户访问你的 OpenShift 授权策略。
oc adm policy add-scc-to-user anyuid -n tsb -z tsb-iam
oc adm policy add-scc-to-user anyuid -n tsb -z tsb-oap
现在可以应用它:
oc apply -f managementplane-secrets.yaml
注意:TSB 将每小时自动执行此操作,因此此命令只需在初始安装后运行一次。
验证安装
为验证你的安装成功,请使用管理员用户登录。尝试连接到 TSB UI 或使用tctl
CLI 工具登录。
TSB UI 可通过以下命令返回的外部 IP 的端口 8443 访问:
标准
kubectl get svc -n tsb envoy
OpenShift
oc get svc -n tsb envoy
要将tctl
的默认配置文件设置为指向你的新 TSB 集群,请执行以下操作:
标准
tctl config clusters set default --bridge-address $(kubectl get svc -n tsb envoy --output jsonpath='{.status.loadBalancer.ingress[0].ip}'):8443
AWS
tctl config clusters set default --bridge-address $(kubectl get svc -n tsb envoy --output jsonpath='{.status.loadBalancer.ingress[0].hostname}'):8443
现在,你可以使用tctl
登录,并提供组织名称和管理员帐户凭据。租户字段是可选的,可以在稍后配置,当添加租户到平台时。
tctl login
Organization: tetrate
Tenant:
Username: admin
Password: *****
Login Successful!
查看使用 tctl 连接到 TSB以获取有关如何配置 tctl 的更多详细信息。