【发布时间】:2019-01-22 15:58:20
【问题描述】:
我有以下运行良好的 Ingress 定义(我使用 docker-for-mac):
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: zwoop-ing
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: localhost
http:
paths:
- path: /
backend:
serviceName: posts-api-svc
servicePort: 8083
我感到困惑的是如何处理我想要公开的多个 api 微服务。
我想到的选项:
- 多个入口
- 具有不同路径的单一入口
- 具有不同子域的单一入口(在云端时)
我认为多个入口会花费更多(?)。
出于某种原因,我在使用子路径段(ingress-nginx)时遇到问题。
当我在入口资源中定义:- path: /api 时,我在 GET 请求中收到 404。
目前还不清楚如何定义子路径(这里我使用 /api,但那将是 post-api、users-api 等)。
对于单个posts-api,我目前有以下设置:
apiVersion: v1
kind: Service
metadata:
name: posts-api-svc
# namespace: nginx-ingress
labels:
app: posts-api
#rel: beta
#env: dev
spec:
type: ClusterIP
selector:
app: posts-api
# rel: beta
# env: dev
ports:
- protocol: TCP
port: 8083
使用部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: posts-api-deployment
# namespace: nginx-ingress
spec:
replicas: 1
selector:
matchLabels:
app: posts-api
template:
metadata:
labels:
app: posts-api
# env: dev
# rel: beta
spec:
containers:
- name: posts-api
image: kimgysen/posts-api:latest
ports:
- containerPort: 8083
livenessProbe:
httpGet:
path: /api/v1/posts/health
port: 8083
initialDelaySeconds: 120
timeoutSeconds: 1
pod 上的健康检查适用于端点:/api/v1/posts/health
【问题讨论】:
标签: kubernetes