Kubernetes “错误”;没有与这些值匹配的路线”;与香港入口控制器

Kubernetes “错误”;没有与这些值匹配的路线”;与香港入口控制器,kubernetes,kubernetes-ingress,kong,kubernetes-networking,kong-ingress,Kubernetes,Kubernetes Ingress,Kong,Kubernetes Networking,Kong Ingress,试图连接到使用Kong作为入口控制器的云管理Kubernetes服务上运行的Jupyter Lab容器(最终也是其他应用程序)。在对香港公共IP和入口控制器日志的http响应上接收到“没有与这些值匹配的路由”,表明: service kong/rjup2 does not have any active endpoints no configuration change, skipping sync to Kong 部署配置: apiVersion: apps/v1 kind: Deploym

试图连接到使用Kong作为入口控制器的云管理Kubernetes服务上运行的Jupyter Lab容器(最终也是其他应用程序)。在对香港公共IP和入口控制器日志的http响应上接收到“没有与这些值匹配的路由”,表明:

service kong/rjup2 does not have any active endpoints
no configuration change, skipping sync to Kong
部署配置:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: rjup2
  namespace: kong
spec:
  selector:
    matchLabels:
      run: rjup2
  replicas: 1
  template:
    metadata:
      labels:
        run: rjup2
    spec:
      restartPolicy: Always
      containers:
        - name: rjup2
          image: jupyter/minimal-notebook
          imagePullPolicy: Always
          ports:
            - containerPort: 8888
              protocol: TCP
服务配置:

apiVersion: v1
kind: Service
metadata:  
  name: rjup2
  namespace: kong
spec:
  selector:    
    app: rjup2
  type: ClusterIP
  ports:  
  - name: http
    port: 80
    targetPort: 8888
    protocol: TCP
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: rjup2
  namespace: kong
spec:
  tls:
  - hosts:
      - <AKS API server address>
  rules:
  - host: <AKS API server address>
    http:
      paths:
      - path: /
        backend:
          serviceName: rjup2
          servicePort: 80
入口资源配置:

apiVersion: v1
kind: Service
metadata:  
  name: rjup2
  namespace: kong
spec:
  selector:    
    app: rjup2
  type: ClusterIP
  ports:  
  - name: http
    port: 80
    targetPort: 8888
    protocol: TCP
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: rjup2
  namespace: kong
spec:
  tls:
  - hosts:
      - <AKS API server address>
  rules:
  - host: <AKS API server address>
    http:
      paths:
      - path: /
        backend:
          serviceName: rjup2
          servicePort: 80
apiVersion:extensions/v1beta1
种类:入口
元数据:
名称:rjup2
名称空间:kong
规格:
tls:
-主持人:
- 
规则:
-主持人:
http:
路径:
-路径:/
后端:
服务名称:rjup2
服务端口:80
API服务器地址
已正确填充到部署的YAML中。在将不同的名称空间合并到Kong的默认名称空间之前,我尝试过使用不同的名称空间,并尝试将服务端口8888添加到容器目标端口之外


感谢您在调试过程中提供的任何帮助。

您的
rjup2
服务
没有有效的选择器。请注意,您试图公开的
pod
带有
run:rjup2
标签,您的
服务具有
app:rjup2
选择器。

顺便说一句,您会收到非常明确的错误消息,指出问题可能出在哪里:

service kong/rjup2 does not have any active endpoints
如果
kong
命名空间中的
rjup2
服务没有任何活动端点,则表示它没有正确地公开
pod
,这可能表明您的配置中可能存在不匹配

您可以通过运行以下命令进行检查:

kubectl get ep -n kong
通常,您应该看到匹配的
端点
对象。在您的情况下,您不会看到它,因为您的
服务
无法公开任何POD,除非它具有有效的选择器

如果您修复了
服务
定义,一切都会正常工作:

apiVersion: v1
kind: Service
metadata:  
  name: rjup2
  namespace: kong
spec:
  selector:    
    run: rjup2
  type: ClusterIP
  ports:  
  - name: http
    port: 80
    targetPort: 8888
    protocol: TCP

非常感谢。这是错误的主要来源。此外,至少在没有DNS主机名的Azure上,不需要入口配置中的主机:API服务器地址信息。