使用PostgreSQL安装Kong,并与REST API添加服务

发布于 2025-01-20 07:11:50 字数 2257 浏览 2 评论 0原文

我目前在使用 postgresql 安装 kong 时遇到问题 并通过 REST 调用将服务添加到 kong 管理服务器。

我的安装命令如下:

helm install kong kong/kong -n kong \
--set ingressController.installCRDs=false  \
--set admin.enabled=true \
--set admin.http.enabled=true \
--set postgresql.enabled=true \
--set postgresql.auth.username=kong \
--set postgresql.auth.database=kong \
--set postgresql.service.ports.postgresql=5432 \
--set postgresql.image.tag=13.6.0-debian-10-r52 \
--set migrations.init=false \
--set migrations.preUpgrade=false \
--set migrations.postUpgrade=false 

它安装正常 注册服务后,将出现以下消息。 别担心,LoadBalance挂起稍后会修改为NodePort!

root@nlu-framework-master-1:~# k get all -n kong
NAME                             READY   STATUS    RESTARTS   AGE
pod/kong-kong-5b685cd4b9-t95mx   2/2     Running   1          3m22s
pod/kong-postgresql-0            1/1     Running   1          3m22s

NAME                               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                         AGE
service/kong-kong-admin            NodePort       10.233.7.63    <none>        8001:31422/TCP,8444:31776/TCP   3m22s
service/kong-kong-proxy            LoadBalancer   10.233.0.19    <pending>     80:30511/TCP,443:30358/TCP      3m22s
service/kong-postgresql            ClusterIP      10.233.42.35   <none>        5432/TCP                        3m22s
service/kong-postgresql-headless   ClusterIP      None           <none>        5432/TCP                        3m22s

NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kong-kong   1/1     1            1           3m22s

NAME                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/kong-kong-5b685cd4b9   1         1         1       3m22s

NAME                               READY   AGE
statefulset.apps/kong-postgresql   1/1     3m22s

我的添加服务命令如下:

curl -X POST http://10.233.7.63:8001/services \
   -H 'Content-Type: application/json' \
   -d '{"name":"k8s-api","url":"https://192.168.0.50:6443/api/v1/"}'

添加服务结果消息如下:

{"code":12,"message":"cannot create 'services' entities when not using a database","name":"operation unsupported"}

请任何人帮助我

I currently have a problem installing kong with postgresql
and add the service through REST calls to kong admin server.

My install command as below :

helm install kong kong/kong -n kong \
--set ingressController.installCRDs=false  \
--set admin.enabled=true \
--set admin.http.enabled=true \
--set postgresql.enabled=true \
--set postgresql.auth.username=kong \
--set postgresql.auth.database=kong \
--set postgresql.service.ports.postgresql=5432 \
--set postgresql.image.tag=13.6.0-debian-10-r52 \
--set migrations.init=false \
--set migrations.preUpgrade=false \
--set migrations.postUpgrade=false 

It installs normally
After registering the service, the following message appears.
Don't worry, LoadBalance pending will be modified to NodePort later!

root@nlu-framework-master-1:~# k get all -n kong
NAME                             READY   STATUS    RESTARTS   AGE
pod/kong-kong-5b685cd4b9-t95mx   2/2     Running   1          3m22s
pod/kong-postgresql-0            1/1     Running   1          3m22s

NAME                               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                         AGE
service/kong-kong-admin            NodePort       10.233.7.63    <none>        8001:31422/TCP,8444:31776/TCP   3m22s
service/kong-kong-proxy            LoadBalancer   10.233.0.19    <pending>     80:30511/TCP,443:30358/TCP      3m22s
service/kong-postgresql            ClusterIP      10.233.42.35   <none>        5432/TCP                        3m22s
service/kong-postgresql-headless   ClusterIP      None           <none>        5432/TCP                        3m22s

NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kong-kong   1/1     1            1           3m22s

NAME                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/kong-kong-5b685cd4b9   1         1         1       3m22s

NAME                               READY   AGE
statefulset.apps/kong-postgresql   1/1     3m22s

My add service command as below :

curl -X POST http://10.233.7.63:8001/services \
   -H 'Content-Type: application/json' \
   -d '{"name":"k8s-api","url":"https://192.168.0.50:6443/api/v1/"}'

add service result message as below:

{"code":12,"message":"cannot create 'services' entities when not using a database","name":"operation unsupported"}

please anybody help me

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意犹 2025-01-27 07:11:50

我自己解决问题

  1. 后版本似乎在版本14或更高版本中有一个错误,安装Helm Chart Cetic/PostgreSQL。
    Helm Chart Cetic/Postgresql的Postgresql版本11.5
    https://artifacthub.io/packages/packages/helm/cetic/cetic/postgresqustgresqulsgresqlesql
helm install postgres cetic/postgresql -n kong \
--set postgresql.username=kong \
--set postgresql.password=kong \
--set postgresql.database=kong \
--set postgresql.port=5432
  1. 带有外部PostgreSQL的Kong
