我们需要一些帮助来尝试在 Jelastic 环境内的 Kubernetes 中安装 Kong。我和我的同事有一个基于生产的 kubernetes 集群,其中包含以下内容:
- 负载均衡器
- 1 个具有公共 IP 的节点
- 工人
- 2 个节点
- 贮存
- 3 个具有 NFS 存储的节点
- 控制平面
- 3 个节点
默认情况下,此环境可以很好地ingress-nginx
加载Hello Kuberenetes
应用程序。以下是 ingress-nginx hello kubernetes 示例的配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: helloworld
namespace: default
spec:
ingressClassName: nginx
rules:
- http:
paths:
- backend:
service:
name: hello-kubernetes
port:
number: 80
path: /
pathType: Prefix
status:
loadBalancer: {}
但是,当我们安装Kong
并将入口类切换为时Kong
,它会返回 404。有关如何安装 Kong 的一些背景信息:
- 设置配置
metallb-system
并分配公共 IP 地址:
apiVersion: v1
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- XXX.XXX.XXX.35-XXX.XXX.XXX.35
kind: ConfigMap
metadata:
name: config
namespace: metallb-system
- 重新启动控制器和
metallb-system
命名空间中的 pod - 使用以下方式安装 Kong
https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/main/deploy/single/all-in-one-postgres.yaml
- 它被分配了该服务的公共 IP
kong-proxy
。 helloWorld
像这样编辑入口并将ingressClassName
其更改为kong
:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: helloworld
namespace: default
spec:
ingressClassName: kong
rules:
- http:
paths:
- backend:
service:
name: hello-kubernetes
port:
number: 80
path: /
pathType: Prefix
status:
loadBalancer: {}
当应用上述配置时,我们404 Not found by Nginx
在访问公共 IP 时会得到一个。
笔记:curl http://PUBLIC_IP
当我们在 Jelastic 环境中使用 时,将 设置为hello kubernetes
时,它可以很好地加载应用程序。但是,它不能公开使用。IngressClassName
kong
我们非常希望得到您的帮助。谢谢。