0

我用 calico 和 haproxy 设置了一个 kubernetes 单节点主平面。现在,每当我要创建一个 Ingress 时,地址仍然为空,并且服务器返回 503 错误。

下面显示了我的 kubernetes 部署。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: wordpress
          ports:
            - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  ports:
    - port: 8080
      targetPort: 8080
      protocol: TCP
  selector:
    app: nginx
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: web-ingress
spec:
  rules:
    - host: wordpress.example.org
      http:
        paths:
          - path: /
            backend:
              serviceName: nginx-service
              servicePort: 8080

这是我的 kubernetes cl 的输出。

NAME                             HOSTS                   ADDRESS   PORTS   AGE
ingress.extensions/web-ingress   wordpress.example.org             80      35s

NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/kubernetes      ClusterIP   10.96.0.1       <none>        443/TCP    10h
service/nginx-service   ClusterIP   10.97.189.233   <none>        8080/TCP   35s

NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/nginx-deployment   1/1     1            1           35s

NAME                                    READY   STATUS    RESTARTS   AGE
pod/nginx-deployment-7798df5dd5-gnwf2   1/1     Running   0          35s

NAME                      ENDPOINTS              AGE
endpoints/kubernetes      164.68.103.199:6443    10h
endpoints/nginx-service   192.168.104.150:8080   36s
Pascals-MBP-c8a4:api-gateway pascal$

我希望入口将接收服务的集群 ip,并正在侦听给定的主机 uri 并提供除给定 503 错误之外的其他信息。

// 编辑:它是一个独立节点,不是桌面版本或 minikube 安装!

4

2 回答 2

0

这个镜像的容器端口是80,我暴露的是8080。

于 2019-08-16T23:12:30.600 回答
-1

服务默认类型是 ClusterIP,但它仅用于集群内部通信。对于外部流量,您应该切换到 NodePort 类型。例如:

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 8080
      protocol: TCP
      name: http
  selector:
    run: nginx

如果我没记错的话,nginx alb 控制器允许使用 ClusterIP(或 LoadBalancer)。

更多信息:https ://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

于 2019-08-16T04:40:15.343 回答