helm install kong -n kong  bitnami/kong \
--set postgresql.enabled=false \
--set postgresql.external.host=postgres-postgresql \
--set postgresql.external.user=kong \
--set postgresql.external.password=kong \
--set postgresql.external.database=kong 
k get all -n kong
NAME                        READY   STATUS    RESTARTS   AGE
pod/kong-9688f7f55-42cfm    2/2     Running   3          2m15s
pod/kong-9688f7f55-5ntvw    2/2     Running   3          2m15s
pod/postgres-postgresql-0   1/1     Running   0          4m54s

NAME                          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/kong                  ClusterIP   10.233.39.160   <none>        80/TCP,443/TCP   2m15s
service/postgres-postgresql   ClusterIP   10.233.23.169   <none>        5432/TCP         4m54s

NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kong   2/2     2            2           2m15s

NAME                             DESIRED   CURRENT   READY   AGE
replicaset.apps/kong-9688f7f55   2         2         2       2m15s

NAME                                   READY   AGE
statefulset.apps/postgres-postgresql   1/1     4m54s
  1. 将服务类型更改为NodePort和Adadd Admin Service
k edit service/kong -n kong

  - name: http-admin
    port: 8001
    protocol: TCP
    targetPort: http-admin
  - name: https-admin
    port: 8444
    protocol: TCP
    targetPort: https-admin
  1. Test添加Admin Service Clusterip的服务。
curl -X POST http://10.233.39.160:8001/services \
>    -H 'Content-Type: application/json' \
>    -d '{"name":"k8s-api","url":"https://192.168.0.50:6443/api/v1/"}'
  1. 检查服务已成功添加。
curl  http://10.233.39.160:8001/services | jq

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   401  100   401    0     0    97k      0 --:--:-- --:--:-- --:--:--   97k
{
  "next": null,
  "data": [
    {
      "id": "5cc7f7ce-3494-44fa-b76c-47795192f541",
      "host": "192.168.0.50",
      "path": "/api/v1/",
      "protocol": "https",
      "retries": 5,
      "ca_certificates": null,
      "write_timeout": 60000,
      "port": 6443,
      "tags": null,
      "name": "k8s-api",
      "tls_verify": null,
      "client_certificate": null,
      "tls_verify_depth": null,
      "connect_timeout": 60000,
      "enabled": true,
      "created_at": 1649513267,
      "updated_at": 1649513267,
      "read_timeout": 60000
    }
  ]
}

I solve problem by myself

  1. postgresql version seems to have a bug in version 14 or higher, install helm chart cetic/postgresql.
    helm chart cetic/postgresql's postgresql version 11.5
    https://artifacthub.io/packages/helm/cetic/postgresql
helm install postgres cetic/postgresql -n kong \
--set postgresql.username=kong \
--set postgresql.password=kong \
--set postgresql.database=kong \
--set postgresql.port=5432
  1. install bitnami/kong with external postgresql
helm install kong -n kong  bitnami/kong \
--set postgresql.enabled=false \
--set postgresql.external.host=postgres-postgresql \
--set postgresql.external.user=kong \
--set postgresql.external.password=kong \
--set postgresql.external.database=kong 
k get all -n kong
NAME                        READY   STATUS    RESTARTS   AGE
pod/kong-9688f7f55-42cfm    2/2     Running   3          2m15s
pod/kong-9688f7f55-5ntvw    2/2     Running   3          2m15s
pod/postgres-postgresql-0   1/1     Running   0          4m54s

NAME                          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/kong                  ClusterIP   10.233.39.160   <none>        80/TCP,443/TCP   2m15s
service/postgres-postgresql   ClusterIP   10.233.23.169   <none>        5432/TCP         4m54s

NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kong   2/2     2            2           2m15s

NAME                             DESIRED   CURRENT   READY   AGE
replicaset.apps/kong-9688f7f55   2         2         2       2m15s

NAME                                   READY   AGE
statefulset.apps/postgres-postgresql   1/1     4m54s
  1. Change the service type to nodeport andadd admin service
k edit service/kong -n kong

  - name: http-admin
    port: 8001
    protocol: TCP
    targetPort: http-admin
  - name: https-admin
    port: 8444
    protocol: TCP
    targetPort: https-admin
  1. Test add service with admin service clusterIP.
curl -X POST http://10.233.39.160:8001/services \
>    -H 'Content-Type: application/json' \
>    -d '{"name":"k8s-api","url":"https://192.168.0.50:6443/api/v1/"}'
  1. Check service has been successfully added.
curl  http://10.233.39.160:8001/services | jq

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   401  100   401    0     0    97k      0 --:--:-- --:--:-- --:--:--   97k
{
  "next": null,
  "data": [
    {
      "id": "5cc7f7ce-3494-44fa-b76c-47795192f541",
      "host": "192.168.0.50",
      "path": "/api/v1/",
      "protocol": "https",
      "retries": 5,
      "ca_certificates": null,
      "write_timeout": 60000,
      "port": 6443,
      "tags": null,
      "name": "k8s-api",
      "tls_verify": null,
      "client_certificate": null,
      "tls_verify_depth": null,
      "connect_timeout": 60000,
      "enabled": true,
      "created_at": 1649513267,
      "updated_at": 1649513267,
      "read_timeout": 60000
    }
  ]
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文